You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jakarta.apache.org by se...@apache.org on 2010/04/26 15:09:10 UTC

svn commit: r938030 - /jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java

Author: sebb
Date: Mon Apr 26 13:09:10 2010
New Revision: 938030

URL: http://svn.apache.org/viewvc?rev=938030&view=rev
Log:
Better handling of errors

Modified:
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java?rev=938030&r1=938029&r2=938030&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/JMSSampler.java Mon Apr 26 13:09:10 2010
@@ -121,6 +121,8 @@ public class JMSSampler extends Abstract
 
     private transient Receiver receiverThread = null;
 
+    private transient Throwable thrown = null;
+
     /**
      * {@inheritDoc}
      */
@@ -146,21 +148,23 @@ public class JMSSampler extends Abstract
                 Message replyMsg = executor.sendAndReceive(msg);
                 if (replyMsg == null) {
                     res.setSuccessful(false);
-                    if (LOGGER.isDebugEnabled()) {
-                        LOGGER.debug("No reply message received");
-                    }
+                    res.setResponseMessage("No reply message received");
                 } else {
                     if (replyMsg instanceof TextMessage) {
                         res.setResponseData(((TextMessage) replyMsg).getText(), null);
                     } else {
                         res.setResponseData(replyMsg.toString(), null);
                     }
-                    res.setSuccessful(true);
+                    res.setResponseOK();
                 }
             }
         } catch (Exception e) {
             LOGGER.warn(e.getLocalizedMessage(), e);
-            res.setResponseData(new byte[0]);
+            if (thrown != null){
+                res.setResponseMessage(thrown.toString());
+            } else {                
+                res.setResponseMessage(e.getLocalizedMessage());
+            }
             res.setSuccessful(false);
         }
         res.sampleEnd();
@@ -290,6 +294,7 @@ public class JMSSampler extends Abstract
         logThreadStart();
 
         Context context = null;
+        thrown = null;
         try {
             context = getInitialContext();
             Object obj = context.lookup(getQueueConnectionFactory());
@@ -352,10 +357,12 @@ public class JMSSampler extends Abstract
             if (LOGGER.isDebugEnabled()) {
                 LOGGER.debug("Connection started");
             }
-        } catch (JMSException e) {
-            LOGGER.warn(e.getLocalizedMessage(), e);
-        } catch (NamingException e) {
-            LOGGER.warn(e.getLocalizedMessage(), e);
+        } catch (Exception e) {
+            thrown = e;
+            LOGGER.error(e.getLocalizedMessage(), e);
+        } catch (NoClassDefFoundError e) {
+            thrown = e;
+            LOGGER.error(e.getLocalizedMessage(), e);
         } finally {
             if (context != null) {
                 try {