You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ay...@apache.org on 2006/11/03 13:22:57 UTC
svn commit: r470777 - in
/incubator/harmony/enhanced/classlib/trunk/modules/beans/src:
main/java/java/beans/ main/java/org/apache/harmony/beans/internal/nls/
test/java/org/apache/harmony/beans/tests/java/beans/
Author: ayza
Date: Fri Nov 3 04:22:56 2006
New Revision: 470777
URL: http://svn.apache.org/viewvc?view=rev&rev=470777
Log:
applying patch from HARMONY-1827 "[classlib][beans] rework of EventHandlerTest (2)"
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/EventHandler.java
incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties
incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EventHandlerTest.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/EventHandler.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/EventHandler.java?view=diff&rev=470777&r1=470776&r2=470777
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/EventHandler.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/EventHandler.java Fri Nov 3 04:22:56 2006
@@ -85,10 +85,18 @@
// we have a valid listener method at this point
result = m.invoke(target, args);
+ } catch (RuntimeException e) {
+ throw e;
} catch (Throwable t) {
System.out
.println(t.getClass() + ": " + t.getMessage()); //$NON-NLS-1$
}
+ } else {
+ // in order to be compatible with RI
+ if (listenerMethodName.equals(method.getName())) {
+ throw new IllegalArgumentException(Messages.getString(
+ "beans.4D"));
+ }
}
}
}
@@ -112,28 +120,28 @@
return target;
}
- public static <T> T create(Class<T> listenerInterface, Object target, String action,
- String eventPropertyName, String listenerMethodName) {
- Object proxy = Proxy.newProxyInstance(target.getClass().getClassLoader(),
- new Class[] { listenerInterface }, new EventHandler(target, action,
- eventPropertyName, listenerMethodName));
- return listenerInterface.cast(proxy);
- }
-
- public static <T> T create(Class<T> listenerInterface, Object target, String action,
- String eventPropertyName) {
- Object proxy = Proxy.newProxyInstance(target.getClass().getClassLoader(),
- new Class[] { listenerInterface }, new EventHandler(target, action,
- eventPropertyName, null));
- return listenerInterface.cast(proxy);
- }
-
- public static <T> T create(Class<T> listenerInterface, Object target, String action) {
- Object proxy = Proxy
- .newProxyInstance(target.getClass().getClassLoader(),
- new Class[] { listenerInterface }, new EventHandler(target, action,
- null, null));
- return listenerInterface.cast(proxy);
+ @SuppressWarnings("unchecked")
+ public static <T> T create(Class<T> listenerInterface, Object target,
+ String action, String eventPropertyName, String listenerMethodName) {
+ return (T) Proxy.newProxyInstance(target.getClass().getClassLoader(),
+ new Class[] { listenerInterface }, new EventHandler(target,
+ action, eventPropertyName, listenerMethodName));
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T> T create(Class<T> listenerInterface, Object target,
+ String action, String eventPropertyName) {
+ return (T) Proxy.newProxyInstance(target.getClass().getClassLoader(),
+ new Class[] { listenerInterface }, new EventHandler(target,
+ action, eventPropertyName, null));
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T> T create(Class<T> listenerInterface, Object target,
+ String action) {
+ return (T) Proxy.newProxyInstance(target.getClass().getClassLoader(),
+ new Class[] { listenerInterface }, new EventHandler(target,
+ action, null, null));
}
private boolean isValidInvocation(Method method, Object[] arguments) {
@@ -164,8 +172,8 @@
private Object[] getArgs(Object[] arguments) throws Exception {
if (eventPropertyName == null) {
return new Object[] {};
- } else if ((arguments == null) || (arguments.length == 0)
- || (arguments[0] == null)) {
+ } else if ((arguments == null) || (arguments.length == 0)) {
+// || (arguments[0] == null)) {
return arguments;
} else {
Object arg = arguments[0];
@@ -174,7 +182,7 @@
while (st.hasMoreTokens()) {
String propertyName = st.nextToken();
PropertyDescriptor pd = findPropertyDescriptor(arg.getClass(),
- propertyName);
+ propertyName);;
if (pd != null) {
Method getter = pd.getReadMethod();
@@ -192,7 +200,9 @@
if (method != null) {
arg = method.invoke(null, new Object[] {});
} else {
- throw new IntrospectionException(Messages.getString(
+ // cannot access property getter
+ // RI thorws NPE here so we should do the same
+ throw new NullPointerException(Messages.getString(
"beans.12", propertyName)); //$NON-NLS-1$
}
}
@@ -253,13 +263,15 @@
"beans.13", action)); //$NON-NLS-1$
}
} else {
- throw new Exception(Messages.getString("beans.14")); //$NON-NLS-1$
+ throw new IndexOutOfBoundsException(
+ Messages.getString("beans.14")); //$NON-NLS-1$
}
} else {
return result;
}
} catch (IntrospectionException ie) {
- throw new Exception(Messages.getString("beans.14")); //$NON-NLS-1$
+ throw new IndexOutOfBoundsException(
+ Messages.getString("beans.14")); //$NON-NLS-1$
}
return result;
Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties?view=diff&rev=470777&r1=470776&r2=470777
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/org/apache/harmony/beans/internal/nls/messages.properties Fri Nov 3 04:22:56 2006
@@ -92,4 +92,4 @@
beans.4A=newInstance is null
beans.4B=type is null
beans.4C=encoder is null
-
+beans.4D=Invalid method call
Modified: incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EventHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EventHandlerTest.java?view=diff&rev=470777&r1=470776&r2=470777
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EventHandlerTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EventHandlerTest.java Fri Nov 3 04:22:56 2006
@@ -224,10 +224,10 @@
*
*/
public static Test suite() {
-// TestSuite suite = new TestSuite();
-//
-// suite.addTest(new EventHandlerTest("testInvokeWithNullPropertyName"));
-// return suite;
+// TestSuite suite = new TestSuite();
+//
+// suite.addTest(new EventHandlerTest("testCreateClassObjectStringStringString_PropertyNull"));
+// return suite;
return new TestSuite(EventHandlerTest.class);
}
@@ -453,10 +453,12 @@
PropertyChangeListener proxy = EventHandler.create(
PropertyChangeListener.class, target, "text",
"source.label_invalid");
+
assertTrue(Proxy.isProxyClass(proxy.getClass()));
button.addPropertyChangeListener(proxy);
String newLabel = "New Value: set text.";
+
try {
button.setLabel(newLabel);
fail("Should throw NullPointerException.");
@@ -568,17 +570,18 @@
public void testCreateClassObjectStringStringString_PropertyNull() {
MockTarget target = new MockTarget();
MockButton button = new MockButton();
+ String newLabel = "New Value: set text.";
PropertyChangeListener proxy = EventHandler.create(
PropertyChangeListener.class, target, "text", null,
"propertyChange");
- assertTrue(Proxy.isProxyClass(proxy.getClass()));
+ assertTrue(Proxy.isProxyClass(proxy.getClass()));
button.addPropertyChangeListener(proxy);
- String newLabel = "New Value: set text.";
+
try {
button.setLabel(newLabel);
- fail("Should throw NullPointerException.");
- } catch (Exception e) {
+ fail("Should throw RuntimeException.");
+ } catch (RuntimeException e) {
}
}
@@ -819,20 +822,6 @@
}
- public void testInvoke_extend2_2() {
- MockFish fish = new MockFish();
- MockFishTarget target = new MockFishTarget();
- PropertyChangeSupport support = new PropertyChangeSupport(fish);
- Object proxy = EventHandler.create(PropertyChangeListener.class,
- target, "action3");
- support.addPropertyChangeListener((PropertyChangeListener) proxy);
- PropertyChangeEvent event = new PropertyChangeEvent(fish, "name", "1",
- "5");
- support.firePropertyChange(event);
-
- assertEquals("action3", target.getActionRecord());
- }
-
public void testInvoke_extend3() {
MockFish fish = new MockFish();
MockFishTarget target = new MockFishTarget();
@@ -1070,10 +1059,6 @@
public void setAction2(String value) {
this.actionRecord = "action2";
- }
-
- public void setAction3() {
- this.actionRecord = "action3";
}
public void action4() {