Author: veithen Date: Sun Dec 5 20:52:39 2010 New Revision: 1042442 URL: http://svn.apache.org/viewvc?rev=1042442&view=rev Log: AXIS2-4819: Removed the static fields from DataLocatorFactory and create a new AxisDataLocator instance each time. Reason: AxisDataLocator implementations are stateful and therefore not thread safe.
Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/dataretrieval/DataLocatorFactory.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/dataretrieval/DataLocatorFactory.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/dataretrieval/DataLocatorFactory.java?rev=1042442&r1=1042441&r2=1042442&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/dataretrieval/DataLocatorFactory.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/dataretrieval/DataLocatorFactory.java Sun Dec 5 20:52:39 2010 @@ -25,10 +25,6 @@ package org.apache.axis2.dataretrieval; */ public class DataLocatorFactory { - private static org.apache.axis2.dataretrieval.WSDLDataLocator wsdlDataLocator = null; - private static org.apache.axis2.dataretrieval.PolicyDataLocator policyDataLocator = null; - private static org.apache.axis2.dataretrieval.SchemaDataLocator schemaDataLocator = null; - /* * Return instance of default Data Locator for the dialect. */ @@ -38,37 +34,14 @@ public class DataLocatorFactory { public static AxisDataLocator createDataLocator(String dialect, ServiceData[] serviceDataArray) { - AxisDataLocator dataLocator; - if (dialect.equals(DRConstants.SPEC.DIALECT_TYPE_WSDL)) { - dataLocator = getWsdlDataLocator(serviceDataArray); + return new WSDLDataLocator(serviceDataArray); } else if (dialect.trim().equals(DRConstants.SPEC.DIALECT_TYPE_POLICY)) { - if (policyDataLocator == null) { - dataLocator = new PolicyDataLocator(serviceDataArray); - } else { - dataLocator = policyDataLocator; - } + return new PolicyDataLocator(serviceDataArray); } else if (dialect.equals(DRConstants.SPEC.DIALECT_TYPE_SCHEMA)) { - if (schemaDataLocator == null) { - dataLocator = new SchemaDataLocator(serviceDataArray); - } else { - dataLocator = schemaDataLocator; - } + return new SchemaDataLocator(serviceDataArray); } else { - dataLocator = null; + return null; } - return dataLocator; } - - protected static AxisDataLocator getWsdlDataLocator(ServiceData[] serviceDataArray) { - - if (wsdlDataLocator == null) { - wsdlDataLocator = new org.apache.axis2.dataretrieval.WSDLDataLocator(serviceDataArray); - } else { - wsdlDataLocator.setServiceData(serviceDataArray); - } - return wsdlDataLocator; - } - - }