Author: ay
Date: Wed Dec 5 17:08:00 2012
New Revision: 1417531
URL: http://svn.apache.org/viewvc?rev=1417531&view=rev
Log:
[CXF-4678] ConcurrentModificationException from WS-RM's RMOutInterceptor's ack
updates
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/Source.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=1417531&r1=1417530&r2=1417531&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 Wed
Dec 5 17:08:00 2012
@@ -21,8 +21,8 @@ package org.apache.cxf.ws.rm;
import java.io.IOException;
import java.util.Collection;
-import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -48,7 +48,7 @@ public class Destination extends Abstrac
Destination(RMEndpoint reliableEndpoint) {
super(reliableEndpoint);
- map = new HashMap<String, DestinationSequence>();
+ map = new ConcurrentHashMap<String, DestinationSequence>();
}
public DestinationSequence getSequence(Identifier id) {
@@ -65,9 +65,7 @@ public class Destination extends Abstrac
public void addSequence(DestinationSequence seq, boolean persist) {
seq.setDestination(this);
- synchronized (map) {
- map.put(seq.getIdentifier().getValue(), seq);
- }
+ map.put(seq.getIdentifier().getValue(), seq);
if (persist) {
RMStore store = getReliableEndpoint().getManager().getStore();
if (null != store) {
@@ -79,9 +77,7 @@ public class Destination extends Abstrac
public void removeSequence(DestinationSequence seq) {
DestinationSequence o;
- synchronized (map) {
- o = map.remove(seq.getIdentifier().getValue());
- }
+ o = map.remove(seq.getIdentifier().getValue());
RMStore store = getReliableEndpoint().getManager().getStore();
if (null != store) {
store.removeDestinationSequence(seq.getIdentifier());
Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Source.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Source.java?rev=1417531&r1=1417530&r2=1417531&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Source.java (original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/Source.java Wed Dec
5 17:08:00 2012
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@@ -43,7 +44,7 @@ public class Source extends AbstractEndp
Source(RMEndpoint reliableEndpoint) {
super(reliableEndpoint);
- map = new HashMap<String, SourceSequence>();
+ map = new ConcurrentHashMap<String, SourceSequence>();
current = new HashMap<String, SourceSequence>();
sequenceCreationLock = new ReentrantLock();
@@ -64,9 +65,7 @@ public class Source extends AbstractEndp
public void addSequence(SourceSequence seq, boolean persist) {
seq.setSource(this);
- synchronized (map) {
- map.put(seq.getIdentifier().getValue(), seq);
- }
+ map.put(seq.getIdentifier().getValue(), seq);
if (persist) {
RMStore store = getReliableEndpoint().getManager().getStore();
if (null != store) {
@@ -78,9 +77,7 @@ public class Source extends AbstractEndp
public void removeSequence(SourceSequence seq) {
SourceSequence o;
- synchronized (map) {
- o = map.remove(seq.getIdentifier().getValue());
- }
+ o = map.remove(seq.getIdentifier().getValue());
RMStore store = getReliableEndpoint().getManager().getStore();
if (null != store) {
store.removeSourceSequence(seq.getIdentifier());