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

java/awt/Window/WindowsLeak/WindowsLeak.java fails

    Details

    • Subcomponent:
      2d
    • Resolved In Build:
      b124
    • OS:
      os_x

      Backports

        Description

        fails on jdk1.8.0b115, jdk1.8.0b114 and jdk1.7.0_45b18

        ----------System.out:(0/0)----------
        ----------System.err:(13/777)----------
        java.lang.RuntimeException: Test FAILED: Window list is not empty: 87
        at WindowsLeak.main(WindowsLeak.java:66)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:94)
        at java.lang.Thread.run(Thread.java:744)

        JavaTest Message: Test threw exception: java.lang.RuntimeException: Test FAILED: Window list is not empty: 87
        JavaTest Message: shutting down test

        STATUS:Failed.`main' threw exception: java.lang.RuntimeException: Test FAILED: Window list is not empty: 87
        result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Test FAILED: Window list is not empty: 87


        test result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Test FAILED: Window list is not empty: 87

          Activity

          Hide
          azvegint Alexander Zvegintsev added a comment -
          This is a test issue. This is a new test and it was introduced in JDK-8013563.
          Show
          azvegint Alexander Zvegintsev added a comment - This is a test issue. This is a new test and it was introduced in JDK-8013563 .
          Hide
          rnairsunw Raghu Nair (Inactive) added a comment -
          Test fails on JDK 8 b132 , JDK 8u10 b10 and JDK 9 b09 on Mac with the same exception
          Show
          rnairsunw Raghu Nair (Inactive) added a comment - Test fails on JDK 8 b132 , JDK 8u10 b10 and JDK 9 b09 on Mac with the same exception
          Hide
          sgupta Shobhit Gupta added a comment -
          RULE java/awt/Window/WindowsLeak/WindowsLeak.java Exception java.lang.RuntimeException: Test FAILED: Window list is not empty: ...
          Show
          sgupta Shobhit Gupta added a comment - RULE java/awt/Window/WindowsLeak/WindowsLeak.java Exception java.lang.RuntimeException: Test FAILED: Window list is not empty: ...
          Hide
          ant Anton Tarasov added a comment -
          I came across a leak issue in IDEA/jdk8 which leaded to this test case. Some investigation revealed the following issue.

          Please open the attached screenshot, made with YourKit, where a chain of links is shown from the GC roots. The frame is held by its peer which is held by CGLLayer which is held as validatedSrcData in the GL context. The point is that the GL context doesn't cleanup the last state until under some conditions, which are not applicable to this scenario. I'm not sure should the cleanup be triggered here or not, but the problem can be solved otherwise.

          The point is that in the chain the CGLLayer instance has been disposed, in response to the frame disposal. So, this is the only ref that holds it (the JNI ref is released by the native peer on disposal). Thus, as the layer is disposed it can at least zero all the java refs it holds (this change already fixes the problem). Then, the "layer" ref in CGLLayerSurfaceData should probably be made weak.

          I'll post the fix to the alias.
          Show
          ant Anton Tarasov added a comment - I came across a leak issue in IDEA/jdk8 which leaded to this test case. Some investigation revealed the following issue. Please open the attached screenshot, made with YourKit, where a chain of links is shown from the GC roots. The frame is held by its peer which is held by CGLLayer which is held as validatedSrcData in the GL context. The point is that the GL context doesn't cleanup the last state until under some conditions, which are not applicable to this scenario. I'm not sure should the cleanup be triggered here or not, but the problem can be solved otherwise. The point is that in the chain the CGLLayer instance has been disposed, in response to the frame disposal. So, this is the only ref that holds it (the JNI ref is released by the native peer on disposal). Thus, as the layer is disposed it can at least zero all the java refs it holds (this change already fixes the problem). Then, the "layer" ref in CGLLayerSurfaceData should probably be made weak. I'll post the fix to the alias.
          Hide
          hgupdate HG Updates added a comment -
          URL: http://hg.openjdk.java.net/jdk9/client/jdk/rev/797a434306c2
          User: serb
          Date: 2016-05-28 23:10:47 +0000
          Show
          hgupdate HG Updates added a comment - URL: http://hg.openjdk.java.net/jdk9/client/jdk/rev/797a434306c2 User: serb Date: 2016-05-28 23:10:47 +0000
          Hide
          hgupdate HG Updates added a comment -
          URL: http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/797a434306c2
          User: lana
          Date: 2016-06-22 19:53:10 +0000
          Show
          hgupdate HG Updates added a comment - URL: http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/797a434306c2 User: lana Date: 2016-06-22 19:53:10 +0000

            People

            • Assignee:
              serb Sergey Bylokhov
              Reporter:
              asakharu Aleksandr Sakharuk (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: