Return-Path: Delivered-To: apmail-ws-sandesha-dev-archive@www.apache.org Received: (qmail 65261 invoked from network); 3 Oct 2007 09:50:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 3 Oct 2007 09:50:41 -0000 Received: (qmail 1131 invoked by uid 500); 3 Oct 2007 09:50:30 -0000 Delivered-To: apmail-ws-sandesha-dev-archive@ws.apache.org Received: (qmail 903 invoked by uid 500); 3 Oct 2007 09:50:29 -0000 Mailing-List: contact sandesha-dev-help@ws.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list sandesha-dev@ws.apache.org Received: (qmail 885 invoked by uid 500); 3 Oct 2007 09:50:29 -0000 Delivered-To: apmail-ws-sandesha-cvs@ws.apache.org Received: (qmail 882 invoked by uid 99); 3 Oct 2007 09:50:29 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Oct 2007 02:50:29 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Oct 2007 09:50:39 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 79D8B1A9832; Wed, 3 Oct 2007 02:50:19 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r581547 - /webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SandeshaThread.java Date: Wed, 03 Oct 2007 09:50:19 -0000 To: sandesha-cvs@ws.apache.org From: gatfora@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071003095019.79D8B1A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: gatfora Date: Wed Oct 3 02:50:18 2007 New Revision: 581547 URL: http://svn.apache.org/viewvc?rev=581547&view=rev Log: Close timing window when stopping SandeshaThreads and another thread requesting that it starts. Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SandeshaThread.java Modified: webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SandeshaThread.java URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SandeshaThread.java?rev=581547&r1=581546&r2=581547&view=diff ============================================================================== --- webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SandeshaThread.java (original) +++ webservices/sandesha/trunk/java/modules/core/src/main/java/org/apache/sandesha2/workers/SandeshaThread.java Wed Oct 3 02:50:18 2007 @@ -41,6 +41,7 @@ private boolean hasStoppedRunning = false; private boolean hasPausedRunning = false; private boolean pauseRequired = false; + private boolean stopRequested = false; private int sleepTime; private WorkerLock lock = null; @@ -88,8 +89,8 @@ } } - //we can now request a pause - the next pause will be ours - pauseRequired = true; + //we can now request a pause - the next pause will be our + pauseRequired = true; if(hasStoppedRunning() || !isThreadStarted()){ throw new IllegalStateException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotPauseThread)); @@ -121,6 +122,7 @@ if (isThreadStarted()) { // the invoker is started so stop it runThread = false; + stopRequested = true; // wait for it to finish while (!hasStoppedRunning()) { try { @@ -129,12 +131,14 @@ //ignore } } + + stopRequested = false; } - // In a unit test, tracing 'this' once the thread was stopped caused - // an exception, so we just trace exit. - if (log.isDebugEnabled()) - log.debug("Exit: SandeshaThread::stopRunning"); + // In a unit test, tracing 'this' once the thread was stopped caused + // an exception, so we just trace exit. + if (log.isDebugEnabled()) + log.debug("Exit: SandeshaThread::stopRunning"); } public synchronized boolean isThreadStarted() { @@ -158,7 +162,7 @@ SequenceEntry entry = new SequenceEntry(sequenceID, rmSource); if (!workingSequences.contains(entry)) workingSequences.add(entry); - if (!isThreadStarted()) { + if (!isThreadStarted() && !stopRequested) { if(log.isDebugEnabled()) log.debug("Starting thread"); this.context = context; @@ -183,7 +187,9 @@ log.error(e); throw new RuntimeException(e); } - } else { + + + } else if (!stopRequested){ if(log.isDebugEnabled()) log.debug("Waking thread"); wakeThread(); } --------------------------------------------------------------------- To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org For additional commands, e-mail: sandesha-dev-help@ws.apache.org