Author: scheu Date: Mon Jul 19 15:08:47 2010 New Revision: 965526 URL: http://svn.apache.org/viewvc?rev=965526&view=rev Log: AXIS2-4708 Contributor:Rich Scheuerle Small synchronization change found while testing the AXIS2-4708 fix.
Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/MarshalServiceRuntimeDescriptionFactory.java Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/MarshalServiceRuntimeDescriptionFactory.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/MarshalServiceRuntimeDescriptionFactory.java?rev=965526&r1=965525&r2=965526&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/MarshalServiceRuntimeDescriptionFactory.java (original) +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/runtime/description/marshal/MarshalServiceRuntimeDescriptionFactory.java Mon Jul 19 15:08:47 2010 @@ -42,8 +42,18 @@ public class MarshalServiceRuntimeDescri serviceDesc.getServiceRuntimeDesc(key); if (desc == null) { - desc = MarshalServiceRuntimeDescriptionBuilder.create(serviceDesc); - serviceDesc.setServiceRuntimeDesc(desc); + // There is only one MSRD per serviceDesc. Lock + // on the serviceDesc while creating the MSRD + synchronized(serviceDesc) { + desc = + (MarshalServiceRuntimeDescription) + serviceDesc.getServiceRuntimeDesc(key); + if (desc == null) { + + desc = MarshalServiceRuntimeDescriptionBuilder.create(serviceDesc); + serviceDesc.setServiceRuntimeDesc(desc); + } + } } return desc; }