Gabriel,
OTAP must set up the "userware/autostart/appname" to the .jar name of your new application, then it reboots in any case (successful or not).
If your device start the program automatically after power-up, then no problem should be with OTAP.
Make sure your class don't reboot the device by itself, because OTAP procedure should be able to close the java program by calling destroyApp() method and then reboot the device into OTAP mode. destroyApp() also should not reboot device by itself, in other case OTAP will not continue.