Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 42827 invoked from network); 5 Aug 2005 14:59:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 5 Aug 2005 14:59:58 -0000 Received: (qmail 26172 invoked by uid 500); 5 Aug 2005 14:59:53 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 26016 invoked by uid 500); 5 Aug 2005 14:59:52 -0000 Mailing-List: contact axis-dev-help@ws.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-dev@ws.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-dev@ws.apache.org Received: (qmail 25919 invoked by uid 99); 5 Aug 2005 14:59:52 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=SPF_FAIL X-Spam-Check-By: apache.org Received: from [192.87.106.226] (HELO ajax.apache.org) (192.87.106.226) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Aug 2005 07:59:40 -0700 Received: from ajax.apache.org (ajax.apache.org [127.0.0.1]) by ajax.apache.org (Postfix) with ESMTP id 6AF74E3 for ; Fri, 5 Aug 2005 16:59:37 +0200 (CEST) Message-ID: <1013050998.1123253977436.JavaMail.jira@ajax.apache.org> Date: Fri, 5 Aug 2005 16:59:37 +0200 (CEST) From: "Steve Green (JIRA)" To: axis-dev@ws.apache.org Subject: [jira] Commented: (AXIS-1960) 1.2Rc3: Changes to body or header do not get serialized In-Reply-To: <180205730.1114612536789.JavaMail.jira@ajax.apache.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/AXIS-1960?page=comments#action_12317796 ] Steve Green commented on AXIS-1960: ----------------------------------- Venkat, Saw this in CVS: 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. Calling setDirty(false) in MessageElement causes the rerverse problem as the one you are fixing here. Consider the following events. 1. MessageElement with sax reply has children added. 2. Element is marked dirty (as it should be). 3. Someone downstream calls getAsString(), perhaps for debugging or perhaps via getAsDOM(). 4. Element is marked clean, and the new nodes are never serialized. So I see 2 problems, and they apply to getAsDOM(), and getAsDocument() as well. 1. The value returned from getAsXXXX() is wrong. 2. Calling getAsXXXX() is destructive. To borrow a C++ idium, I would hope that getAsXXXX() is "const". Furthermore, I hope the answer to my concerns isn't "setDirty(oldDirty)". My suspsicion is that if the unit tests are failing, something else is wrong. Setting dirty to false feels like masking of symptoms. I have a test program which demonstrates my concerns. Please let me know if you'd like me to upload it. > 1.2Rc3: Changes to body or header do not get serialized > ------------------------------------------------------- > > Key: AXIS-1960 > URL: http://issues.apache.org/jira/browse/AXIS-1960 > Project: Apache Axis > Type: Bug > Components: Serialization/Deserialization > Versions: 1.2RC3 > Environment: JDK1.4.2_07 > Axis version 1.2Rc3 > Tomcat 5.0, Eclipse 3.0 > Reporter: Jeff Saremi > Assignee: Venkat Reddy > > You can add a node or change the value of a node in body or header of a message but the SerializationContext does not output these changes. > You can see the changes using XMLUtils.xxxToString() methods. > Having called saveChanges(), setEnvelope(), setProperty(org.apache.axis.SOAPPart.ALLOW_FORM_OPTIMIZATION, ...) have no effect on this at all. > Example: > org.apache.axis.message.SOAPBody body = (org.apache.axis.message.SOAPBody)env.getBody(); > Node myNode = body.getElementsByTagName("MyNodeName").item(0); > myNode.appendChild(body.getOwnerDocument().createTextNode("SomeNewText")); > // you can see the added text node in the followin output > System.out.println(XMLUtils.ElementToString(body)); > // however, you will not see it in this one > // therefore your changes are not avaialable to the next handler or service > SerializationContext serContext = new SerializationContext(new PrintWriter(System.out), message.getMessageContext()); > serContext.setSendDecl(true); > serContext.setEncoding("UTF-8"); > body.output(serContext); -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira