You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2003/01/09 02:16:15 UTC

DO NOT REPLY [Bug 15909] New: - Inappropriate Post 1.0 API Change to AxisFault

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15909>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15909

Inappropriate Post 1.0 API Change to AxisFault

           Summary: Inappropriate Post 1.0 API Change to AxisFault
           Product: Axis
           Version: 1.1beta
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Blocker
          Priority: Other
         Component: Basic Architecture
        AssignedTo: axis-dev@xml.apache.org
        ReportedBy: jasnell@us.ibm.com


AxisFault.java revision 1.58.2.3, method setFaultCode(String) was renamed to 
setFaultCodeAsString(String) by Glen with the following description:

setFaultCode(String) should be restored a @deprecated.  

Glen, can you take a look?

"* In AxisFault, treat faultCode as a QName all the time, with a
  different accessor (setFaultCodeAsString()) for two reasons;
  clarity, and so as not to confuse a deserializer treating a
  fault as a bean.

* To deserialize faults as beans, we're currently enabling
  setters on the fault classes.  This is prohibited by JAX-RPC,
  so we should see if this breaks the TCK.  To deal with this
  (IMO incorrect) restriction, we'll have to do some funky
  tricks with understanding the order of the parameters in the
  fault's constructor, and only construct the object after
  all the values are assembled.  Will do this work later if
  necessary.

* Bulletproof OperationDesc.getFaultByQName()

* Fix the framework architecture for deserializing pieces of
  "containers" like beans/arrays/maps/faults.  We now support
  a concept of "active child deserializers" in the base
  DeserializerImpl class.  Each time a Deserializer gets a
  child deserializer, it adds the child to the list of active
  children and adds a CallbackTarget so that it will be
  notified when the child's value has been deserialized.

  We now use this mechanism to keep track of when a structured
  entity is actually complete, so the valueComplete()/callback
  system actually works.  The Array, Bean, Map, and Vector
  deserializers have been changed to fit.

  To make this work cleanly, we no longer overload the Callback
  setValue() method in the individual Deserializers (ArrayDeser,
  etc).  Now the DeserializerTarget uses the setChildValue()
  method to cleanly separate the propagation of actual values
  from the framework-managed structural completion code.

  This allows faults with multi-ref data to be correctly
  deserialized, cleans up the deserializers to use a common
  pattern, and should correct various problems we were
  having with streaming deserialization.

* inout.wsdl was syntactically incorrect wrt faults, as are
  several other of our test WSDLs.

* ComprehensiveTypes.wsdl was also incorrect, and it also
  mixes rpc/encoded with rpc/literal (elemWComplex uses
  <part element="">).  Fix the fault part now, figure out
  what we're going to do about the rpc/lit part later.

We now pass the complexRpcEnc fault test.  ComplexDocLit next."