J'essaie de rétablir l'état des objets sur les exceptions. Mon code est comme ::transactions utilisant deuce stm
public class DeuceTXTest
{
@Atomic
public void myTransactionMethod(HashMap<String, String> myHashMap)
{
myHashMap.put("s2", "two");
if(8>5)
throw new NullPointerException();
}
public static void main(String[] args){
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("s1", "one");
System.out.println("Prior TX :: "+hashMap);
DeuceTXTest txTest = new DeuceTXTest();
try {
txTest.myTransactionMethod(hashMap);
} catch (Exception e) {
System.out.println(e);
}
System.out.println("Post TX :: "+hashMap);
}
}
I ajouté -javaagent:myDir/deuceAgent.jar
comme VMArgument en cours d'exécution sur Eclipse.
Résultat escompté ::
Prior TX :: {s1=one}
java.lang.RuntimeException
Post TX :: {s1=one}
Résultat réel ::
Prior TX :: {s1=one}
java.lang.RuntimeException
Post TX :: {s2=two, s1=one}.
Aussi, s'il vous plaît me suggérer de meilleurs exemples sur deuce pour revenir/restaurer l'état d'objet sur rollback transaction ou lors exception est levée.
Utilisez 4 tirets pour formater votre code source. –