summaryrefslogtreecommitdiff
path: root/java/newclient/src/main/java/org/apache/qpid/nclient/impl/AbstractResource.java
diff options
context:
space:
mode:
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.java19
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");
+ }
+ }
}