Hello
So i was thinking about creating a save feature with Savable.
I already had a pretty big objectgraph so i let all the things implement Savable, and finally at the top an AppState, then i could in theory save and load the entire thing.
The serialization works (in XML form i can see that everything is there).
It loads without exceptions.
But when i attach the newly loaded AppState i get this:
java.lang.NullPointerException
at com.jme3.renderer.opengl.GLRenderer.clearVertexAttribs(GLRenderer.java:2322)
at com.jme3.renderer.opengl.GLRenderer.renderMeshDefault(GLRenderer.java:2674)
at com.jme3.renderer.opengl.GLRenderer.renderMesh(GLRenderer.java:2701)
at com.jme3.material.Material.renderMeshFromGeometry(Material.java:728)
at com.jme3.material.Material.render(Material.java:1217)
at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:564)
at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:266)
at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:305)
at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:814)
at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:725)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:1040)
at com.jme3.renderer.RenderManager.render(RenderManager.java:1088)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:260)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:151)
at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:192)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:232)
at java.lang.Thread.run(Thread.java:745)
I tried to reproduce this in a little project but i cant get it to not work…lol
But the main project is too large to post here.
The structure goes like this:
AppState
—Node
—ArrayList
—some more primitive fields…
And in the List i have objects that contain more Savable’s as fields.
As soon as i attach the node in the AppState i get the exception.
So now i dont really ask for a concrete solution, just for any general direction where i should look for the solution.
(btw i dont even understand how this error can even happen)
Any tips or advice on how i could go and at least narrow down the problem would be great!