Index: trunk/modules/beans/src/main/java/java/beans/EventSetDescriptor.java =================================================================== --- trunk/modules/beans/src/main/java/java/beans/EventSetDescriptor.java (revision 433136) +++ trunk/modules/beans/src/main/java/java/beans/EventSetDescriptor.java (working copy) @@ -363,10 +363,11 @@ throws ClassNotFoundException { String listenerTypeName = listenerType.getName(); int idx = listenerTypeName.lastIndexOf("Listener"); - String eventTypeName = listenerTypeName.substring(0, idx) + "Event"; - - return Class - .forName(eventTypeName, true, listenerType.getClassLoader()); + String eventTypeName = listenerTypeName; + if (idx != -1) { + eventTypeName = listenerTypeName.substring(0, idx) + "Event"; + } + return Class.forName(eventTypeName, true, listenerType.getClassLoader()); } private boolean checkMethod(Class listenerType, Method listenerMethod) Index: trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EventSetDescriptorTest.java =================================================================== --- trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EventSetDescriptorTest.java (revision 433136) +++ trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/EventSetDescriptorTest.java (working copy) @@ -601,6 +601,13 @@ assertEquals(listenerType, esd.getListenerType()); assertTrue(esd.isInDefaultEventSet()); assertFalse(esd.isUnicast()); + // Regression for HARMONY-1237 + try { + new EventSetDescriptor(Thread.class, "0xABCD", Thread.class, new String[] {}, "aaa", null, "bbb"); + fail("IntrospectionException expected"); + } catch (IntrospectionException e) { + //expected + } } /*