Skip to content

Conversation

@stephengold
Copy link
Member

This attempts to avoid the NullPointerException reported by Pavl_G at the Forum:
https://hub.jmonkeyengine.org/t/engine-v3-4-0-beta-testing/44507/9

Since this appears to be related to #1408, I'd appreciate a review from @riccardobl

Stack trace from the reported crash:

SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.NullPointerException
	at com.jme3.renderer.opengl.GLRenderer.clearVertexAttribs(GLRenderer.java:2855)
	at com.jme3.renderer.opengl.GLRenderer.renderMeshDefault(GLRenderer.java:3188)
	at com.jme3.renderer.opengl.GLRenderer.renderMesh(GLRenderer.java:3219)
	at com.jme3.material.logic.DefaultTechniqueDefLogic.renderMeshFromGeometry(DefaultTechniqueDefLogic.java:72)
	at com.jme3.material.logic.SinglePassAndImageBasedLightingLogic.render(SinglePassAndImageBasedLightingLogic.java:268)
	at com.jme3.material.Technique.render(Technique.java:167)
	at com.jme3.material.Material.render(Material.java:1033)
	at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:634)
	at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:273)
	at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:318)
	at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:918)
	at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:799)
	at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:1128)
	at com.jme3.renderer.RenderManager.render(RenderManager.java:1180)
	at com.jme3.app.SimpleApplication.update(SimpleApplication.java:273)
	at com.jme3.system.lwjgl.LwjglWindow.runLoop(LwjglWindow.java:537)
	at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:624)
	at com.jme3.system.lwjgl.LwjglWindow.create(LwjglWindow.java:473)
	at com.jme3.app.LegacyApplication.start(LegacyApplication.java:491)

@stephengold stephengold added this to the v3.4.0 milestone Apr 19, 2021
@stephengold stephengold requested a review from riccardobl April 19, 2021 17:33
@stephengold stephengold added the bug Something that is supposed to work, but doesn't. More severe than a "defect". label Apr 22, 2021
@stephengold
Copy link
Member Author

Unless there's substantial review, I plan to integrate this in 24 hours.

@stephengold
Copy link
Member Author

Thanks for looking, @riccardobl!

@stephengold stephengold merged commit 6612445 into master Apr 25, 2021
@stephengold stephengold deleted the sgold-clear-attribs-npe branch April 25, 2021 21:54
@stephengold
Copy link
Member Author

I've now encountered the crash as well, in v3.4.0-beta1:

Apr 25, 2021 3:17:41 PM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.NullPointerException
	at com.jme3.renderer.opengl.GLRenderer.clearVertexAttribs(GLRenderer.java:2855)
	at com.jme3.renderer.opengl.GLRenderer.renderMeshDefault(GLRenderer.java:3188)
	at com.jme3.renderer.opengl.GLRenderer.renderMesh(GLRenderer.java:3219)
	at com.jme3.material.logic.DefaultTechniqueDefLogic.renderMeshFromGeometry(DefaultTechniqueDefLogic.java:72)
	at com.jme3.material.logic.DefaultTechniqueDefLogic.render(DefaultTechniqueDefLogic.java:97)
	at com.jme3.material.Technique.render(Technique.java:167)
	at com.jme3.material.Material.render(Material.java:1033)
	at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:634)
	at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:273)
	at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:318)
	at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:918)
	at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:799)
	at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:1128)
	at com.jme3.renderer.RenderManager.render(RenderManager.java:1180)
	at com.jme3.app.SimpleApplication.update(SimpleApplication.java:273)
	at com.jme3.system.lwjgl.LwjglWindow.runLoop(LwjglWindow.java:537)
	at com.jme3.system.lwjgl.LwjglWindow.run(LwjglWindow.java:624)
	at com.jme3.system.lwjgl.LwjglWindow.create(LwjglWindow.java:473)
	at com.jme3.app.LegacyApplication.start(LegacyApplication.java:491)
	at com.jme3.app.LegacyApplication.start(LegacyApplication.java:443)
	at com.jme3.app.SimpleApplication.start(SimpleApplication.java:126)
	at com.jayfella.jme.vehicle.simpledemo.HelloMav.main(HelloMav.java:93)

Glad to say the fix has been committed to both the "master" and "v3.4" branches.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something that is supposed to work, but doesn't. More severe than a "defect".

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants