You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2008/11/06 13:21:44 UTC

svn commit: r711848 - in /incubator/qpid/trunk/qpid/java: client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java common/src/main/java/org/apache/qpid/AMQException.java common/src/test/java/org/apache/qpid/AMQExceptionTest.java

Author: ritchiem
Date: Thu Nov  6 04:21:37 2008
New Revision: 711848

URL: http://svn.apache.org/viewvc?rev=711848&view=rev
Log:
QPID-1434 : Changed rethrow() name based on feedback from Rob

Modified:
    incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
    incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQException.java
    incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java

Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java?rev=711848&r1=711847&r2=711848&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java Thu Nov  6 04:21:37 2008
@@ -673,7 +673,7 @@
                         {
                             AMQException amqe = (AMQException) e;
 
-                            amqe.rethrow();
+                            throw amqe.cloneForCurrentThread();
                         }
                         else
                         {

Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQException.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQException.java?rev=711848&r1=711847&r2=711848&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQException.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/AMQException.java Thu Nov  6 04:21:37 2008
@@ -98,10 +98,9 @@
      * {AMQConstant.class, String.class, Throwable.class}
      *
      * Individual subclasses may override as requried to create a new instance.
-     *
-     * @throws AMQException
+     * 
      */
-    public void rethrow() throws AMQException
+    public AMQException cloneForCurrentThread()
     {
         Class amqeClass = this.getClass();
         Class<?>[] paramClasses = {AMQConstant.class, String.class, Throwable.class};
@@ -118,6 +117,6 @@
             newAMQE = new AMQException(getErrorCode(), getMessage(), this);
         }
 
-        throw newAMQE;
+        return newAMQE;
     }
 }

Modified: incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java?rev=711848&r1=711847&r2=711848&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpid/AMQExceptionTest.java Thu Nov  6 04:21:37 2008
@@ -42,14 +42,10 @@
     {
         AMQException test = new AMQException(AMQConstant.ACCESS_REFUSED, "refused", new RuntimeException());
 
-        try
-        {
-            reThrowException(test);
-        }
-        catch (AMQException e)
-        {
-            assertEquals("Exception not of correct class", AMQException.class, e.getClass());
-        }
+        AMQException e = reThrowException(test);
+
+        assertEquals("Exception not of correct class", AMQException.class, e.getClass());
+
     }
 
     /**
@@ -60,14 +56,9 @@
         AMQFrameDecodingException test = new AMQFrameDecodingException(AMQConstant.INTERNAL_ERROR,
                                                                        "Error",
                                                                        new Exception());
-        try
-        {
-            reThrowException(test);
-        }
-        catch (AMQException e)
-        {
-            assertEquals("Exception not of correct class", AMQFrameDecodingException.class, e.getClass());
-        }
+        AMQException e = reThrowException(test);
+
+        assertEquals("Exception not of correct class", AMQFrameDecodingException.class, e.getClass());
     }
 
     /**
@@ -77,14 +68,10 @@
     public void testRethrowAMQESubclassNoConstructor()
     {
         AMQExceptionSubclass test = new AMQExceptionSubclass("Invalid Argument Exception");
-        try
-        {
-            reThrowException(test);
-        }
-        catch (AMQException e)
-        {
-            assertEquals("Exception not of correct class", AMQException.class, e.getClass());
-        }
+
+        AMQException e = reThrowException(test);
+
+        assertEquals("Exception not of correct class", AMQException.class, e.getClass());
     }
 
     /**
@@ -92,25 +79,16 @@
      * @param test Exception to rethrow
      * @throws AMQException the rethrown exception
      */
-    private void reThrowException(AMQException test) throws AMQException
+    private AMQException reThrowException(AMQException test)
     {
-        try
-        {
-            test.rethrow();
-        }
-        catch (AMQException amqe)
-        {
-            assertEquals("Error code does not match.", test.getErrorCode(), amqe.getErrorCode());
-            assertTrue("Exception message does not start as expected.", amqe.getMessage().startsWith(test.getMessage()));
-            assertEquals("Test Exception is not set as the cause", test, amqe.getCause());
-            assertEquals("Cause is not correct", test.getCause(), amqe.getCause().getCause());
-            throw amqe;
-        }
-        catch (Throwable e)
-        {
-            fail("Throwable recieved when AMQException expected:" + e);
-        }
+        AMQException amqe = test.cloneForCurrentThread();
+
+        assertEquals("Error code does not match.", test.getErrorCode(), amqe.getErrorCode());
+        assertTrue("Exception message does not start as expected.", amqe.getMessage().startsWith(test.getMessage()));
+        assertEquals("Test Exception is not set as the cause", test, amqe.getCause());
+        assertEquals("Cause is not correct", test.getCause(), amqe.getCause().getCause());
 
+        return amqe;
     }
 
     /**