Thanks for the feedback, Running it on jdk1.7.0_21-32bit I don't see that error any more (though I am still having camera capture issues when integrating LTI CIVIL into JFX - still trying to narrow down where the fault lies).
I do get this error however, but it seems to recover from it. java.lang.NullPointerException at com.sun.prism.impl.BaseResourceFactory.clearTextureCache(BaseResourceFactory.java:47) at com.sun.prism.impl.BaseResourceFactory.getCachedTexture(BaseResourceFactory.java:102) at com.sun.javafx.sg.prism.NGImageView.renderContent(NGImageView.java:115) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187) at com.sun.javafx.sg.prism.NGImageView.doRender(NGImageView.java:97) at com.sun.javafx.sg.prism.NGImageView.doRender(NGImageView.java:20) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) at com.sun.javafx.sg.prism.NodeEffectInput.getImageDataForBoundedNode(NodeEffectInput.java:192) at com.sun.javafx.sg.prism.NodeEffectInput.filter(NodeEffectInput.java:85) at com.sun.scenario.effect.FilterEffect.filter(FilterEffect.java:167) at com.sun.scenario.effect.Offset.filter(Offset.java:161) at com.sun.scenario.effect.Merge.filter(Merge.java:147) at com.sun.scenario.effect.DelegateEffect.filter(DelegateEffect.java:68) at com.sun.scenario.effect.impl.prism.PrEffectHelper.render(PrEffectHelper.java:156) at com.sun.javafx.sg.prism.NGNode$EffectFilter.render(NGNode.java:748) at com.sun.javafx.sg.prism.NGNode.renderEffect(NGNode.java:494) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:185) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:204) at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:187) at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1145) at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:117) at com.sun.javafx.tk.quantum.AbstractPainter.paintImpl(AbstractPainter.java:181) at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:73) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) at com.sun.prism.render.RenderJob.run(RenderJob.java:37) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:98) at java.lang.Thread.run(Thread.java:722) On Wed, Jun 12, 2013 at 12:55 AM, Kevin Rushforth < kevin.rushfo...@oracle.com> wrote: > ** > > I take it there's no way to avoid the resources issue in the old JFX, it's > just a plain and simple bug? > > > I don't know of a way to completely avoid it. As far as we know there > aren't any actual leaks in the more recent FX 2.2.x texture code, but the > resource disposal is not deterministic and if you hit the limit of texture > memory it does not recover gracefully (or at all). > > Jim might have more insight, since he implemented the new texture > management system for FX 8.; > > > -- Kevin > > > > Daniel Zwolenski wrote: > > This is an older version, probably JFX from around jdk1.7.0_02. > > I'm running it now on jdk1.7.0_21 to see what happens (takes about an > hour to get to the point of failure, which is why I didn't pick it up when > I wrote the code originally). > > Unfortunately chunks of the system are broken when it runs on this newer > code. Lots of backwards compatibility breaks, especially visual ones with > CSS that just make it screwy. This is an old project and I don't really > want to be touching this code but they have this video capture bug which is > killing everything. > > I take it there's no way to avoid the resources issue in the old JFX, > it's just a plain and simple bug? > > > > On Tue, Jun 11, 2013 at 11:10 PM, Kevin Rushforth < > kevin.rushfo...@oracle.com> wrote: > >> Is this from FX 2.2.x or FX 8? The stack trace suggests an earlier >> version of FX. The only thing I can think of off hand is that the HW >> texture couldn't be created, probably because you ran out of resources. >> There are a few issues relating to this, which we believe are fixed in FX 8 >> with the implementation of RT-25323. >> >> -- Kevin >> >> >> >> Daniel Zwolenski wrote: >> >>> Can anyone tell me what might cause the exception below in Prism? >>> >>> It's from an app that captures video via a native library (LTI-CIVIL) and >>> then converts that image to JFX display via: >>> >>> BufferedImage buffImage = AWTImageConverter.toBufferedImage(image); >>> jfxImage = >>> javafx.scene.image.Image.impl_fromExternalImage(buffImage); >>> previewView.setImage(jfxImage); >>> >>> >>> java.lang.NullPointerException >>> at com.sun.prism.impl.BaseGraphics.drawTextureVO(BaseGraphics.java:365) >>> at com.sun.prism.impl.BaseGraphics.drawTexture(BaseGraphics.java:334) >>> at >>> com.sun.prism.impl.ps >>> .BaseShaderGraphics.drawTexture(BaseShaderGraphics.java:103) >>> at >>> com.sun.javafx.sg.prism.NGImageView.renderContent(NGImageView.java:315) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:185) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) >>> at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1139) >>> at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:205) >>> at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:185) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) >>> at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1139) >>> at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:205) >>> at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:185) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) >>> at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1139) >>> at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:205) >>> at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:185) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) >>> at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1139) >>> at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:205) >>> at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:420) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:185) >>> at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:39) >>> at com.sun.javafx.sg.BaseNode.render(BaseNode.java:1139) >>> at >>> com.sun.javafx.tk.quantum.PaintRunnable.doPaint(PaintRunnable.java:214) >>> at >>> com.sun.javafx.tk.quantum.PaintRunnable.paintImpl(PaintRunnable.java:145) >>> at com.sun.javafx.tk.quantum.PaintRunnable.run(PaintRunnable.java:349) >>> at >>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >>> at >>> >>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) >>> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) >>> at com.sun.prism.render.RenderJob.run(RenderJob.java:29) >>> at >>> >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) >>> at >>> >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) >>> at >>> >>> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:101) >>> at java.lang.Thread.run(Thread.java:722) >>> >>> >> >