JDK-8093978 : WebEngine/WebView Outstanding resource locks detected and NullPointers
  • Type: Bug
  • Component: javafx
  • Sub-Component: web
  • Affected Version: 8
  • Priority: P2
  • Status: Closed
  • Resolution: Cannot Reproduce
  • Submitted: 2014-03-25
  • Updated: 2015-06-12
  • Resolved: 2015-05-22
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9Resolved
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Description
This has been a problem since I started with JavaFX 8 a couple months ago, I just didn't have time to log it yet.  My test app can be found at https://www.dropbox.com/sh/06yoh97jrtu36nj/7prK0vM5Sx

Running through proxy
- Going to Thingiverse WebView throws alot of error mesages and sometimes also NullPointers.  It also can't display many of the images on the website.  In my demo app I didn't add code to download, but in my main app I can download from websites.  Downloading from Thingiverse with proxy enabled causes a timeout
- Can't go to CubeHero.  I can go to CubeHero through Chrome and using the same proxy
- Can't go to YouMagine.  I can go to YouMagine through Chrome and using the same proxy

Not using a proxy
- Still many errors from Thingiverse and many of the images can't display
- Can go to CubeHero
- Can go to YouMagine



Some of the errors that show up with or without proxy.  I haven't been able to produce the NullPointers now
Outstanding resource locks detected:
D3D Vram Pool: 117,793,268 used (43.9%), 117,793,268 managed (43.9%), 268,435,456 total
173 total resources being managed
average resource age is 0.6 frames
0 resources at maximum supported age (0.000000)
74 resources marked permanent (42.800000)
45 resources have had mismatched locks (26.000000)
45 resources locked (26.000000)
101 resources contain interesting data (58.400000)
0 resources disappeared (0.000000)

When these errors come up the images normally do not show up on the web page
Comments
Thanks, Malis, I'll investigate it.
29-05-2015

@Anton: As you've probably seen it, I have opened an issue https://javafx-jira.kenai.com/browse/RT-46082 to describe my problem.
27-05-2015

@Malis, RT-34921 is still open because I wasn't able to run the test case as I mentioned in the comments. So, I can't confirm or deny its reproducibility so far. Can you please describe the steps which led you to encounter "locks detected" with 8u60b16? Thanks. @Kobus, thanks for the verification!
26-05-2015

I've checked with the given download link jdk-8u60-ea-bin-b16-windows-i586-19_may_2015.exe, but in my case, I still have the error message about Outstanding resource Locks detected: Outstanding resource locks detected: D3D Vram Pool: 12,198,928 used (2.3%), 67,108,864 target (12.5%), 536,870,912 max 11 total resources being managed average resource age is 0.7 frames 0 resources at maximum supported age (0.0%) 3 resources marked permanent (27.3%) 3 resources have had mismatched locks (27.3%) 3 resources locked (27.3%) 5 resources contain interesting data (45.5%) 0 resources disappeared (0.0%) But it seems that this is still an open issue as I have seen that https://javafx-jira.kenai.com/browse/RT-34921 is still marked as "open". Guess I'll have to check the resolution in the other issue then. Thanks for the information!
26-05-2015

Just downloaded Java 9 for Windows 64 bit, couldn't configure Netbeans to use it, because it doesn't seem to have the same files/directories as Java 8 or before java version "1.9.0-ea" Java(TM) SE Runtime Environment (build 1.9.0-ea-b65) Java HotSpot(TM) 64-Bit Server VM (build 1.9.0-ea-b65, mixed mode) Running at home so not through a proxy Ran my app with Java 9, but was compiled in 8. java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode) Did a bit of a torture test using thingiverse.com and it worked. It had a hiccup on screen when I was moving quickly forward and back and clicking on things, but 100% better than it used to be. Thank you Now just need to allow reading headers so that I don't need to parse URL's to see where I am :)
26-05-2015

I checked that It works fine as well (all the four links in the app) with 8u60b15.
22-05-2015

All existing WebView fixes that are in 9 have already been backported to 8u60. You can download the latest EA build of 8u60 here: https://jdk8.java.net/download.html
22-05-2015

Will this issue be fixed only in JavaFX 9? Is it possible to backport the bugfixes of WebView in JavaFX 8? Because of this issue (among other things), we cannot use WebView in our application, which did not have this problem when we are using JRE 7 and JavaFX 2.2...
22-05-2015

I checked it again with jfx9b53 and I no longer see the reported problems. No "outstanding locks" messages and everything is displayed fine in the App behind proxy (I actually think the latter problem doesn't relate to WebView). Tested it on Windows/Mac. So, I'm closing this.
22-05-2015

On Mac the images are displayed fine w/ and w/o proxy. As to the "outstanding locks" warning, the behaviour is the same. It's reproducible with older jfx versions and is not reproducible with the latest jfx9-dev.
13-03-2015

I reproduced the "resource locks detected" issue with jfx9b37, but I can no longer reproduce it with the latest jfx9-dev. Note that since jfx9 b52 we have an updated WebView (RT-36726). I can't reproduce the NPE as well. What I see is that images indeed are not loaded when I'm navigating to Thingeverse (behind proxy). Though, if I load http://www.thingiverse.com in WebLauncher everything shows fine.
12-03-2015

SQE is ok to defer from 8u40 as it is reproducible since 8.
26-11-2014

I think we will need to defer this to 9 given the lack of time and resources.
13-11-2014

Almost all of the changesets listed above, were just build scripts changes. The vast majority of code changes was made with changeset: 4236:8cbaf9096cda parent: 4182:7218d2c34f01 user: Alexey Utkin <alexey.utkin@oracle.com> date: Fri Jul 05 14:44:35 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) That was a recurrent merge with the Webkit codebase.
16-10-2014

