Author: veithen
Date: Sat Aug 13 19:45:07 2011
New Revision: 1157415
URL: http://svn.apache.org/viewvc?rev=1157415&view=rev
Log:
AXIS2-5115: Make sure that EndpointInterfaceDescriptionImpl and
OperationDescriptionImpl discards all previously cached information when the
SEI is set.
Modified:
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
Modified:
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java?rev=1157415&r1=1157414&r2=1157415&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java
(original)
+++
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/EndpointInterfaceDescriptionImpl.java
Sat Aug 13 19:45:07 2011
@@ -66,11 +66,11 @@ import org.apache.commons.logging.LogFac
public class EndpointInterfaceDescriptionImpl
implements EndpointInterfaceDescription,
EndpointInterfaceDescriptionJava,
EndpointInterfaceDescriptionWSDL {
- private EndpointDescriptionImpl parentEndpointDescription;
- private ArrayList<OperationDescription> operationDescriptions =
+ private final EndpointDescriptionImpl parentEndpointDescription;
+ private final ArrayList<OperationDescription> operationDescriptions =
new ArrayList<OperationDescription>();
private Map<QName, List<OperationDescription>> dispatchableOperations;
- private DescriptionBuilderComposite dbc;
+ private final DescriptionBuilderComposite dbc;
//Logging setup
private static final Log log =
LogFactory.getLog(EndpointInterfaceDescriptionImpl.class);
@@ -354,6 +354,16 @@ public class EndpointInterfaceDescriptio
return;
}
else if (sei != null) {
+ // Reset any cached state (see AXIS2-5115)
+ webServiceAnnotation = null;
+ webServiceTargetNamespace = null;
+ webService_Name = null;
+ soapBindingAnnotation = null;
+ soapBindingStyle = null;
+ soapBindingUse = null;
+ soapParameterStyle = null;
+ dispatchableOperations = null;
+
seiClass = sei;
dbc.setCorrespondingClass(sei);
// Update (or possibly add) the OperationDescription for each of
the methods on the SEI.
Modified:
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java?rev=1157415&r1=1157414&r2=1157415&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
(original)
+++
axis/axis2/java/core/trunk/modules/metadata/src/org/apache/axis2/jaxws/description/impl/OperationDescriptionImpl.java
Sat Aug 13 19:45:07 2011
@@ -100,11 +100,11 @@ import java.util.concurrent.Future;
class OperationDescriptionImpl
implements OperationDescription, OperationDescriptionJava,
OperationDescriptionWSDL {
- private EndpointInterfaceDescription parentEndpointInterfaceDescription;
- private AxisOperation axisOperation;
- private QName operationQName;
+ private final EndpointInterfaceDescription
parentEndpointInterfaceDescription;
+ private final AxisOperation axisOperation;
+ private final QName operationQName;
private Method seiMethod;
- private MethodDescriptionComposite methodComposite;
+ private final MethodDescriptionComposite methodComposite;
private ParameterDescription[] parameterDescriptions;
private FaultDescription[] faultDescriptions;
private static final Log log =
LogFactory.getLog(OperationDescriptionImpl.class);
@@ -200,6 +200,7 @@ class OperationDescriptionImpl
OperationDescriptionImpl(Method method, EndpointInterfaceDescription
parent) {
parentEndpointInterfaceDescription = parent;
+ methodComposite = null;
partAttachmentMap = new HashMap<String, AttachmentDescription>();
setSEIMethod(method);
@@ -210,7 +211,11 @@ class OperationDescriptionImpl
if (getEndpointInterfaceDescription().getEndpointDescription() !=
null) {
if
(!getEndpointInterfaceDescription().getEndpointDescription().getServiceDescription().isServerSide())
{
axisOperation = createClientAxisOperation();
+ } else {
+ axisOperation = null;
}
+ } else {
+ axisOperation = null;
}
if(this.axisOperation != null) {
try {
@@ -228,6 +233,7 @@ class OperationDescriptionImpl
parentEndpointInterfaceDescription = parent;
partAttachmentMap = new HashMap<String, AttachmentDescription>();
axisOperation = operation;
+ methodComposite = null;
if(this.axisOperation != null) {
this.operationQName = axisOperation.getName();
try {
@@ -237,6 +243,8 @@ class OperationDescriptionImpl
catch(AxisFault af) {
throw
ExceptionFactory.makeWebServiceException(Messages.getMessage("operationDescriptionErr1"));
}
+ } else {
+ operationQName = null;
}
buildAttachmentInformation();
}
@@ -637,6 +645,38 @@ class OperationDescriptionImpl
throw ExceptionFactory.makeWebServiceException(
new
UnsupportedOperationException(Messages.getMessage("seiMethodErr")));
} else {
+ // Reset any cached state (see AXIS2-5115)
+ webMethodAnnotation = null;
+ webMethodOperationName = null;
+ webMethodAction = null;
+ webMethodExclude = null;
+ requestWrapperAnnotation = null;
+ requestWrapperLocalName = null;
+ requestWrapperTargetNamespace = null;
+ requestWrapperClassName = null;
+ requestWrapperPartName = null;
+ responseWrapperAnnotation = null;
+ responseWrapperLocalName = null;
+ responseWrapperTargetNamespace = null;
+ responseWrapperClassName = null;
+ responseWrapperPartName = null;
+ webParamNames = null;
+ webParamTargetNamespace = null;
+ webParamMode = null;
+ webResultAnnotation = null;
+ webResultName = null;
+ webResultPartName = null;
+ webResultTargetNamespace = null;
+ webResultHeader = null;
+ soapBindingAnnotation = null;
+ soapBindingStyle = null;
+ soapBindingUse = null;
+ soapBindingParameterStyle = null;
+ actionAnnotation = null;
+ onewayAnnotation = null;
+ onewayIsOneway = null;
+ resultActualTypeClazz = null;
+
seiMethod = method;
webMethodAnnotation = (WebMethod)
getAnnotation(seiMethod, WebMethod.class);