?????????????????????JBoss?????????semphore.attempt???????????????????????????????д????ж?????????????jboss??????????????????????????????????????????????????????????semphore.release()??
try
{
boolean tryPool = retryCount < (numberOfCallRetries - 1)
|| maxPoolSize == 1
|| numberOfCallRetries == 1;
long l = System.currentTimeMillis();
socketWrapper = getConnection(marshaller?? unmarshaller?? tryPool?? timeLeft);
long d = System.currentTimeMillis() - l;
if (trace) log.trace("took " + d + " ms to get socket " + socketWrapper);
}
catch (Exception e)
{
//            if (bailOut)
//               return null;
semaphore.release();
if (trace) log.trace(this + " released semaphore: " + semaphore.permits()?? e);
sockEx =  new CannotConnectException(
"Can not get connection to server. Problem establishing " +
"socket connection for " + locator?? e);
continue;
}
?????????????????????2.2.2?汾??????bug???
????:)??????2.4???????????semphore??????????bug????????????????????????????????bug????fixed????????????Σ????bug?????????
???????bug???????jboss remoting?????????????????????????jboss remoting 2.2.2??jboss as 4.2.2????????汾??
???????????????????????semphore???????????????????????????С?????????????????????????????Щlong+Object Lock?????????????????????bug??????????????????????Щ????????????????????????????????????????Щ????????????????