"[EMAIL PROTECTED]" wrote :
| It looks like the current WL holder and the RL requestor are not the same:
|
| | ... could not be acquired by <zzz:4256>:162303 ...
| |
| and
|
| | ... Write lock owner: Thread[ReportDataTaskRunner-20521017-1,5,jboss]
...
| |
|
Is it OK that RL requestor thread uses a GlobalTransaction, whereas WL owner
thread doesn't?
Here's the code, where a GlobalTransaction is assigned to a thread requesting a
lock (either RL or WL):
| package org.jboss.cache.interceptors;
| ...
| public class LockInterceptor extends Interceptor {
| ...
| public Object invoke(MethodCall m) throws Throwable {
| ...
| GlobalTransaction gtx=null;
| ...
| if(tx_mgr != null && (tx=tx_mgr.getTransaction()) != null &&
isValid(tx)) { // ACTIVE or PREPARING
| if(!transactions.contains(tx)) {
| gtx=cache.getCurrentTransaction(tx);
| if(gtx == null)
| throw new Exception("failed to get global transaction");
| ...
| else {
| gtx=cache.getTransactionTable().get(tx);
| }
| ...
|
Assuming that transaction manager presents, it is still unclear will a thread
receive a non-null gtx, since cache.getTransactionTable().get(tx) doesn't check
for null return value. According to metastaz's observations a thread may or may
not receive a gtx, which looks like a bug, doesn't it?
Thanks,
Alexey
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4081653#4081653
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4081653
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user