[ 
https://issues.apache.org/jira/browse/ODE-226?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Douglas Scott Jackson updated ODE-226:
--------------------------------------

    Description: 
I wanted to post a patch to the code, but wasn't sure how to do so.  So, I am 
creating an issue and putting the patch here.

The issue is if you send an invalid <deploy> element with only one sub element 
(invalid request) or with 2 sub elements where
the second does not have a child element you will get a null pointer exception 
rather than a nice error message.  For someone
without access to code this will not be very helpful.

i.e.:
<dapi:deploy xmlns:dapi="http://www.apache.org/ode/deployapi";>
  <dapi:name>xxx</dapi:name>
  <dapi:package>uuencoded-zip-file-without-zip-element</dapi:package>
</dapi:deploy>


Here is a patch to fix.  I have not figured out how to create a war file in  
order to test, so it is untested:

Index: 
axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
===================================================================
--- axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java  
(revision 611855)
+++ axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java  
(working copy)
@@ -114,8 +114,8 @@
                 if (operation.equals("deploy")) {
                     OMElement namePart = 
messageContext.getEnvelope().getBody().getFirstElement().g
etFirstElement();
                     OMElement zipPart = (OMElement) 
namePart.getNextOMSibling();
-                    OMElement zip = zipPart.getFirstElement();
-                    if (!zipPart.getQName().getLocalPart().equals("package") ||
+                    OMElement zip = zipPart == null ? null : 
zipPart.getFirstElement();
+                    if (zip == null || 
!zipPart.getQName().getLocalPart().equals("package") ||
                             !zip.getQName().getLocalPart().equals("zip"))
                         throw new OdeFault("Your message should contain a part 
named 'package' with
 a zip element");


  was:
I wanted to post a patch to the code, but wasn't sure how to do so.  So, I am 
creating an issue and putting the patch here.

The issue is if you send an invalid <deploy> element with only one sub element 
(invalid request) or with 2 sub elements where
the second does not have a child element you will get a null pointer exception 
rather than a nice error message.  For someone
without access to code this will not be very helpful.

i.e.:
<dapi:deploy xmlns:dapi="http://www.apache.org/ode/deployapi";>
  <dapi:name>xxx</dapi:name>
  <dapi:package>uuencoded-zip-file-without-zip-element</dapi:package>
</dapi:deploy>

It may be misleading for the error message to refer to 'package' as a part 
rather than
an element, but I did not modify the message.

Here is a patch to fix.  I have not figured out how to create a war file in  
order to test, so it is untested:

Index: 
axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
===================================================================
--- axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java  
(revision 611855)
+++ axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java  
(working copy)
@@ -114,8 +114,8 @@
                 if (operation.equals("deploy")) {
                     OMElement namePart = 
messageContext.getEnvelope().getBody().getFirstElement().g
etFirstElement();
                     OMElement zipPart = (OMElement) 
namePart.getNextOMSibling();
-                    OMElement zip = zipPart.getFirstElement();
-                    if (!zipPart.getQName().getLocalPart().equals("package") ||
+                    OMElement zip = zipPart == null ? null : 
zipPart.getFirstElement();
+                    if (zip == null || 
!zipPart.getQName().getLocalPart().equals("package") ||
                             !zip.getQName().getLocalPart().equals("zip"))
                         throw new OdeFault("Your message should contain a part 
named 'package' with
 a zip element");



It may be misleading for the error message to refer to 'package' as a part 
rather than
an element, but I did not modify the message.

> If the <package> or <zip> nodes are not present in the <deploy> a null 
> pointer exception can occur
> --------------------------------------------------------------------------------------------------
>
>                 Key: ODE-226
>                 URL: https://issues.apache.org/jira/browse/ODE-226
>             Project: ODE
>          Issue Type: Bug
>          Components: Management
>    Affects Versions: 1.1
>            Reporter: Douglas Scott Jackson
>            Priority: Minor
>
> I wanted to post a patch to the code, but wasn't sure how to do so.  So, I am 
> creating an issue and putting the patch here.
> The issue is if you send an invalid <deploy> element with only one sub 
> element (invalid request) or with 2 sub elements where
> the second does not have a child element you will get a null pointer 
> exception rather than a nice error message.  For someone
> without access to code this will not be very helpful.
> i.e.:
> <dapi:deploy xmlns:dapi="http://www.apache.org/ode/deployapi";>
>   <dapi:name>xxx</dapi:name>
>   <dapi:package>uuencoded-zip-file-without-zip-element</dapi:package>
> </dapi:deploy>
> Here is a patch to fix.  I have not figured out how to create a war file in  
> order to test, so it is untested:
> Index: 
> axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
> ===================================================================
> --- 
> axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java  
> (revision 611855)
> +++ 
> axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java  
> (working copy)
> @@ -114,8 +114,8 @@
>                  if (operation.equals("deploy")) {
>                      OMElement namePart = 
> messageContext.getEnvelope().getBody().getFirstElement().g
> etFirstElement();
>                      OMElement zipPart = (OMElement) 
> namePart.getNextOMSibling();
> -                    OMElement zip = zipPart.getFirstElement();
> -                    if (!zipPart.getQName().getLocalPart().equals("package") 
> ||
> +                    OMElement zip = zipPart == null ? null : 
> zipPart.getFirstElement();
> +                    if (zip == null || 
> !zipPart.getQName().getLocalPart().equals("package") ||
>                              !zip.getQName().getLocalPart().equals("zip"))
>                          throw new OdeFault("Your message should contain a 
> part named 'package' with
>  a zip element");

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to