You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2010/02/17 16:34:24 UTC

svn commit: r911021 - /jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java

Author: sebb
Date: Wed Feb 17 15:34:24 2010
New Revision: 911021

URL: http://svn.apache.org/viewvc?rev=911021&view=rev
Log:
Initial implementation of interruptible

Modified:
    jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java

Modified: jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java?rev=911021&r1=911020&r2=911021&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java Wed Feb 17 15:34:24 2010
@@ -39,6 +39,7 @@
 import org.apache.commons.io.IOUtils;
 import org.apache.jmeter.samplers.AbstractSampler;
 import org.apache.jmeter.samplers.Entry;
+import org.apache.jmeter.samplers.Interruptible;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.testelement.property.BooleanProperty;
 import org.apache.jmeter.testelement.property.IntegerProperty;
@@ -49,7 +50,7 @@
 /**
  * Sampler that can read from POP3 and IMAP mail servers
  */
-public class MailReaderSampler extends AbstractSampler {
+public class MailReaderSampler extends AbstractSampler implements Interruptible {
     private static final Logger log = LoggingManager.getLoggerForClass();
 
     private static final long serialVersionUID = 240L;
@@ -75,6 +76,8 @@
     
     public static final int ALL_MESSAGES = -1; // special value
 
+    private volatile boolean busy;
+
     public MailReaderSampler() {
         setServerType(TYPE_POP3);
         setFolder("INBOX");
@@ -134,7 +137,8 @@
 
             parent.setSampleCount(n); // TODO is this sensible?
             
-            for (int i = 0; i < n; i++) {
+            busy = true;
+            for (int i = 0; busy && i < n; i++) {
                 StringBuilder cdata = new StringBuilder();
                 SampleResult child = new SampleResult();
                 child.sampleStart();
@@ -205,6 +209,8 @@
             log.debug("", ex);// No need to log normally, as we set the status
             parent.setResponseCode("500"); // $NON-NLS-1$
             parent.setResponseMessage(ex.toString());
+        } finally {
+            busy = false;
         }
 
         if (parent.getEndTime()==0){// not been set by any child samples
@@ -462,4 +468,13 @@
         sb.append("]");
         return sb.toString();
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    public boolean interrupt() {
+        boolean wasbusy = busy;
+        busy = false;
+        return wasbusy;
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org