diff options
Diffstat (limited to 'java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java')
-rw-r--r-- | java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java b/java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java index d202bab843..d0a4ab79a5 100644 --- a/java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java +++ b/java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java @@ -12,6 +12,7 @@ import org.apache.qpid.nclient.core.AMQPException; public abstract class AbstractResource { private String _resourceName; + private boolean _closed = true; public AbstractResource(String resourceName) { @@ -20,12 +21,13 @@ public abstract class AbstractResource public void open() throws QpidException { + _closed = false; try { openResource(); } - catch(AMQPException e) + catch(Exception e) { throw new QpidException("Error creating " + _resourceName + " due to " + e.getMessage(),e); } @@ -33,7 +35,8 @@ public abstract class AbstractResource public void close() throws QpidException { - try + _closed = true; + try { closeResource(); @@ -45,7 +48,15 @@ public abstract class AbstractResource } - protected abstract void openResource() throws AMQPException; + protected abstract void openResource() throws AMQPException, QpidException; - protected abstract void closeResource() throws AMQPException; + protected abstract void closeResource() throws AMQPException, QpidException; + + public void checkClosed() throws QpidException + { + if(_closed) + { + throw new QpidException("The resource you are trying to access is closed"); + } + } } |