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."