Harmony
  1. Harmony
  2. HARMONY-2438

[classlib][swing] intermittent failures of swing module tests, once mode

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Classlib
    • Labels:
      None
    • Environment:
      Win XP, msvc, debug

      Description

      Iteratively runnig swing module tests in once mode on IBM VME, classlib revision 482148,
      I observed 9 intermittent failures (see also HARMONY-2282):

      1). 1 time out of 10
      javax.swing.DefaultCellEditorTest@ testGetComponent
      testGetSetClickCountToStart
      testGetTreeCellEditorComponent
      testGetTableCellEditorComponent

      all of the tests cases:
      Test interrupted due timeout

      junit.framework.AssertionFailedError: Test interrupted due timeout at javax.swing.BasicSwingTestCase.runBare(BasicSwingTestCase.java:147)

      2). 1 time out of 10
      javax.swing.DefaultComboBoxModelTest

      all of the test cases:
      Test interrupted due timeout

      junit.framework.AssertionFailedError: Test interrupted due timeout at javax.swing.BasicSwingTestCase.runBare(BasicSwingTestCase.java:147)

      3). 1 time out of 10

      javax.swing.TransferHandlerTest@ testGetSourceActions

      Error
      N/A

      java.lang.ArrayIndexOutOfBoundsException at java.util.Arrays.mergeSort(Arrays.java:2545) at java.util.Arrays.mergeSort(Arrays.java:2516) at java.util.Arrays.mergeSort(Arrays.java:2517) at java.util.Arrays.sort(Arrays.java:2872) at java.util.Arrays.sort(Arrays.java:2889) at java.beans.BeanInfoWrapper.getPropertyDescriptors(BeanInfoWrapper.java:77) at javax.swing.TransferHandler.getSourceActions(TransferHandler.java:289) at javax.swing.TransferHandlerTest.testGetSourceActions(TransferHandlerTest.java:222) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.SwingTestCase$1.run(SwingTestCase.java:45) at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:92) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:81) at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java:133) at java.awt.EventQueue.dispatchEvent(EventQueue.java:144) at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:75) at java.awt.EventDispatchThread.run(EventDispatchThread.java:48)

      4). 2 times out of 10

      javax.swing.border.BevelBorderTest@ testReadWriteObject

      Error

      N/A

      java.lang.ArrayIndexOutOfBoundsException at java.util.Arrays.mergeSort(Arrays.java:2543) at java.util.Arrays.mergeSort(Arrays.java:2517) at java.util.Arrays.sort(Arrays.java:2872) at java.util.Arrays.sort(Arrays.java:2889) at java.io.ObjectStreamClass.computeSerialVersionUID(ObjectStreamClass.java:54) at java.io.ObjectStreamClass.addToCache(ObjectStreamClass.java:211) at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:937) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:90) at java.io.ObjectOutputStream.writeClassDescForClass(ObjectOutputStream.java:110) at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1644) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1956) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1785) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1749) at javax.swing.BasicSwingTestCase.serializeObject(BasicSwingTestCase.java:496) at javax.swing.border.BevelBorderTest.testReadWriteObject(BevelBorderTest.java:456) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.SwingTestCase$1.run(SwingTestCase.java:45) at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:92) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:81) at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java:133) at java.awt.EventQueue.dispatchEvent(EventQueue.java:144) at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:75) at java.awt.EventDispatchThread.run(EventDispatchThread.java:48)

      5). 2 times out of 10

      javax.swing.border.CompoundBorderTest@ testReadWriteObject

      Error
      N/A

      java.lang.ArrayIndexOutOfBoundsException at java.util.Arrays.mergeSort(Arrays.java:2535) at java.util.Arrays.sort(Arrays.java:2872) at java.util.Arrays.sort(Arrays.java:2889) at java.io.ObjectStreamClass.computeSerialVersionUID(ObjectStreamClass.java:54) at java.io.ObjectStreamClass.addToCache(ObjectStreamClass.java:211) at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:937) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:90) at java.io.ObjectOutputStream.writeClassDescForClass(ObjectOutputStream.java:110) at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1644) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1956) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1785) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1749) at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1234) at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:39) at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1334) at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1675) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1956) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1785) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1749) at javax.swing.BasicSwingTestCase.serializeObject(BasicSwingTestCase.java:496) at javax.swing.border.CompoundBorderTest.testReadWriteObject(CompoundBorderTest.java:24) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.SwingTestCase$1.run(SwingTestCase.java:45) at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:92) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:81) at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java:133) at java.awt.EventQueue.dispatchEvent(EventQueue.java:144) at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:75) at java.awt.EventDispatchThread.run(EventDispatchThread.java:48)

      6). 2 times out of 10

      javax.swing.border.EtchedBorderTest@ testReadWriteObject

      Error

      N/A

      java.lang.ArrayIndexOutOfBoundsException at java.util.Arrays.mergeSort(Arrays.java:2545) at java.util.Arrays.sort(Arrays.java:2872) at java.util.Arrays.sort(Arrays.java:2889) at java.io.ObjectStreamClass.computeSerialVersionUID(ObjectStreamClass.java:54) at java.io.ObjectStreamClass.addToCache(ObjectStreamClass.java:211) at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:937) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:90) at java.io.ObjectOutputStream.writeClassDescForClass(ObjectOutputStream.java:110) at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1644) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1956) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1785) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1749) at javax.swing.BasicSwingTestCase.serializeObject(BasicSwingTestCase.java:496) at javax.swing.border.EtchedBorderTest.testReadWriteObject(EtchedBorderTest.java:32) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.SwingTestCase$1.run(SwingTestCase.java:45) at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:92) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:81) at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java:133) at java.awt.EventQueue.dispatchEvent(EventQueue.java:144) at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:75) at java.awt.EventDispatchThread.run(EventDispatchThread.java:48)

      7). 2 times out of 10
      javax.swing.border.LineBorderTest@ testReadWriteObject

      Error
      javax.swing.border.LineBorder; IllegalAccessException

      java.io.InvalidClassException: javax.swing.border.LineBorder; IllegalAccessException at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1873) at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:820) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:218) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:260) at javax.swing.BasicSwingTestCase.serializeObject(BasicSwingTestCase.java:52) at javax.swing.border.LineBorderTest.testReadWriteObject(LineBorderTest.java:236) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.SwingTestCase$1.run(SwingTestCase.java:45) at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:92) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:81) at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java:133) at java.awt.EventQueue.dispatchEvent(EventQueue.java:144) at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:75) at java.awt.EventDispatchThread.run(EventDispatchThread.java:48)

      8). 2 times out of 10
      javax.swing.border.TitledBorderTest@ testReadWriteObject

      Error
      N/A

      java.lang.ArrayIndexOutOfBoundsException at java.util.Arrays.mergeSort(Arrays.java:2545) at java.util.Arrays.mergeSort(Arrays.java:2517) at java.util.Arrays.sort(Arrays.java:2872) at java.util.Arrays.sort(Arrays.java:2889) at java.io.ObjectStreamClass.computeSerialVersionUID(ObjectStreamClass.java:417) at java.io.ObjectStreamClass.addToCache(ObjectStreamClass.java:211) at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:937) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:90) at java.io.ObjectOutputStream.writeClassDescForClass(ObjectOutputStream.java:110) at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1644) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1956) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1785) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1749) at javax.swing.BasicSwingTestCase.serializeObject(BasicSwingTestCase.java:496) at javax.swing.border.TitledBorderTest.testReadWriteObject(TitledBorderTest.java:64) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.SwingTestCase$1.run(SwingTestCase.java:45) at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:92) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:81) at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java:133) at java.awt.EventQueue.dispatchEvent(EventQueue.java:144) at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:75) at java.awt.EventDispatchThread.run(EventDispatchThread.java:48)

      9). 2 times out of 10
      javax.swing.Timer_MultithreadedTest@ testSetLogTimers

      Failure

      [3] log's not written

      junit.framework.AssertionFailedError: [3] log's not written at javax.swing.Timer_MultithreadedTest.testSetLogTimers(Timer_MultithreadedTest.java:412) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)

      1. ex.list.update.patch
        0.7 kB
        Vladimir Ivanov
      2. ex.list.update.patch
        0.6 kB
        Vladimir Ivanov
      3. patch-2438-exclude.windows.txt
        2 kB
        tatyana doubtsova
      4. H2438-j.s.Timer.patch
        2 kB
        Alexey A. Ivanov
      5. H2438-j.s.Timer_MultithreadedTest.patch
        6 kB
        Alexey A. Ivanov
      6. patch-2438-exclude.windows.txt
        1 kB
        tatyana doubtsova

        Issue Links

          Activity

          Hide
          tatyana doubtsova added a comment -

          While running swing module in once mode, IBM VME, classlib revision 489662, I still see the Timer_MultithreadedTest failure 2 times out of 10:

          testSetLogTimers Failure [3] log's not written

          junit.framework.AssertionFailedError: [3] log's not written at javax.swing.Timer_MultithreadedTest.testSetLogTimers(Timer_MultithreadedTest.java:423) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)

          Show
          tatyana doubtsova added a comment - While running swing module in once mode, IBM VME, classlib revision 489662, I still see the Timer_MultithreadedTest failure 2 times out of 10: testSetLogTimers Failure [3] log's not written junit.framework.AssertionFailedError: [3] log's not written at javax.swing.Timer_MultithreadedTest.testSetLogTimers(Timer_MultithreadedTest.java:423) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)
          Hide
          Alexey A. Ivanov added a comment -

          Yes, I saw the alert about the failure.

          By the way, Timer_MultithreadedTest is still in exclude lists for windows.x86.

          {ibm, drl}

          . And it wasn't in other exclude lists.

          javax.swing.Timer uses java.util.Timer internally one of the tests for which failed: see HARMONY-2820. This might be the reason but I can't be sure.

          Show
          Alexey A. Ivanov added a comment - Yes, I saw the alert about the failure. By the way, Timer_MultithreadedTest is still in exclude lists for windows.x86. {ibm, drl} . And it wasn't in other exclude lists. javax.swing.Timer uses java.util.Timer internally one of the tests for which failed: see HARMONY-2820 . This might be the reason but I can't be sure.
          Hide
          Vladimir Ivanov added a comment -

          Now I was able to see this intermittent failure on the em64t.
          Note, before the patch this tests passed uder CC on this platform for ~10 days.

          Stack trace is:
          testStartClass: javax.swing.Timer_MultithreadedTest
          junit.framework.AssertionFailedError: The order of timers alerts is correct
          at javax.swing.Timer_MultithreadedTest.testStart(Timer_MultithreadedTest.java:351)
          at java.lang.reflect.VMReflection.invokeMethod(Native Method)

          Show
          Vladimir Ivanov added a comment - Now I was able to see this intermittent failure on the em64t. Note, before the patch this tests passed uder CC on this platform for ~10 days. Stack trace is: testStartClass: javax.swing.Timer_MultithreadedTest junit.framework.AssertionFailedError: The order of timers alerts is correct at javax.swing.Timer_MultithreadedTest.testStart(Timer_MultithreadedTest.java:351) at java.lang.reflect.VMReflection.invokeMethod(Native Method)
          Hide
          Alexey Petrenko added a comment -

          Timer and unit test patches are applied.
          Please verify.

          Show
          Alexey Petrenko added a comment - Timer and unit test patches are applied. Please verify.
          Hide
          Vladimir Ivanov added a comment -

          According to my statistic for CC the tests from the 'ex.list.update.patch' failed only on WinXP+IBM VM (on my win box).
          Now this run is missed so 'ex.list.update.patch' patch should not be applied.

          Thanks, Vladimir

          Show
          Vladimir Ivanov added a comment - According to my statistic for CC the tests from the 'ex.list.update.patch' failed only on WinXP+IBM VM (on my win box). Now this run is missed so 'ex.list.update.patch' patch should not be applied. Thanks, Vladimir
          Vladimir Ivanov made changes -
          Attachment ex.list.update.patch [ 12347392 ]
          Hide
          Vladimir Ivanov added a comment -

          one test added.
          According to CC notification only these 4 tests failed on IBMVM (from swing module).

          Show
          Vladimir Ivanov added a comment - one test added. According to CC notification only these 4 tests failed on IBMVM (from swing module).
          Hide
          Vladimir Ivanov added a comment -

          These data were collected by CC and notifications were sent to the commits list (at least 2 times). But anyway, I duplicate this information here:

          error testParamString javax.swing.JToggleButtonTest
          error testSerializable javax.swing.text.AbstractDocument_SerializationTest
          error testSerializable javax.swing.text.DefaultStyledDocumentTest

          Unit Test Error Details: (3)
          Test: testParamString
          Class: javax.swing.JToggleButtonTest
          java.lang.ArrayIndexOutOfBoundsException
          at java.util.Arrays.mergeSort(Arrays.java:2553)
          at java.util.Arrays.mergeSort(Arrays.java:2516)
          at java.util.Arrays.sort(Arrays.java:2872)
          at java.util.Arrays.sort(Arrays.java:2889)
          at java.beans.BeanInfoWrapper.getPropertyDescriptors(BeanInfoWrapper.java:77)
          at java.beans.BeanInfoWrapper.getPropertyDescriptors(BeanInfoWrapper.java:74)
          at javax.swing.JComponent.paramString(JComponent.java:1334)
          at java.awt.Component.toString(Component.java:166)
          at javax.swing.JToggleButtonTest.testParamString(JToggleButtonTest.java:64)
          at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)
          at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117)
          at javax.swing.SwingTestCase$1.run(SwingTestCase.java:45)
          at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:92)
          at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:81)
          at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java:133)
          at java.awt.EventQueue.dispatchEvent(EventQueue.java:144)
          at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:75)
          at java.awt.EventDispatchThread.run(EventDispatchThread.java:48)

          Test: testSerializable
          Class: javax.swing.text.AbstractDocument_SerializationTest
          java.lang.ArrayIndexOutOfBoundsException
          at java.util.Arrays.mergeSort(Arrays.java:2553)
          at java.util.Arrays.mergeSort(Arrays.java:2516)
          at java.util.Arrays.mergeSort(Arrays.java:2517)
          at java.util.Arrays.sort(Arrays.java:2872)
          at java.util.Arrays.sort(Arrays.java:2889)
          at java.io.ObjectStreamClass.computeSerialVersionUID(ObjectStreamClass.java:54)
          at java.io.ObjectStreamClass.addToCache(ObjectStreamClass.java:211)
          at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:937)
          at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:90)
          at java.io.ObjectStreamClass.addToCache(ObjectStreamClass.java:23)
          at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:937)
          at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:90)
          at java.io.ObjectOutputStream.writeClassDescForClass(ObjectOutputStream.java:110)
          at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1644)
          at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1956)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1785)
          at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1749)
          at javax.swing.BasicSwingTestCase.serializeObject(BasicSwingTestCase.java:496)
          at javax.swing.SerializableTestCase.setUp(SerializableTestCase.java:50)
          at javax.swing.text.AbstractDocument_SerializationTest.setUp(AbstractDocument_SerializationTest.java:43)

          Test: testSerializable
          Class: javax.swing.text.DefaultStyledDocumentTest
          java.io.OptionalDataException
          at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:843)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:218)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:260)
          at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1157)
          at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:432)
          at javax.swing.text.DefaultStyledDocument.readObject(DefaultStyledDocument.java:1447)
          at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)
          at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1364)
          at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1298)
          at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1940)
          at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:820)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:218)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:260)
          at javax.swing.BasicSwingTestCase.serializeObject(BasicSwingTestCase.java:52)
          at javax.swing.text.DefaultStyledDocumentTest.testSerializable(DefaultStyledDocumentTest.java:177)
          at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25)
          at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117)
          at javax.swing.BasicSwingTestCase.runBareImpl(BasicSwingTestCase.java:122)
          at javax.swing.BasicSwingTestCase$1.run(BasicSwingTestCase.java:136)
          at java.lang.Thread.run(Thread.java:872)

          Show
          Vladimir Ivanov added a comment - These data were collected by CC and notifications were sent to the commits list (at least 2 times). But anyway, I duplicate this information here: error testParamString javax.swing.JToggleButtonTest error testSerializable javax.swing.text.AbstractDocument_SerializationTest error testSerializable javax.swing.text.DefaultStyledDocumentTest Unit Test Error Details: (3) Test: testParamString Class: javax.swing.JToggleButtonTest java.lang.ArrayIndexOutOfBoundsException at java.util.Arrays.mergeSort(Arrays.java:2553) at java.util.Arrays.mergeSort(Arrays.java:2516) at java.util.Arrays.sort(Arrays.java:2872) at java.util.Arrays.sort(Arrays.java:2889) at java.beans.BeanInfoWrapper.getPropertyDescriptors(BeanInfoWrapper.java:77) at java.beans.BeanInfoWrapper.getPropertyDescriptors(BeanInfoWrapper.java:74) at javax.swing.JComponent.paramString(JComponent.java:1334) at java.awt.Component.toString(Component.java:166) at javax.swing.JToggleButtonTest.testParamString(JToggleButtonTest.java:64) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.SwingTestCase$1.run(SwingTestCase.java:45) at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:92) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:81) at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java:133) at java.awt.EventQueue.dispatchEvent(EventQueue.java:144) at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:75) at java.awt.EventDispatchThread.run(EventDispatchThread.java:48) Test: testSerializable Class: javax.swing.text.AbstractDocument_SerializationTest java.lang.ArrayIndexOutOfBoundsException at java.util.Arrays.mergeSort(Arrays.java:2553) at java.util.Arrays.mergeSort(Arrays.java:2516) at java.util.Arrays.mergeSort(Arrays.java:2517) at java.util.Arrays.sort(Arrays.java:2872) at java.util.Arrays.sort(Arrays.java:2889) at java.io.ObjectStreamClass.computeSerialVersionUID(ObjectStreamClass.java:54) at java.io.ObjectStreamClass.addToCache(ObjectStreamClass.java:211) at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:937) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:90) at java.io.ObjectStreamClass.addToCache(ObjectStreamClass.java:23) at java.io.ObjectStreamClass.lookupStreamClass(ObjectStreamClass.java:937) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:90) at java.io.ObjectOutputStream.writeClassDescForClass(ObjectOutputStream.java:110) at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1644) at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1956) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1785) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1749) at javax.swing.BasicSwingTestCase.serializeObject(BasicSwingTestCase.java:496) at javax.swing.SerializableTestCase.setUp(SerializableTestCase.java:50) at javax.swing.text.AbstractDocument_SerializationTest.setUp(AbstractDocument_SerializationTest.java:43) Test: testSerializable Class: javax.swing.text.DefaultStyledDocumentTest java.io.OptionalDataException at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:843) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:218) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:260) at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1157) at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:432) at javax.swing.text.DefaultStyledDocument.readObject(DefaultStyledDocument.java:1447) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1364) at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1298) at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1940) at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:820) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:218) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:260) at javax.swing.BasicSwingTestCase.serializeObject(BasicSwingTestCase.java:52) at javax.swing.text.DefaultStyledDocumentTest.testSerializable(DefaultStyledDocumentTest.java:177) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.BasicSwingTestCase.runBareImpl(BasicSwingTestCase.java:122) at javax.swing.BasicSwingTestCase$1.run(BasicSwingTestCase.java:136) at java.lang.Thread.run(Thread.java:872)
          Hide
          Alexey A. Ivanov added a comment -

          Vladimir,
          Could you please provide any details about the tests you have excluded from test runs (e.g. stack traces)?
          Does it make sense to list the classes you excluded so that there's no need to open the patch itself to see the test class names?

          Show
          Alexey A. Ivanov added a comment - Vladimir, Could you please provide any details about the tests you have excluded from test runs (e.g. stack traces)? Does it make sense to list the classes you excluded so that there's no need to open the patch itself to see the test class names?
          Vladimir Ivanov made changes -
          Attachment ex.list.update.patch [ 12347380 ]
          Hide
          Vladimir Ivanov added a comment -

          exclude 3 more intermittently failed tests

          Show
          Vladimir Ivanov added a comment - exclude 3 more intermittently failed tests
          Hide
          tatyana doubtsova added a comment -

          Stepan, thanks, the patch is applied as expected.

          Show
          tatyana doubtsova added a comment - Stepan, thanks, the patch is applied as expected.
          Hide
          Stepan Mishura added a comment -

          Tatyana, I've applied patch for exclude list at r483887. Please check that the patch was applied as you expected.

          Thanks,
          Stepan.

          Show
          Stepan Mishura added a comment - Tatyana, I've applied patch for exclude list at r483887. Please check that the patch was applied as you expected. Thanks, Stepan.
          Hide
          tatyana doubtsova added a comment -

          After several iterative runs of swing module tests in once mode, one more intermittent failure:

          javax.swing.JSpinnerTest@testDateEditor_DateEditor,
          N/A

          java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(System.java:327) at java.lang.System.arraycopy(System.java:237) at com.ibm.icu.text.DigitList.set(DigitList.java:551) at com.ibm.icu.text.DecimalFormat.format(DecimalFormat.java:96) at java.text.DecimalFormat.format(DecimalFormat.java:233) at java.text.NumberFormat.format(NumberFormat.java:183) at java.text.DecimalFormat.format(DecimalFormat.java:264) at java.text.SimpleDateFormat.appendNumber(SimpleDateFormat.java:321) at java.text.SimpleDateFormat.append(SimpleDateFormat.java:249) at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:630) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:481) at java.text.DateFormat.format(DateFormat.java:233) at java.text.Format.format(Format.java:115) at javax.swing.text.InternationalFormatter.valueToString(InternationalFormatter.java:22) at javax.swing.JFormattedTextField.revertValue(JFormattedTextField.java:538) at javax.swing.JFormattedTextField.setValue(JFormattedTextField.java:50) at javax.swing.JSpinner$DefaultEditor.<init>(JSpinner.java:235) at javax.swing.JSpinner$DateEditor.<init>(JSpinner.java:341) at javax.swing.JSpinner.createEditor(JSpinner.java:616) at javax.swing.JSpinner.setModel(JSpinner.java:634) at javax.swing.JSpinnerTest.testDateEditor_DateEditor(JSpinnerTest.java:329) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.BasicSwingTestCase.runBareImpl(BasicSwingTestCase.java:122) at javax.swing.BasicSwingTestCase$1.run(BasicSwingTestCase.java:136) at java.lang.Thread.run(Thread.java:872)

          I' ve updated the patch to the exclude list. Hope, that will make CC runs in once mode more stable.

          Show
          tatyana doubtsova added a comment - After several iterative runs of swing module tests in once mode, one more intermittent failure: javax.swing.JSpinnerTest@testDateEditor_DateEditor, N/A java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(System.java:327) at java.lang.System.arraycopy(System.java:237) at com.ibm.icu.text.DigitList.set(DigitList.java:551) at com.ibm.icu.text.DecimalFormat.format(DecimalFormat.java:96) at java.text.DecimalFormat.format(DecimalFormat.java:233) at java.text.NumberFormat.format(NumberFormat.java:183) at java.text.DecimalFormat.format(DecimalFormat.java:264) at java.text.SimpleDateFormat.appendNumber(SimpleDateFormat.java:321) at java.text.SimpleDateFormat.append(SimpleDateFormat.java:249) at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:630) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:481) at java.text.DateFormat.format(DateFormat.java:233) at java.text.Format.format(Format.java:115) at javax.swing.text.InternationalFormatter.valueToString(InternationalFormatter.java:22) at javax.swing.JFormattedTextField.revertValue(JFormattedTextField.java:538) at javax.swing.JFormattedTextField.setValue(JFormattedTextField.java:50) at javax.swing.JSpinner$DefaultEditor.<init>(JSpinner.java:235) at javax.swing.JSpinner$DateEditor.<init>(JSpinner.java:341) at javax.swing.JSpinner.createEditor(JSpinner.java:616) at javax.swing.JSpinner.setModel(JSpinner.java:634) at javax.swing.JSpinnerTest.testDateEditor_DateEditor(JSpinnerTest.java:329) at java.lang.reflect.AccessibleObject.invokeV(AccessibleObject.java:25) at javax.swing.BasicSwingTestCase.runBareSuper(BasicSwingTestCase.java:117) at javax.swing.BasicSwingTestCase.runBareImpl(BasicSwingTestCase.java:122) at javax.swing.BasicSwingTestCase$1.run(BasicSwingTestCase.java:136) at java.lang.Thread.run(Thread.java:872) I' ve updated the patch to the exclude list. Hope, that will make CC runs in once mode more stable.
          tatyana doubtsova made changes -
          Attachment patch-2438-exclude.windows.txt [ 12346740 ]
          Alexey A. Ivanov made changes -
          Link This issue is related to HARMONY-2282 [ HARMONY-2282 ]
          Alexey A. Ivanov made changes -
          Attachment H2438-j.s.Timer.patch [ 12346654 ]
          Hide
          Alexey A. Ivanov added a comment -

          I've added synchronized modifier to methods of Timer.FiringEventRunnable because queuedCounter is assessed concurrently from several thread:
          1. from Timer thread which posts timer events to AWT event queue where queuedCounter is checked and incremented,
          2. from Event Dispatch Thread where the listeners of timer get notified and where the queuedCounter is decremented.

          Show
          Alexey A. Ivanov added a comment - I've added synchronized modifier to methods of Timer.FiringEventRunnable because queuedCounter is assessed concurrently from several thread: 1. from Timer thread which posts timer events to AWT event queue where queuedCounter is checked and incremented, 2. from Event Dispatch Thread where the listeners of timer get notified and where the queuedCounter is decremented.
          Alexey A. Ivanov made changes -
          Attachment H2438-j.s.Timer_MultithreadedTest.patch [ 12346653 ]
          Hide
          Alexey A. Ivanov added a comment -

          H2438-j.s.Timer_MultithreadedTest.patch fixes problems with testIsRunning() and testSetLogTimers().

          testSetLogTimers(): the reason why it failed was that a local variable (for the test method) was used for timer manipulations. Because of that the timer was not stopped (tearDown stops the timer). Since there were running many timers, any of them could write to the stream after the timer watched and before setLogTimers(false) was called.

          testIsRunning(): the test starts timer, then asserts timer is running, waits for timer ring and checks that timer stopped itself. Because in the implementation Timer.stop() is called after the notifying listeners, it can happen that the listener was notified and thus unlocked the test thread. The test thread reached the problem assertion before the timer was actually stopped.
          To prevent this, I've added several new asserts to the test: the first asserts the timer rang, then listener is reset and put to wait state once again. Afterwards the test now asserts that the timer didn't ring once more, and at last the assert that timer is not running any more.
          Another solution that could be used here is to move Timer.stop before notifying listeners. However, if timer repeats, a new timer event could be posted before the previous event was passed to all listeners (this can be a problem only where timer is coalesce which is the default.)

          I've also removed Mikhail's update because it gives no real clue which timer wrote to the stream. Moreover since timer events are called from another thread, the failed assertion is not passed to JUnit. Thus the problem is hidden.
          To make the code more readable I've added blank lines to test methods.

          Show
          Alexey A. Ivanov added a comment - H2438-j.s.Timer_MultithreadedTest.patch fixes problems with testIsRunning() and testSetLogTimers(). testSetLogTimers(): the reason why it failed was that a local variable (for the test method) was used for timer manipulations. Because of that the timer was not stopped (tearDown stops the timer). Since there were running many timers, any of them could write to the stream after the timer watched and before setLogTimers(false) was called. testIsRunning(): the test starts timer, then asserts timer is running, waits for timer ring and checks that timer stopped itself. Because in the implementation Timer.stop() is called after the notifying listeners, it can happen that the listener was notified and thus unlocked the test thread. The test thread reached the problem assertion before the timer was actually stopped. To prevent this, I've added several new asserts to the test: the first asserts the timer rang, then listener is reset and put to wait state once again. Afterwards the test now asserts that the timer didn't ring once more, and at last the assert that timer is not running any more. Another solution that could be used here is to move Timer.stop before notifying listeners. However, if timer repeats, a new timer event could be posted before the previous event was passed to all listeners (this can be a problem only where timer is coalesce which is the default.) I've also removed Mikhail's update because it gives no real clue which timer wrote to the stream. Moreover since timer events are called from another thread, the failed assertion is not passed to JUnit. Thus the problem is hidden. To make the code more readable I've added blank lines to test methods.
          Mikhail Loenko made changes -
          Assignee Mikhail Loenko [ mloenko ]
          tatyana doubtsova made changes -
          Field Original Value New Value
          Attachment patch-2438-exclude.windows.txt [ 12346564 ]
          Hide
          tatyana doubtsova added a comment -

          I attached patches to swing ibm and drl exlude lists.

          In addition to already mentioned failures there is one more intermittent failure on drlvm:

          11). javax.swing.text.AbstractDocument_AbstractElement_MASNoLockTest@ testAddAttributeAnotherThread

          Failure
          N/A

          junit.framework.AssertionFailedError at java.lang.Error.<init>(Error.java) at junit.framework.AssertionFailedError.<init>(AssertionFailedError.java) at javax.swing.text.AbstractDocument_AbstractElement_MASNoLockTest.testAddAttributeAnotherThread(AbstractDocument_AbstractElement_MASNoLockTest.java:157) at java.lang.reflect.VMReflection.invokeMethod(Native Method)

          Show
          tatyana doubtsova added a comment - I attached patches to swing ibm and drl exlude lists. In addition to already mentioned failures there is one more intermittent failure on drlvm: 11). javax.swing.text.AbstractDocument_AbstractElement_MASNoLockTest@ testAddAttributeAnotherThread Failure N/A junit.framework.AssertionFailedError at java.lang.Error.<init>(Error.java) at junit.framework.AssertionFailedError.<init>(AssertionFailedError.java) at javax.swing.text.AbstractDocument_AbstractElement_MASNoLockTest.testAddAttributeAnotherThread(AbstractDocument_AbstractElement_MASNoLockTest.java:157) at java.lang.reflect.VMReflection.invokeMethod(Native Method)
          Hide
          Alexey A. Ivanov added a comment -

          About Timer_MultithreadedTest failure:
          I think this stack trace doesn't help in any respect. I've found the problem with the test. I'll attach a patch later.

          Show
          Alexey A. Ivanov added a comment - About Timer_MultithreadedTest failure: I think this stack trace doesn't help in any respect. I've found the problem with the test. I'll attach a patch later.
          Hide
          tatyana doubtsova added a comment -

          The new failure log for javax.swing.Timer_MultithreadedTest (failes 4 times out of 16 iterative runs of swing module tests on drlvm, once mode ):

          [junit] Uncaught exception in AWT-EventDispatchThread:
          [junit] junit.framework.AssertionFailedError: log must not be written
          [junit] at java.lang.Error.<init>(Error.java)
          [junit] at junit.framework.AssertionFailedError.<init>(AssertionFailedError.java)
          [junit] at junit.framework.Assert.fail(Assert.java:47)
          [junit] at junit.framework.Assert.assertTrue(Assert.java:19)
          [junit] at javax.swing.Timer_MultithreadedTest$1LogOutputStream.write(Timer_MultithreadedTest.java:380)
          [junit] at java.io.OutputStream.write(OutputStream.java:102)
          [junit] at java.io.PrintStream.write(PrintStream.java:660)
          [junit] at java.io.FilterOutputStream.write(FilterOutputStream.java:94)
          [junit] at java.io.PrintStream.print(PrintStream.java:488)
          [junit] at java.io.PrintStream.println(PrintStream.java:611)
          [junit] at javax.swing.Timer$FiringEventRunnable.run(Timer.java:47)
          [junit] at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:90)
          [junit] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:77)
          [junit] at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java)
          [junit] at java.awt.EventQueue.dispatchEvent(EventQueue.java:144)
          [junit] at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:74)
          [junit] at java.awt.EventDispatchThread.run(EventDispatchThread.java:45)
          [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
          [junit] Tests FAILED (timeout)

          Show
          tatyana doubtsova added a comment - The new failure log for javax.swing.Timer_MultithreadedTest (failes 4 times out of 16 iterative runs of swing module tests on drlvm, once mode ): [junit] Uncaught exception in AWT-EventDispatchThread: [junit] junit.framework.AssertionFailedError: log must not be written [junit] at java.lang.Error.<init>(Error.java) [junit] at junit.framework.AssertionFailedError.<init>(AssertionFailedError.java) [junit] at junit.framework.Assert.fail(Assert.java:47) [junit] at junit.framework.Assert.assertTrue(Assert.java:19) [junit] at javax.swing.Timer_MultithreadedTest$1LogOutputStream.write(Timer_MultithreadedTest.java:380) [junit] at java.io.OutputStream.write(OutputStream.java:102) [junit] at java.io.PrintStream.write(PrintStream.java:660) [junit] at java.io.FilterOutputStream.write(FilterOutputStream.java:94) [junit] at java.io.PrintStream.print(PrintStream.java:488) [junit] at java.io.PrintStream.println(PrintStream.java:611) [junit] at javax.swing.Timer$FiringEventRunnable.run(Timer.java:47) [junit] at java.awt.event.InvocationEvent.runAndNotify(InvocationEvent.java:90) [junit] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:77) [junit] at java.awt.EventQueueCore.dispatchEventImpl(EventQueueCore.java) [junit] at java.awt.EventQueue.dispatchEvent(EventQueue.java:144) [junit] at java.awt.EventDispatchThread.runModalLoop(EventDispatchThread.java:74) [junit] at java.awt.EventDispatchThread.run(EventDispatchThread.java:45) [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec [junit] Tests FAILED (timeout)
          Hide
          tatyana doubtsova added a comment -

          I also performed iterative runs of swing modile tests on drlvm in 'once' mode.

          case #9 (javax.swing.Timer_MultithreadedTest@ testSetLogTimers Failure) was observed 8 times out of 50

          10) 1 time out of 50
          javax.swing.JCheckBoxMenuItemTest@testCreateActionListenerFailed was interrupted due timeout

          Show
          tatyana doubtsova added a comment - I also performed iterative runs of swing modile tests on drlvm in 'once' mode. case #9 (javax.swing.Timer_MultithreadedTest@ testSetLogTimers Failure) was observed 8 times out of 50 10) 1 time out of 50 javax.swing.JCheckBoxMenuItemTest@testCreateActionListenerFailed was interrupted due timeout
          Hide
          Mikhail Loenko added a comment -

          9) I updated the test (r482617) to simplify analysis. Next time it fails - please update us with new failure log

          Show
          Mikhail Loenko added a comment - 9) I updated the test (r482617) to simplify analysis. Next time it fails - please update us with new failure log
          tatyana doubtsova created issue -

            People

            • Assignee:
              Mikhail Loenko
              Reporter:
              tatyana doubtsova
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:

                Development