"[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

Reply via email to