On Sat, 2005-07-23 at 05:12 -0400, Davanum Srinivas wrote:
> can you set this in your server-config.wsdd?

That didn't help, however after taking a deeper look at the problem, I
think I now see what's broken.

Setup: 

Axis client receives a message with a signed xsd:any element.  The same
client takes the signed element and sends it out to another server using
xsd:any.  The signatures are broken.

Observed behavior:

o  During parsing of the first message, SAX events are stored in the
recorder, and MessageElement objects are created.  The insertion of the
new MessageElements are setting _isDirty, and thus invalidating the
recorder for serialization.  It seems to me that it doesn't make sense
to dirty the recorder during recording itself.

o  During creation of the MessageElements, some text nodes with newlines
are lost.  Assuming the recorder isn't invalidated, is it ok that the
DOM face of MessageElements does not match what is in the recorder?  In
other words, is it ok that someone is throwing away the newline text
nodes in the belief that the recorder will do the right thing during
serialization?

o  The recorder has all of the text nodes.

I am assuming that signatures could be made to work by either not
dirtying the recorder or by not throwing away newline text nodes,
however both seems like serious problems to me.

NodeImpl.java has seen a bunch of activity in May.  Backing out the last
4 commits restores the signatures, although I didn't try reapplying them
one at a time.

For reference:

revision 1.16
date: 2005/06/20 22:50:52;  author: dims;  state: Exp;  lines: +2 -0
Fix for AXIS-2068 - Missing setDirty flags in SAAJ tree modification
(detachNode
 and setParent)
from  David Blevins
----------------------------
revision 1.15
date: 2005/06/09 16:36:27;  author: venkat;  state: Exp;  lines: +3 -0
Fix for AXIS-1960:
- Added a new test case for TestSOAPBody.java to test for this bug.
- added a call to setDirty(true) inside a few methods in NodeImpl
- added setDirty(false) in getAsString() to fix ant all-tests errors.
----------------------------
revision 1.14
date: 2005/05/27 10:20:12;  author: venkat;  state: Exp;  lines: +1 -6
seems my last commit didnt make it to server. So repeating it again.

Removing the call setDirty(true) fix the DOM serialization failures in
ant all-t
ests. Ideally, dirty flag should not cause serialization differences.
But for no
w, i have to remove this to fix some of the ant all-tests failures.
----------------------------
revision 1.13
date: 2005/05/24 03:55:24;  author: venkat;  state: Exp;  lines: +6 -1
Fix for the bug (try#2) : AXIS-1960 - SOAPPart.saveChanges() doesn't
work.

SOAPPart.writeTo(array) is put back again.
call to setDirty(true) is added at required places in NodeImpl.


Reply via email to