|
Hi all, I'm trying to verify transactions behavior, and what I see is that commit() method never throws a JDOCanRetryException as explained in doc when the same entity group has being modified concurrently. I always get a JDOException caused by ConcurrentModificationException. My question is: Is this pattern incorrect?? ------------------------------------- for (int i = 0; i < NUM_RETRIES; i++) { pm.currentTransaction().begin(); ClubMembers members = pm.getObjectById(ClubMembers.class, "k12345"); members.incrementCounterBy(1); try { pm.currentTransaction().commit(); break; } catch (JDOCanRetryException ex) { if (i == (NUM_RETRIES - 1)) { throw ex; } } } ------------------------- should it be modified this way?? ------------------------------------- for (int i = 0; i < NUM_RETRIES; i++) { pm.currentTransaction().begin(); ClubMembers members = pm.getObjectById(ClubMembers.class, "k12345"); members.incrementCounterBy(1); try { pm.currentTransaction().commit(); break; } catch (JDOException ex) { if (!(ex.getCause() instanceof ConcurrentModificationException ) || i == (NUM_RETRIES - 1) { throw ex; } } } ------------------------- Please let me know Thanks --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~----------~----~----~----~------~----~------~--~--- |
- [appengine-java] Question on transactions Patrizio Munzi
