rineholt 2002/09/24 20:55:17
Modified: java/src/org/apache/axis/description OperationDesc.java
ParameterDesc.java
Log:
When the same Call object is used repeatedly with only changing the method name
and not specifying parameters the modifying of the operation desc's returnDesc
changes
it name the first time
from null to the name of the fist call. Since they are only references this affects
message context and the call objects version. Message Context is cleaned, but not
Call object's version which set's message contexts, Next time around the qname is
not null
and no param desc is returned throwing an exception.
Changed it so in the case of null name return a copy.
Revision Changes Path
1.22 +5 -3 xml-axis/java/src/org/apache/axis/description/OperationDesc.java
Index: OperationDesc.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/description/OperationDesc.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- OperationDesc.java 24 Sep 2002 21:02:23 -0000 1.21
+++ OperationDesc.java 25 Sep 2002 03:55:16 -0000 1.22
@@ -316,10 +316,12 @@
}
if ((param == null) || (param.getMode() == ParameterDesc.IN)) {
- if (returnDesc.getQName() == null ||
- qname.equals(returnDesc.getQName())) {
- param = returnDesc;
+ if (null == returnDesc.getQName() ){
+ param= new ParameterDesc( returnDesc); //Create copy
param.setQName(qname);
+ }
+ else if ( qname.equals(returnDesc.getQName())) {
+ param = returnDesc;
}
}
1.22 +16 -0 xml-axis/java/src/org/apache/axis/description/ParameterDesc.java
Index: ParameterDesc.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/description/ParameterDesc.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- ParameterDesc.java 18 Sep 2002 16:10:44 -0000 1.21
+++ ParameterDesc.java 25 Sep 2002 03:55:16 -0000 1.22
@@ -102,6 +102,22 @@
}
/**
+ * Constructor-copy
+ *
+ * @param copy the copy
+ */
+ public ParameterDesc(ParameterDesc copy) {
+ name= copy.name;
+ typeEntry= copy.typeEntry;
+ mode= copy.mode;
+ typeQName= copy.typeQName;
+ javaType= copy.javaType;
+ order= copy.order;
+ isReturn= copy.isReturn;
+ mimeType= copy.mimeType;
+ }
+
+ /**
* Constructor
*
* @param name the parameter's fully qualified XML name