Ok, bail.
23-09-2014

A massive set of changes when into this build, and the bisecting work is a non-starter as the builders don't build. changeset: 4268:7189378b9156 user: Vasiliy Baranov <vasiliy.baranov@oracle.com> date: Thu Jul 11 15:12:42 2013 +0400 summary: RT-24511: window.mouseout event not fired when mouse leaves WebView changeset: 4251:e03ba4c71157 user: peterz date: Wed Jul 10 19:03:23 2013 +0400 summary: Fixed DRT creation changeset: 4247:c0b912353269 user: Alexey Utkin <alexey.utkin@oracle.com> date: Tue Jul 09 18:33:45 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) JS stack size fix for win32 changeset: 4246:64ece25b039f user: Alexey Utkin <alexey.utkin@oracle.com> date: Tue Jul 09 15:40:19 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) win64, scroll fix changeset: 4245:b85884d0523e user: Alexey Utkin <alexey.utkin@oracle.com> date: Tue Jul 09 14:02:00 2013 +0400 summary: Fixed ASM compilation on win64 changeset: 4244:70d60ca000c6 user: Alexey Utkin <alexey.utkin@oracle.com> date: Mon Jul 08 20:54:50 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) win64 fix changeset: 4243:d75cf082b3a8 parent: 4242:4a1d4fb462d3 parent: 4241:9bc9a86501a5 user: Alexey Utkin <alexey.utkin@oracle.com> date: Mon Jul 08 15:04:22 2013 +0400 summary: merge changeset: 4242:4a1d4fb462d3 parent: 4240:02fad2dd67b1 user: Alexey Utkin <alexey.utkin@oracle.com> date: Mon Jul 08 15:00:52 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) win64,mac build fix changeset: 4241:9bc9a86501a5 user: peterz date: Fri Jul 05 20:27:43 2013 +0400 summary: Added newline at end of OESTextureHalfFloat.idl changeset: 4240:02fad2dd67b1 user: Alexey Utkin <alexey.utkin@oracle.com> date: Fri Jul 05 17:50:50 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) python fix add changeset: 4239:cb58342692d7 user: Alexey Utkin <alexey.utkin@oracle.com> date: Fri Jul 05 17:42:24 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) python fix add changeset: 4238:7ffe66aa4523 user: Alexey Utkin <alexey.utkin@oracle.com> date: Fri Jul 05 17:30:53 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) python fix add changeset: 4237:39768309ed07 user: Alexey Utkin <alexey.utkin@oracle.com> date: Fri Jul 05 17:12:15 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) python fix changeset: 4236:8cbaf9096cda parent: 4182:7218d2c34f01 user: Alexey Utkin <alexey.utkin@oracle.com> date: Fri Jul 05 14:44:35 2013 +0400 summary: RT-31450: Merge with Webkit master (svn revision r150795) changeset: 4231:5e4376a371f0 user: hudson date: Thu Jul 11 15:48:25 2013 -0700 summary: Added tag 8.0-b98 changeset: 4186:b746a171dc3a user: Vasiliy Baranov <vasiliy.baranov@oracle.com> date: Fri Jul 05 16:58:00 2013 +0400 summary: RT-25644: Implement WebSocket traffic tunneling through HTTP(S) proxies that require authentication changeset: 4183:9ceb29c29665 parent: 4181:62160d20258a user: peterz date: Thu Jul 04 20:31:13 2013 +0400 summary: RT-31381 Apps using WebView don't work with default build setting changeset: 4151:7e8af993c478 user: hudson date: Thu Jul 04 08:30:10 2013 -0700 summary: Added tag 8.0-b97 for changeset 79c040d01c80
23-09-2014

Due to the gradle switch, and the attended massive changes in the repo structure around that time, this may be difficult / impractical. It might be better to just look at a list of changesets that went in between those two builds.
23-09-2014

Build info is nice but the most important thing is change set. Bisect my son!
23-09-2014

This happened between 8.0-b97 and 8.0-b99
23-09-2014

We are sorry, but at this time we have no resources to work on WebView bugs for the 8u20 release. Unfortunately, we will have to defer them to 8u40.
23-05-2014

Awesomeness. Christmas is coming early for me :) Remember to download my app when you buy my DLP 3D printer :)
26-03-2014

It's currently targeted for 8u20, so if at all possible we will fix it for that release.
26-03-2014

So might this only get fixed in 9? Would put a damper on my app since my app is the only 3D printer control app in the world now with an integrated web browser allowing users to download a 3D object right into a 3D world and print it without ever alt+tabbing
26-03-2014

This is likely the same bug as (or at least closely related to) RT-34443.
26-03-2014

I was able to get the NullPointer in my main app by going to Thingiverse java.lang.NullPointerException at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:389) at com.sun.prism.impl.ps.BaseShaderGraphics.drawTexture(BaseShaderGraphics.java:139) at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:378) at com.sun.javafx.sg.prism.NGSubScene.renderContent(NGSubScene.java:231) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2282) at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2176) at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2202) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2037) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2282) at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2176) at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2202) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2037) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:469) at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:317) at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:89) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) at java.lang.Thread.run(Thread.java:744) java.lang.NullPointerException at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:389) at com.sun.prism.impl.ps.BaseShaderGraphics.drawTexture(BaseShaderGraphics.java:139) at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:378) at com.sun.javafx.sg.prism.NGSubScene.renderContent(NGSubScene.java:231) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2282) at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2176) at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2202) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2037) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2282) at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2176) at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2202) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2037) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:225) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:575) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2043) at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1951) at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:469) at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:317) at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:89) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:129) at java.lang.Thread.run(Thread.java:744)
25-03-2014