Let's see....
java -Dorg.deuce.verbose=true -
Dorg.deuce.exclude="java.util.Hashtable,java.lang.System,java.lang.Object"
-jar deuceAgent-1.3.0.jar rt-original.jar rt.jar
java -Xbootclasspath/p:rt.jar -Dorg.deuce.verbose=true -
javaagent:deuceAgent-1.3.0.jar -cp bin/ deucetest/DeuceTest
Error occurred during initialization of VM
java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:394)
at java.lang.System.initProperties(Native Method)
at java.lang.System.initializeSystemClass(System.java:1070)
The test is being compiled by Eclipse, if that matters.
The problem domain that I'm hoping to use Deuce for involves running
semi-trusted code server-side via rhino and/or a securitymanager. In
addition to gaining all the concurrency benefits of STM, I hope to be
able to roll back the application state if these semi-trusted scripts
throw unexpected exceptions and such. Therefore, if instrumenting the
runtime libraries is too problematic, I suppose I /could/ require that
these bits of semi-trusted code only use special collection and
utility classes that get loaded by something other than the boot
classloader... But that seems like kind of a roundabout and less
robust way of doing things, and would limit the amount of preexisting
code that could be used within the application. :3