Index: jbi/serviceengine/sun-javaee-engine/src/main/java/com/sun/enterprise/jbi/serviceengine/core/EndpointRegistry.java =================================================================== --- jbi/serviceengine/sun-javaee-engine/src/main/java/com/sun/enterprise/jbi/serviceengine/core/EndpointRegistry.java (revision 55254) +++ jbi/serviceengine/sun-javaee-engine/src/main/java/com/sun/enterprise/jbi/serviceengine/core/EndpointRegistry.java (working copy) @@ -90,7 +90,9 @@ Map map= (Map)endpoints.get(service); if(map == null) { map = new Hashtable(); - endpoints.put(service, map); + Map tmpMap = (Map)endpoints.putIfAbsent(service, map); + if(tmpMap != null) + map = tmpMap; } map.put(endpointName, endpoint); Index: jbi/serviceengine/sun-javaee-engine/src/main/java/com/sun/enterprise/jbi/serviceengine/bridge/transport/NMRClientConnection.java =================================================================== --- jbi/serviceengine/sun-javaee-engine/src/main/java/com/sun/enterprise/jbi/serviceengine/bridge/transport/NMRClientConnection.java (revision 55254) +++ jbi/serviceengine/sun-javaee-engine/src/main/java/com/sun/enterprise/jbi/serviceengine/bridge/transport/NMRClientConnection.java (working copy) @@ -131,7 +131,9 @@ EndpointMetaData emd = emdCache.get(key); if(emd == null) { emd = createEndpointMetaData(); - emdCache.put(key, emd); + EndpointMetaData tmpEmd = emdCache.putIfAbsent(key, emd); + if(tmpEmd != null) + emd = tmpEmd; } return emd; } Index: jbi/serviceengine/sun-javaee-engine/src/main/java/com/sun/enterprise/jbi/serviceengine/util/soap/MessageExchangeHelper.java =================================================================== --- jbi/serviceengine/sun-javaee-engine/src/main/java/com/sun/enterprise/jbi/serviceengine/util/soap/MessageExchangeHelper.java (revision 55254) +++ jbi/serviceengine/sun-javaee-engine/src/main/java/com/sun/enterprise/jbi/serviceengine/util/soap/MessageExchangeHelper.java (working copy) @@ -528,7 +528,9 @@ EndpointMetaData emd = wsdlCache.get(wsdlPath); if(emd == null) { emd = createEndpointMetaData(wsdlPath, serviceName, epName); - wsdlCache.put(wsdlPath, emd); + EndpointMetaData tmpEmd = wsdlCache.putIfAbsent(wsdlPath, emd); + if(tmpEmd != null) + emd = tmpEmd; } return emd; }