[Fixed]Null Language in LwjglRenderer

Hmm, just found something odd.



I have a JME3Tests project which was created a while ago. I’ve built a version of JME3 core from the latest SVN and linked to the JME3Tests project to it.



Whenever I try and run any of the examples I get the same error (tried some of the tutorial ones as well as some others).



[java]SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]

java.lang.NullPointerException

at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderSourceData(LwjglRenderer.java:948)

at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderData(LwjglRenderer.java:1044)

at com.jme3.renderer.lwjgl.LwjglRenderer.setShader(LwjglRenderer.java:1129)

at com.jme3.material.Material.render(Material.java:1058)

at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:518)

at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:301)

at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:353)

at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:754)

at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:710)

at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:974)

at com.jme3.renderer.RenderManager.render(RenderManager.java:1016)

at com.jme3.app.SimpleApplication.update(SimpleApplication.java:251)

at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:149)

at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:182)

at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:223)

at java.lang.Thread.run(Thread.java:722)



AL lib: ReleaseALC: 1 device not closed



Exception: java.lang.AbstractMethodError thrown from the UncaughtExceptionHandler in thread “LWJGL Renderer Thread”

[/java]



I then changed my game project to link against that same freshly built jme3-core and got the same error.



[java]SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]

java.lang.NullPointerException

at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderSourceData(LwjglRenderer.java:948)

at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderData(LwjglRenderer.java:1044)

at com.jme3.renderer.lwjgl.LwjglRenderer.setShader(LwjglRenderer.java:1129)

at com.jme3.material.Material.render(Material.java:1058)

at com.jme3.niftygui.RenderDeviceJme.renderQuad(RenderDeviceJme.java:339)

at de.lessvoid.nifty.render.ScalingRenderDevice.renderQuad(ScalingRenderDevice.java:67)

at de.lessvoid.nifty.render.NiftyRenderEngineImpl.renderQuad(NiftyRenderEngineImpl.java:217)

at de.lessvoid.nifty.elements.render.PanelRenderer.render(PanelRenderer.java:54)

at de.lessvoid.nifty.elements.Element.renderElement(Element.java:724)

at de.lessvoid.nifty.elements.Element.render(Element.java:702)

at de.lessvoid.nifty.screen.Screen.renderLayers(Screen.java:313)

at de.lessvoid.nifty.Nifty.render(Nifty.java:310)

at com.jme3.niftygui.NiftyJmeDisplay.postQueue(NiftyJmeDisplay.java:169)

at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:970)

at com.jme3.renderer.RenderManager.render(RenderManager.java:1022)

at com.jme3.app.SimpleApplication.update(SimpleApplication.java:251)

at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:149)

at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:182)

at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:223)

at java.lang.Thread.run(Thread.java:722)

[/java]



The line in question seems to be in updateShaderSourceData, which has had a null value passed in for language.



Is this a compatibility thing where I need to update another library as well or something more serious?



Thanks,

Z

It was a library incompatibility thing, I made sure all the other libs were from the same source and it fixed it.

1 Like