[jboss-jira] [JBoss JIRA] (JBMESSAGING-1954) MessagePostOffice.routeInternal() method may fail to release the readlock

Yong Hao Gao (JIRA) issues at jboss.org
Thu Jul 24 11:17:30 EDT 2014


     [ https://issues.jboss.org/browse/JBMESSAGING-1954?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yong Hao Gao closed JBMESSAGING-1954.
-------------------------------------

    Resolution: Done


revision 8631

> MessagePostOffice.routeInternal() method may fail to release the readlock
> -------------------------------------------------------------------------
>
>                 Key: JBMESSAGING-1954
>                 URL: https://issues.jboss.org/browse/JBMESSAGING-1954
>             Project: JBoss Messaging
>          Issue Type: Bug
>          Components: Messaging Core
>    Affects Versions: 1.4.8.SP11
>            Reporter: Yong Hao Gao
>            Assignee: Yong Hao Gao
>             Fix For: 1.4.8.SP12
>
>
> This method first grabs the read lock and then release it in the finally block. However some statements are outside the try{}finally block so there is a chance the lock will never be released. The code is something like:
>    private RouteResult routeInternal(...) throws Exception
>    {
>       //get the read lock
>       lock.readLock().acquire();
>       ...
>       //check inactive condition
>       if (inactiveConditions.contains(condition))
>       {
>          //look if this happens the readlock will NEVER be released!!!!
>          throw new IllegalStateException("Destination " + condition + " not active!");
>       }
>       
>       try
>       {
>          //do somework
>          ......
>       }
>       finally
>       {
>          //release lock here
>          lock.readLock().release();
>       }
> Once it happens, it will block any attempts to get the write lock, and also block any further attempts to get read lock. Make those threads blocking forever.



--
This message was sent by Atlassian JIRA
(v6.2.6#6264)


More information about the jboss-jira mailing list