sandholm 2003/02/03 15:16:37
Modified: java/src/org/apache/axis/encoding
SerializationContextImpl.java
Log:
added fix to xsi type suppression for individual operations
Revision Changes Path
1.89 +14 -4
xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java
Index: SerializationContextImpl.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -r1.88 -r1.89
--- SerializationContextImpl.java 20 Dec 2002 17:28:21 -0000 1.88
+++ SerializationContextImpl.java 3 Feb 2003 23:16:36 -0000 1.89
@@ -64,6 +64,7 @@
import org.apache.axis.client.Call;
import org.apache.axis.components.logger.LogFactory;
import org.apache.axis.description.TypeDesc;
+import org.apache.axis.description.OperationDesc;
import org.apache.axis.encoding.ser.BaseSerializerFactory;
import org.apache.axis.enum.Use;
import org.apache.axis.handlers.soap.SOAPService;
@@ -274,13 +275,22 @@
sendXSIType = false ;
}
- // A Literal use service overrides the above settings. Don't
+ // A Literal use operation overrides the above settings. Don't
// send xsi:type, and don't do multiref in that case.
- SOAPService service = msgContext.getService();
- if (service != null) {
- if (service.getUse() != Use.ENCODED) {
+ OperationDesc operation = msgContext.getOperation();
+ if (operation != null) {
+ if (operation.getUse() != Use.ENCODED) {
sendXSIType = false;
doMultiRefs = false;
+ }
+ } else {
+ // A Literal use service overrides the above settings.
+ SOAPService service = msgContext.getService();
+ if (service != null) {
+ if (service.getUse() != Use.ENCODED) {
+ sendXSIType = false;
+ doMultiRefs = false;
+ }
}
}
}