You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-dev@ws.apache.org by "Dan Jemiolo (JIRA)" <ji...@apache.org> on 2006/12/08 21:14:22 UTC

[jira] Closed: (MUSE-140) Muse 2 breaks on WLS with BEA StAX parser

     [ http://issues.apache.org/jira/browse/MUSE-140?page=all ]

Dan Jemiolo closed MUSE-140.
----------------------------

    Resolution: Fixed

Fixed

> Muse 2 breaks on WLS with BEA StAX parser
> -----------------------------------------
>
>                 Key: MUSE-140
>                 URL: http://issues.apache.org/jira/browse/MUSE-140
>             Project: Muse
>          Issue Type: Bug
>          Components: Deployment - Axis2
>    Affects Versions: 2.0.0
>         Environment: WLS 9.2
>            Reporter: James Shiell
>         Assigned To: Dan Jemiolo
>            Priority: Critical
>             Fix For: 2.1.0
>
>
> When WLS 9.2 is used and the BEA StAX parser (as opposed to Woodstox) is being used the AxisEnvironment class fails in the convertToDOM(OMElement) method. This appears to be due to a WLS bug, where the serialised XML ommits namespace declarations.
> Given that it is not always possible to structure the classpath to use Woodstox I have included a potential fix that does not rely on serialisation, instead converting objects directly. This is compatible with both implementations and hopefully slightly faster as well.
> AxisEnvironment.java:
>     /**
>      * Convert Axiom to DOM. Muse uses the DOM API in the JDK, Axis2 uses
>      * the Axiom API, which is similar but... different.
>      *
>      * @param axiom the OM element.
>      * @return the converted element.
>      */
>     public static Element convertToDOM(final OMElement axiom)
>     {
>         try
>         {
>             final DocumentBuilder domBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
>             final Document doc = domBuilder.newDocument();
>             return convertToDom(axiom, doc);
>         }
>         catch (Throwable error)
>         {
>             throw new RuntimeException(error.getMessage(), error);
>         }
>     }
>     /**
>      * Convert an OM element into a DOM element.
>      * 
>      * @param element the OM element.
>      * @param doc the DOM document to which DOM elements should belong.
>      * @return the DOM representation of the OM element.
>      */
>     private static Element convertToDom(final OMElement element, final Document doc)
>     {
>         final Element domElement = doc.createElementNS(element.getNamespace().getNamespaceURI(),
>                 element.getLocalName());
>         domElement.setTextContent(element.getText());
>         for (Iterator i = element.getAllAttributes(); i.hasNext();)
>         {
>             final OMAttribute attr = (OMAttribute) i.next();
>             domElement.setAttributeNS(attr.getNamespace().getNamespaceURI(), attr.getLocalName(),
>                     attr.getAttributeValue());
>         }
>         for (Iterator i = element.getChildElements(); i. hasNext();)
>         {
>             final Element child = convertToDom((OMElement) i.next(), doc);
>             domElement.appendChild(child);
>         }
>         return domElement;
>     }

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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: muse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-dev-help@ws.apache.org