Author: scheu
Date: Tue Mar 11 17:21:04 2008
New Revision: 636159

URL: http://svn.apache.org/viewvc?rev=636159&view=rev
Log:
Quick Fix
The OMStaXWrapper.getReaderProperty method throws an exception if the parser is 
closed.  This is not expected.
I changed the OMStAXWrapper to avoid calling the reader property when the 
parser is closed.
I also changed the SOAPEnvelopeImpl code to firewall the call to this code.
And I added a unit verification test.

Modified:
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMWrapperTest.java

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java?rev=636159&r1=636158&r2=636159&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
 Tue Mar 11 17:21:04 2008
@@ -649,7 +649,10 @@
      * @return
      */
     public Object getReaderProperty(String name) throws 
IllegalArgumentException {
-        return parser.getProperty(name);
+        if (!isClosed()) {
+            return parser.getProperty(name);
+        } 
+        return null;
     }
 
     /**

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java?rev=636159&r1=636158&r2=636159&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
 Tue Mar 11 17:21:04 2008
@@ -283,7 +283,7 @@
                 QName payloadQName = (QName) ((StAXSOAPModelBuilder) builder).
                     
getReaderProperty(SOAPConstants.SOAPBODY_FIRST_CHILD_ELEMENT_QNAME);
                 return payloadQName;
-            } catch (IllegalArgumentException e) {
+            } catch (Throwable e) {
                 // The parser may not support this property. 
                 // In such cases, processing continues below in the fallback 
approach
             }

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java?rev=636159&r1=636158&r2=636159&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
 Tue Mar 11 17:21:04 2008
@@ -295,7 +295,7 @@
                 QName payloadQName = (QName) ((StAXSOAPModelBuilder) builder).
                     
getReaderProperty(SOAPConstants.SOAPBODY_FIRST_CHILD_ELEMENT_QNAME);
                 return payloadQName;
-            } catch (IllegalArgumentException e) {
+            } catch (Throwable e) {
                 // The parser may not support this property. 
                 // In such cases, processing continues below in the fallback 
approach
             }

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMWrapperTest.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMWrapperTest.java?rev=636159&r1=636158&r2=636159&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMWrapperTest.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMWrapperTest.java
 Tue Mar 11 17:21:04 2008
@@ -87,6 +87,9 @@
             
             // Calling getProperty after a close should return null, not an 
exception
             assertTrue(reader.getProperty("dummyProperty") == null);
+            
+            // Calling builder.getReaderProperty should return null, not an 
exception
+            assertTrue(b.getReaderProperty("dummyProperty") == null);
         } catch (XMLStreamException e) {
             fail(e.getMessage());
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to