User: dmaplesden Date: 01/10/22 13:39:06 Modified: src/main/org/jboss/mq Tag: Branch_2_4 SpyMessageConsumer.java Log: Backport bug fix for race condition to 2.4 branch Revision Changes Path No revision No revision 1.7.2.2 +21 -19 jbossmq/src/main/org/jboss/mq/SpyMessageConsumer.java Index: SpyMessageConsumer.java =================================================================== RCS file: /cvsroot/jboss/jbossmq/src/main/org/jboss/mq/SpyMessageConsumer.java,v retrieving revision 1.7.2.1 retrieving revision 1.7.2.2 diff -u -r1.7.2.1 -r1.7.2.2 --- SpyMessageConsumer.java 2001/08/23 03:57:08 1.7.2.1 +++ SpyMessageConsumer.java 2001/10/22 20:39:06 1.7.2.2 @@ -25,7 +25,7 @@ * @author Hiram Chirino ([EMAIL PROTECTED]) * @author David Maplesden ([EMAIL PROTECTED]) * @created August 16, 2001 - * @version $Revision: 1.7.2.1 $ + * @version $Revision: 1.7.2.2 $ */ public class SpyMessageConsumer implements MessageConsumer, SpyConsumer, Runnable { @@ -129,18 +129,19 @@ receiving = true; } - SpyMessage msg = session.connection.receive( subscription, 0 ); - if ( msg != null ) { - Message mes = preProcessMessage( msg ); - if ( mes != null ) { - synchronized ( stateLock ) { - receiving = false; + synchronized ( messages ) { + + SpyMessage msg = session.connection.receive( subscription, 0 ); + if ( msg != null ) { + Message mes = preProcessMessage( msg ); + if ( mes != null ) { + synchronized ( stateLock ) { + receiving = false; + } + return mes; } - return mes; } - } - synchronized ( messages ) { try { waitingForMessage = true; while ( true ) { @@ -190,18 +191,19 @@ long endTime = System.currentTimeMillis() + timeOut; - SpyMessage msg = session.connection.receive( subscription, timeOut ); - if ( msg != null ) { - Message mes = preProcessMessage( msg ); - if ( mes != null ) { - synchronized ( stateLock ) { - receiving = false; + synchronized ( messages ) { + + SpyMessage msg = session.connection.receive( subscription, timeOut ); + if ( msg != null ) { + Message mes = preProcessMessage( msg ); + if ( mes != null ) { + synchronized ( stateLock ) { + receiving = false; + } + return mes; } - return mes; } - } - synchronized ( messages ) { try { waitingForMessage = true; while ( true ) {
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development