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-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org