Return-Path: Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: (qmail 48152 invoked from network); 21 Feb 2011 09:54:31 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 21 Feb 2011 09:54:31 -0000 Received: (qmail 58420 invoked by uid 500); 21 Feb 2011 09:54:31 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 58303 invoked by uid 500); 21 Feb 2011 09:54:28 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 58296 invoked by uid 99); 21 Feb 2011 09:54:27 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 21 Feb 2011 09:54:27 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 21 Feb 2011 09:54:25 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 7BFFC23889EA; Mon, 21 Feb 2011 09:54:03 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1072914 - in /cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm: Destination.java RMInInterceptor.java RMProperties.java soap/RMSoapInterceptor.java Date: Mon, 21 Feb 2011 09:54:03 -0000 To: commits@cxf.apache.org From: dsosnoski@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110221095403.7BFFC23889EA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dsosnoski Date: Mon Feb 21 09:54:02 2011 New Revision: 1072914 URL: http://svn.apache.org/viewvc?rev=1072914&view=rev Log: Sychronize use of collections in WS-RM acknowledgement processing (CXF-3273) Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMInInterceptor.java cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMProperties.java cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java?rev=1072914&r1=1072913&r2=1072914&view=diff ============================================================================== --- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java (original) +++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Destination.java Mon Feb 21 09:54:02 2011 @@ -140,13 +140,14 @@ public class Destination extends Abstrac if (null == ars) { return; } - for (AckRequestedType ar : ars) { - Identifier id = ar.getIdentifier(); - DestinationSequence seq = getSequence(id); - if (null == seq) { - continue; + synchronized (ars) { + for (AckRequestedType ar : ars) { + Identifier id = ar.getIdentifier(); + DestinationSequence seq = getSequence(id); + if (null != seq) { + ackImmediately(seq, message); + } } - ackImmediately(seq, message); } } Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMInInterceptor.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMInInterceptor.java?rev=1072914&r1=1072913&r2=1072914&view=diff ============================================================================== --- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMInInterceptor.java (original) +++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMInInterceptor.java Mon Feb 21 09:54:02 2011 @@ -123,13 +123,15 @@ public class RMInInterceptor extends Abs Collection acks = rmps.getAcks(); if (null != acks) { - for (SequenceAcknowledgement ack : acks) { - Identifier id = ack.getIdentifier(); - SourceSequence ss = source.getSequence(id); - if (null != ss) { - ss.setAcknowledged(ack); - } else { - throw (new SequenceFaultFactory()).createUnknownSequenceFault(id); + synchronized (acks) { + for (SequenceAcknowledgement ack : acks) { + Identifier id = ack.getIdentifier(); + SourceSequence ss = source.getSequence(id); + if (null != ss) { + ss.setAcknowledged(ack); + } else { + throw (new SequenceFaultFactory()).createUnknownSequenceFault(id); + } } } } Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMProperties.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMProperties.java?rev=1072914&r1=1072913&r2=1072914&view=diff ============================================================================== --- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMProperties.java (original) +++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMProperties.java Mon Feb 21 09:54:02 2011 @@ -40,11 +40,15 @@ public class RMProperties { } public void setAcks(Collection a) { - acks = a; + synchronized (a) { + acks = a; + } } public void setAcksRequested(Collection ar) { - acksRequested = ar; + synchronized (ar) { + acksRequested = ar; + } } public void setSequence(SequenceType s) { @@ -65,9 +69,11 @@ public class RMProperties { if (null == acks) { acks = new ArrayList(); } - SequenceAcknowledgement ack = seq.getAcknowledgment(); - acks.add(ack); - seq.acknowledgmentSent(); + synchronized (acks) { + SequenceAcknowledgement ack = seq.getAcknowledgment(); + acks.add(ack); + seq.acknowledgmentSent(); + } } } Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java?rev=1072914&r1=1072913&r2=1072914&view=diff ============================================================================== --- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java (original) +++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java Mon Feb 21 09:54:02 2011 @@ -202,22 +202,26 @@ public class RMSoapInterceptor extends A } Collection acks = rmps.getAcks(); if (null != acks) { - for (SequenceAcknowledgement ack : acks) { - encodeProperty(ack, - RMConstants.getSequenceAckQName(), - SequenceAcknowledgement.class, - hdr, - marshaller); + synchronized (acks) { + for (SequenceAcknowledgement ack : acks) { + encodeProperty(ack, + RMConstants.getSequenceAckQName(), + SequenceAcknowledgement.class, + hdr, + marshaller); + } } } Collection requested = rmps.getAcksRequested(); if (null != requested) { - for (AckRequestedType ar : requested) { - encodeProperty(ar, - RMConstants.getAckRequestedQName(), - AckRequestedType.class, - hdr, - marshaller); + synchronized (requested) { + for (AckRequestedType ar : requested) { + encodeProperty(ar, + RMConstants.getAckRequestedQName(), + AckRequestedType.class, + hdr, + marshaller); + } } } Node node = hdr.getFirstChild();