[ 
http://issues.apache.org/jira/browse/MUSE-140?page=comments#action_12446983 ] 
            
James Shiell commented on MUSE-140:
-----------------------------------

I think we both know the chances of BEA fixing their bug :-) Thank you for your 
efforts!

> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to