Я делаю так, чтобы по нажатию на экран некоторое тело разделялось на два тела. По нажатию на экран вызывается некоторая функция divide(), в которой я произвожу необходимые мне манипуляции с частицами, в том числе изменение массы, которое выглядит следующим образом:
...
MassData newMassData=new MassData();
newMassData.mass=this.body.getMass()-mass;// mass-это масса второго тела, которое отделяется от главного
this.body.setMassData(newMassData);
...
В строчке
this.body.setMassData(newMassData);
ИНОГДА происходит ошибка из-за которой происходит завершение работы Java Platform SE binary. В логах пишется следующее:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Assertion failed!
Program: C:\Program Files\Java\jdk1.8.0_05\bin\java.exe
File: /var/lib/jenkins/workspace/libgdx/extensions/gdx-box2d/gdx-box2d/jni/Box2D/Dynamics/b2Body.cpp, Line 355
Expression: m_world->IsLocked() == false
Было бы интересно хотя бы узнать, что это обозначает и почему приложение падает иногда. А самое главное, хотелось бы узнать, как грамотно реализовать разделение тела на две части и изменение массы тела.
P.S. Приложение падает именно в этой строчке и никак иначе, т.к. приложение может упасть только при наличии этой строчки кода.