try
{
Object rtn = result.get(milliseconds, TimeUnit.MILLISECONDS);
release();
return rtn;
}
catch (ExecutionException e)
{
release();
throw new InvocationTargetException(e.getCause());
}
catch (java.util.concurrent.TimeoutException e)
{
throw new org.jboss.aspects.asynch.TimeoutException(e);
}