Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8156098

JRE 1.8 java.awt.Dialog setvisible method has some thread issue.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Incomplete
    • Icon: P3 P3
    • 9
    • 8u73, 9
    • client-libs
    • x86_64
    • windows_7

      FULL PRODUCT VERSION :
      java version "1.8.0_91"

      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows [Version 6.1.7601]

      A DESCRIPTION OF THE PROBLEM :

      java.awt.Dialog setvisible method has some thread issue.
      It does not wait for the completion of org.eclipse.core.runtime.jobs.Job .It interprets the thread and result is dialog gets hang, if the JOB thread goes to runnable state(Thread.sleep).

      In JRE1.7 and earlier version it is working fine.




      Call Stack
      Unsafe.park(boolean, long) line: not available [native method]
      LockSupport.park(Object) line: not available
      AbstractQueuedSynchronizer$ConditionObject.await() line: not available
      EventQueue.getNextEvent(int) line: not available
      EventDispatchThread.pumpOneEventForFilters(int) line: not available
      EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: not available
      EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: not available
      EventDispatchThread.pumpEvents(int, Conditional) line: not available
      SequencedEvent.dispatch() line: not available [local variables unavailable]
      EventQueue.dispatchEventImpl(AWTEvent, Object) line: not available
      EventQueue.access$400(EventQueue, AWTEvent, Object) line: not available
      EventQueue$3.run() line: not available
      EventQueue$3.run() line: not available
      AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
      ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: not available
      ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext) line: not available
      EventQueue$4.run() line: not available
      EventQueue$4.run() line: not available
      AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
      ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: not available
      EventQueue.dispatchEvent(AWTEvent) line: not available
      EventDispatchThread.pumpOneEventForFilters(int) line: not available
      EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: not available
      EventDispatchThread.pumpEventsForFilter(Conditional, EventFilter) line: not available
      WaitDispatchSupport$2.run() line: not available [local variables unavailable]
      WaitDispatchSupport$4.run() line: not available [local variables unavailable]
      WaitDispatchSupport$4.run() line: not available [local variables unavailable]
      AccessController.doPrivileged(PrivilegedAction<T>) line: not available [native method]
      WaitDispatchSupport.enter() line: not available
      BOMPasteDialog(Dialog).show() line: not available [local variables unavailable]
      BOMPasteDialog(Component).show(boolean) line: not available
      BOMPasteDialog(Component).setVisible(boolean) line: not available
      BOMPasteDialog(Window).setVisible(boolean) line: not available
      BOMPasteDialog(Dialog).setVisible(boolean) line: not available
      BOMPasteDialog(AbstractAIFDialog).setVisible(boolean) line: not available
      BOMPasteDialog(AbstractProgressDialog).setVisible(boolean) line: 2270
      BOMPasteDialog(AbstractProgressDialog).run() line: 2283
      MoveToCommand(AbstractAIFCommand).executeCommand() line: not available
      MoveToCommand(AbstractAIFCommand).run() line: not available
      MoveToCommand(AbstractAIFCommand).executeSwingCommand() line: not available
      AbstractAIFCommand$1.run() line: not available
      InvocationEvent.dispatch() line: not available
      EventQueue.dispatchEventImpl(AWTEvent, Object) line: not available
      EventQueue.access$400(EventQueue, AWTEvent, Object) line: not available
      EventQueue$3.run() line: not available
      EventQueue$3.run() line: not available
      AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
      ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: not available
      EventQueue.dispatchEvent(AWTEvent) line: not available
      EventDispatchThread.pumpOneEventForFilters(int) line: not available
      EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: not available
      EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: not available
      EventDispatchThread.pumpEvents(int, Conditional) line: not available
      EventDispatchThread.pumpEvents(Conditional) line: not available
      EventDispatchThread.run() line: not available

      REGRESSION. Last worked in version 8u73

      ADDITIONAL REGRESSION INFORMATION:
      Working fine in all the JRE 1.7 version( JRE1.7.0_01)

      Issue is only in JRE 1.8 java version "1.8.0_91"

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Call the super.setVisible method of java.awt.Dialog setvisible parallely start a new thread with org.eclipse.core.runtime.jobs.Job incluse Thread.sleep in the job thread.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Dialog gets hang somtime.

      REPRODUCIBILITY :
      This bug can be reproduced occasionally.

      CUSTOMER SUBMITTED WORKAROUND :
      Skip the Thread.sleep or object.wait that brings the thread from running state to runnable state.

      SUPPORT :
      YES

            arapte Ambarish Rapte
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: