found it i guess. it happens when an empty Object3D is created with new constructor:
Object3D object = new Object3D(new float[0], new float[0], new int[0], TextureManager.TEXTURE_NOTFOUND);
object.build();
object.getMesh().setVertexController(..);
object.getMesh().applyVertexController();
an empty object created with old constructor throws same exception with different index (1)
Object3D object = new Object3D(0);
hope this helps,
r a f t