[infinispan-dev] findbugs found issue

Mircea Markus mircea.markus at jboss.com
Thu Sep 3 04:55:37 EDT 2009


Hi,

findbugs detects a problem in the following code:

    public void clear() {
       // This is expensive...
       // lock all segments
       for (Segment s : segments) s.lock();
       try {
          for (Segment s : segments) s.locklessClear();
          initLinks();
       } finally {
          for (Segment s : segments) s.unlock();
       }
    }


the general description of the issue is:
        Method does not release lock on all paths

This method acquires a JSR-166 (java.util.concurrent) lock, but does  
not release it on all paths out of the method. In general, the correct  
idiom for using a JSR-166 lock is:

     Lock l = ...;
     l.lock();
     try {
         // do something
     } finally {
         l.unlock();
     }

In my eyes the code is okay, am I missing something?

Cheers,
Mircea
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20090903/3ac772cd/attachment-0002.html 


More information about the infinispan-dev mailing list