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