@Test
    public void testIssue970() throws IOException {
        // throws are added so that we don't have to catch them just to assert them again.
        // If they throw, the Unit Test should fail
        CollisionShape shape = new SphereCollisionShape(1f);
        RigidBodyControl rbc = new RigidBodyControl(shape, 1f);
        rbc.setAngularVelocity(new Vector3f(0.04f, 0.05f, 0.06f));
        rbc.setLinearVelocity(new Vector3f(0.26f, 0.27f, 0.28f));

        Assert.assertEquals(new Vector3f(0.04f, 0.05f, 0.06f), rbc.getAngularVelocity());
        Assert.assertEquals(new Vector3f(0.26f, 0.27f, 0.28f), rbc.getLinearVelocity());

        // Write/Serialize the RBC
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        JmeExporter exporter = BinaryExporter.getInstance();
        exporter.save(rbc, baos);

        // Load/Deserialize the RBC
        JmeImporter importer = BinaryImporter.getInstance();
        RigidBodyControl rbcCopy = (RigidBodyControl)importer.load(new AssetInfo(null, null) {
            @Override
            public InputStream openStream() {
                return new ByteArrayInputStream(baos.toByteArray());
            }
        });

        Assert.assertNotNull(rbcCopy);
        Assert.assertEquals(new Vector3f(0.04f, 0.05f, 0.06f), rbcCopy.getAngularVelocity());
        Assert.assertEquals(new Vector3f(0.26f, 0.27f, 0.28f), rbcCopy.getLinearVelocity());
    }
Test case for JME issue #970: RigidBodyControl doesn't read/write velocities.
Clone a body that implements Control by saving and then loading it.
jme3-jbullet/src/test/java/com/jme3/jbullet/test/PreventBulletIssueRegressions.java