in tx-control-providers/tx-control-provider-common/src/main/java/org/apache/aries/tx/control/resource/common/impl/TrackingResourceProviderFactory.java [39:69]
protected T doGetResult(Callable<T> getter) {
synchronized (getter) {
if (closed) {
throw new IllegalStateException("This ResourceProvider has been reclaimed because the factory service that provided it was released");
}
}
T t;
try {
t = getter.call();
} catch (Exception e) {
LOG.warn("A failure occurred obtaining the resource provider", e);
throw new ServiceException("A failure occurred obtaining the resource provider", e);
}
boolean destroy = false;
synchronized (toClose) {
if (closed) {
destroy = true;
} else {
toClose.add(t);
}
}
if(destroy) {
try {
t.close();
} catch (Exception e) {
LOG.warn("A failure occurred closing the resource provider", e);
}
throw new IllegalStateException("This ResourceProvider has been reclaimed because the factory service that provided it was released");
}
return t;
}