Andras, Please post these to bugzilla (http://nagoya.apache.org/bugzilla).
Thanks, dims --- [EMAIL PROTECTED] wrote: > Hi, > > I have attached some patches about the SOAP 1.2 compliance of FAULT (also >serializers and > deserialziers). Please check them and let me know if you have any suggestions. > > Br, > Andras > > ******************************************************************* > --- 1_0/org/apache/axis/AxisFault.java Tue Sep 17 22:38:10 2002 > +++ mysoap12/org/apache/axis/AxisFault.java Thu Nov 14 10:51:17 2002 > @@ -90,9 +90,11 @@ > LogFactory.getLog(AxisFault.class.getName()); > > protected QName faultCode ; > + protected Vector faultSubCode ; > protected String faultString = ""; > protected String faultActor ; > protected Vector faultDetails ; // vector of Element's > + protected String faultNode ; > > /** SOAP headers which should be serialized with the Fault */ > protected ArrayList faultHeaders = null; > @@ -103,7 +105,7 @@ > * AxisFault. If the Exception is an InvocationTargetException (which > * already wraps another Exception), get the wrapped Exception out from > * there and use that instead of the passed one. > - */ > + */ > public static AxisFault makeFault(Exception e) > { > if (e instanceof InvocationTargetException) { > @@ -112,14 +114,17 @@ > e = (Exception)t; > } > } > - > + > if (e instanceof AxisFault) { > return (AxisFault)e; > } > - > + > return new AxisFault(e); > } > - > + > + /** > + * @deprecated > + */ > public AxisFault(String code, String str, > String actor, Element[] details) { > super (str); > @@ -131,6 +136,9 @@ > initFromException(this); > } > > + /** > + * @deprecated > + */ > public AxisFault(QName code, String str, > String actor, Element[] details) { > super (str); > @@ -142,21 +150,36 @@ > initFromException(this); > } > > + public AxisFault(QName code, QName[] subcodes, String str, > + String actor, String node, Element[] details) { > + super (str); > + setFaultCode( code ); > + if (subcodes != null) > + for (int i = 0; i < subcodes.length; i++) > + addFaultSubCode( subcodes[i] ); > + setFaultString( str ); > + setFaultActor( actor ); > + setFaultNode( node ); > + setFaultDetail( details ); > + if (details == null) > + initFromException(this); > + } > + > /** > * Wrap an AxisFault around an existing Exception - this is private > * to force everyone to use makeFault() above, which sanity-checks us. > - */ > + */ > protected AxisFault(Exception target) { > super ("", target); > - > + // ? SOAP 1.2 or 1.1 ? > setFaultCode( Constants.FAULT_SERVER_USER ); > - > initFromException(target); > } > > public AxisFault(String message) > { > super (message); > + // ? SOAP 1.2 or 1.1 ? > setFaultCode(Constants.FAULT_SERVER_GENERAL); > setFaultString(message); > initFromException(this); > @@ -168,14 +191,16 @@ > public AxisFault() > { > super(); > - setFaultCode(Constants.FAULT_SERVER_GENERAL); > + // ? SOAP 1.2 or 1.1 ? > + setFaultCode( Constants.FAULT_SERVER_USER ); > initFromException(this); > } > > public AxisFault (String message, Throwable t) > { > super (message, t); > - setFaultCode(Constants.FAULT_SERVER_GENERAL); > + // ? SOAP 1.2 or 1.1 ? > + setFaultCode( Constants.FAULT_SERVER_USER ); > setFaultString(message); > } > > @@ -190,34 +215,34 @@ > } > } > > - // Set the exception message (if any) as the fault string > + // Set the exception message (if any) as the fault string > setFaultString( target.toString() ); > - > + > if (faultDetails == null) faultDetails = new Vector(); > > Element el; > - > + > // If we're derived from AxisFault, then put the exception class > // into the "exceptionName" element in the details. This allows > // us to get back a correct Java Exception class on the other side > // (assuming they have it available). > - > + > if ((target instanceof AxisFault) && > (target.getClass() != AxisFault.class)) { > - el = XMLUtils.StringToElement(Constants.NS_URI_AXIS, > - "exceptionName", > + el = XMLUtils.StringToElement(Constants.NS_URI_AXIS, > + "exceptionName", > target.getClass().getName()); > - > - faultDetails.add(el); > + > + faultDetails.add(el); > } > - > - el = XMLUtils.StringToElement(Constants.NS_URI_AXIS, > - "stackTrace", > + > + el = XMLUtils.StringToElement(Constants.NS_URI_AXIS, > + "stackTrace", > JavaUtils.stackToString(target)); > > faultDetails.add(el); > } > - > + > public void dump() > { > log.debug(dumpToString()); > @@ -235,11 +260,22 @@ > + XMLUtils.getInnerXMLString(e); > } > } > - > + > + String subCodes = new String(); > + if (faultSubCode != null) { > + for (int i = 0; i < faultSubCode.size(); i++) { > + subCodes += JavaUtils.LS > + + (QName)faultSubCode.elementAt(i); > + > + } > + } > + > return "AxisFault" + JavaUtils.LS > + " faultCode: " + faultCode + JavaUtils.LS > + + " faultSubcode: " + subCodes + JavaUtils.LS > + " faultString: " + faultString + JavaUtils.LS > + " faultActor: " + faultActor + JavaUtils.LS > + + " faultNode: " + faultNode + JavaUtils.LS > + " faultDetail: " + details + JavaUtils.LS > ; > } > @@ -249,11 +285,46 @@ > } > > public void setFaultCode(String code) { > - faultCode = new QName(Constants.NS_URI_AXIS, code); > + faultCode = new QName(Constants.URI_SOAP12_ENV, code); > + } > + > === message truncated === > ATTACHMENT part 2 application/octet-stream name=AxisFault.java > ATTACHMENT part 3 application/octet-stream name=Constants.java > ATTACHMENT part 4 application/octet-stream name=SOAPFaultBuilder.java > ATTACHMENT part 5 application/octet-stream name=SOAPFaultCodeBuilder.java > ATTACHMENT part 6 application/octet-stream name=SOAPFault.java ===== Davanum Srinivas - http://xml.apache.org/~dims/ __________________________________________________ Do you Yahoo!? Yahoo! Web Hosting - Let the expert host your site http://webhosting.yahoo.com