Hi,
I'm experiencing a problem which I believe might be related to the new tree
structure in PojoCache (i.e., the structure that enables canonical locking). It
seems that when using optimistic locking, since attaching an object to the
PojoCache will cause a version increment on __JBossInternal__, any concurrent
transaction to one that attaches an object (even one that is seemingly
unrelated and deals with completely different objects) will fail.
Consider the following code, out of a small unit test I've created for the
purpose ("cache" was configured to use optimistic locking):
| UserTransaction tx = getTransaction();
| tx.begin();
|
| FamilyPerson father = createFamilyPerson("Rafael Gallardo", 55);
| cache.attach("/person/test1/father", father);
|
| Thread otherThread = new Thread () {
| public void run ()
| {
| FamilyPerson otherPerson = createFamilyPerson("Katherine
Brendel", 24);
| cache.attach("/other_person/test/1", otherPerson); // auto
transactional commit (optimistic locking mode)
| }
| };
|
| // Start the other thread and make sure it finishes before we commit
| otherThread.start();
| otherThread.join();
|
| tx.commit() // Fails (RollbackException)
|
What's your opinion? Is my suspicion correct? Is this a known issue (I didn't
find it in JBoss.org JIRA), or perhaps the intended behaviour?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3995316#3995316
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3995316
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user