catch (NoSuchMethodException e)
catch (NoSuchMethodException nsme1)
  private Object[] getProperty(Object o, String prop)    throws NoSuchMethodException, IllegalAccessException, InvocationTargetException  {    // Use the event object when the property name to extract is null.    if (prop == null)      return new Object[] {o, o.getClass()};    // Isolate the first property name from a.b.c.    int pos;    String rest = null;    if ((pos = prop.indexOf('.')) != -1)      {	rest = prop.substring(pos + 1);	prop = prop.substring(0, pos);      }    // Find a method named getProp.  It could be isProp instead.    Method getter;    try      {	// Look for boolean property getter isProperty	getter = o.getClass().getMethod("is" + capitalize(prop),						 null);      }    catch (NoSuchMethodException e)      {	// Look for regular property getter getProperty	getter = o.getClass().getMethod("get" + capitalize(prop),						 null);      }    Object val = getter.invoke(o, null);    if (rest != null)      return getProperty(val, rest);    return new Object[] {val, getter.getReturnType()};  }