Manik Surtani wrote:
On 2 Apr 2008, at 16:20, Brian Stansberry wrote:
> Manik Surtani wrote:
>
>>> < SNIP />
>>>
>>>>> ......
>>>>> org
>>>>> .jboss
>>>>> .cache
>>>>> .invocation
>>>>> .CacheInvocationDelegate.put(CacheInvocationDelegate.java:488)
>>>>> What's going on here is fetchWorkspaceNode() is walking up the
>>>>> tree from
>>>>> /TS/test/org/hibernate/cache/UpdateTimestampsCache/Accounts to
>>>>> Fqn.ROOT, calling lockAndCreateWorkspaceNode() on each Fqn. When
>>>>> it gets to Fqn.ROOT it fails. This is because
>>>>> lockAndCreateWorkspaceNode() wants a write lock on the target node
>>>>> before making the workspace copy. In this case the WL can't be
>>>>> obtained, because a RL is held by the suspended tx.
>>>>> Does lockAndCreateWorkspaceNode() need a write lock here?
>>>
>>> Probably not. I'm guessing it could do with a RL instead, let me
>>> investigate.
>> Ok, this is only called when a node exists in the tree and it needs
>> to be added to the workspace. In this case, we should only attempt
>> to acquire a read lock, not a write lock. The write locks are
>> acquired on nodes marked as dirty when a transaction commits.
>> This fix is in svn (trunk and 2.1.X) and your tests - along with
>> other optimistic locking tests - pass. I'm waiting for a full Hudson
>> test suite run.
>
> Excellent; thanks for the quick turn. If all looks well can you deploy
> another 2.1.1-SNAPSHOT?. I'll rerun the Hibernate tests with it.
Done.
Ran clean. :-)
Would it irk you terribly if I ported
http://jira.jboss.com/jira/browse/JBCACHE-1218 to 2.1.X in the morning?
Configuring an AS CacheManager via a -beans.xml is quite ugly compared
to the native JBC format. You have to uniquely name every pojo in the
each config, which is painful when you have 7 or 8 different configs. MC
has an open JIRA to support anonymous beans, but not sure if/when it
will get done.
I know it's late to put this in, so I won't be at all bothered if you
say no. :)
--
Brian Stansberry
Lead, AS Clustering
JBoss, a division of Red Hat
brian.stansberry(a)redhat.com