After lots of testing, I've realized what the problem was: Ender and BDsalem can not handle the graphics on the field marked in red with that specific crop at that stage. So what happened is: that field with that crop reached that stage then everyone that was using Bdsalem/Ender crashed whenever they try to load that field.
This was verified through destroying that particular field; that removed the crashes.
Given that I don't expect Ender or BdSalem to be able to fix this on their own within reasonable time and that it can be majorly abused by anyone who figures out how to replicate such fields, I forward this problem to the devs so that perhaps they can fix it so that bdsalem and ender doesn't crash.
(Regular client doesn't crash)

The Ender report was:
- Code: Select all
javax.media.opengl.GLException: java.lang.IndexOutOfBoundsException: -98304
at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:271)
at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:410)
at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
at haven.HavenPanel.uglyjoglhack(HavenPanel.java:383)
at haven.HavenPanel.run(HavenPanel.java:417)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IndexOutOfBoundsException: -98304
at java.nio.DirectFloatBufferU.get(Unknown Source)
at haven.VertexBuf$NormalArray.set(VertexBuf.java:147)
at haven.FastMesh.sdraw(FastMesh.java:76)
at haven.FastMesh.draw(FastMesh.java:108)
at haven.RenderList.render(RenderList.java:207)
at haven.RenderList.render(RenderList.java:218)
at haven.PView.draw(PView.java:169)
at haven.MapView.draw(MapView.java:764)
at haven.Widget.draw(Widget.java:468)
at haven.Widget.draw(Widget.java:473)
at haven.GameUI.draw(GameUI.java:361)
at haven.Widget.draw(Widget.java:468)
at haven.Widget.draw(Widget.java:473)
at haven.RootWidget.draw(RootWidget.java:63)
at haven.UI.draw(UI.java:140)
at haven.HavenPanel.redraw(HavenPanel.java:271)
at haven.HavenPanel$1.display(HavenPanel.java:88)
at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:435)
at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
at javax.media.opengl.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:452)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
BdSalem report:
- Code: Select all
avax.media.opengl.GLException: java.lang.IndexOutOfBoundsException: -98304
at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:271)
at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:410)
at javax.media.opengl.GLCanvas.display(GLCanvas.java:244)
at haven.HavenPanel.uglyjoglhack(HavenPanel.java:463)
at haven.HavenPanel.run(HavenPanel.java:500)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IndexOutOfBoundsException: -98304
at java.nio.DirectFloatBufferU.get(Unknown Source)
at haven.VertexBuf$NormalArray.set(VertexBuf.java:169)
at haven.FastMesh.sdraw(FastMesh.java:71)
at haven.FastMesh.draw(FastMesh.java:104)
at haven.RenderList.render(RenderList.java:216)
at haven.RenderList.render(RenderList.java:227)
at haven.PView.draw(PView.java:165)
at haven.MapView.draw(MapView.java:775)
at haven.Widget.draw(Widget.java:469)
at haven.Widget.draw(Widget.java:474)
at haven.GameUI.draw(GameUI.java:554)
at haven.Widget.draw(Widget.java:469)
at haven.Widget.draw(Widget.java:474)
at haven.RootWidget.draw(RootWidget.java:88)
at haven.UI.draw(UI.java:138)
at haven.HavenPanel.redraw(HavenPanel.java:337)
at haven.HavenPanel$1.display(HavenPanel.java:109)
at com.sun.opengl.impl.GLDrawableHelper.display(GLDrawableHelper.java:78)
at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:435)
at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194)
at javax.media.opengl.GLCanvas$DisplayOnEventDispatchThreadAction.run(GLCanvas.java:452)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown
Edit: I am speculating it has something to do with how the client loads curved graphics, since that bug-causing field is very curved.