You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Nandana Mihindukulasooriya <na...@gmail.com> on 2008/11/18 04:39:13 UTC

Re: Re Fix to jira axis2-4114

Mary,
    Yes, I applied the patch [1] and resolved the issue and it is in the
trunk. It seems we need to include some null checks in to the problematic
operation.

thanks,
nandana

[1] -
http://issues.apache.org/jira/browse/AXIS2-4114?page=com.atlassian.jira.plugin.ext.subversion:subversion-commits-tabpanel

On Mon, Nov 17, 2008 at 2:07 PM, Mary Thompson <mr...@lbl.gov> wrote:

> Nandana,
>  I noticed that you resolved this jira as "fixed". Does this mean that
> something like Dobri's patch to MessageContext has been committed to axis
> trunk?
>
> The problem that I am having with no effective policy being found for fault
> message replies seemed similar enough that I wanted to try the fix if
> possible.
>
> I have my policy attached to operations. Successful replies find an
> effective policy and work just fine. If my application throws an axis fault
> due to wrong input from the client, no policy is found and the message is
> returned with no SOAP header.
>
> Having no clue as to how to "build against the axis2 SNAPSHOT" I downloaded
> the axis2-SNAPSHOT.jar of Nov 17, dumped it into the axis lib directory and
> went for it. After getting the axiom SNAPSHOT jars that were needed, I found
> that the successful case still worked, and the fault case got into trouble
> at
>
> 2008-11-16 23:47:47,357 [ INFO]
> axis:org.apache.rampart.handler.RampartSender entering rampartSender invoke
> 2008-11-16 23:47:47,357 [ INFO]
> axis:org.apache.rampart.handler.RampartSender Rampart is engaged
> 2008-11-16 23:47:47,358 [ INFO] axis:org.apache.rampart.MessageBuilder
> Entering rampartMessageBuilder
> 2008-11-16 23:47:47,359 [DEBUG] axis:org.apache.rampart.RampartMessageData
> RMD: creating RampartMessageData
> 2008-11-16 23:47:47,427 [DEBUG] axis:org.apache.rampart.RampartMessageData
> RMD: trying effective Policy
>
> 2008-11-16 23:47:47,429 [ERROR]
> axis:org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/axis2].[AxisServlet]
> Servlet.service() for servlet AxisServlet threw exception
> java.lang.NullPointerException
>        at
> org.apache.axis2.context.MessageContext.findBindingMessage(MessageContext.java:1603)
>        at
> org.apache.axis2.context.MessageContext.getEffectivePolicy(MessageContext.java:1581)
>        at
> org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:251)
>        at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:61)
>        at
> org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:66)
>        at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
>        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:248)
>        at org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:504)
>        at
> org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:416)
>        at
> org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:379)
>        at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:167)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>        at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>        at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>        at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>        at
> org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482)
>        at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>        at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>        at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
>        at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>      at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>        at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>        at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>        at java.lang.Thread.run(Thread.java:613)
>
>
> So I have a couple of questions:
>  Is the fix for this jira in the Axis2-SNAPSHOT.jar?
>  What is the correct way to use the Axis2-SNAPSHOT.jar? (I know that what I
> did gives me two versions of many classes which is usually a BAD THING)
>
> Thanks for any suggestions.
>
> Mary Thompson
>
> ---------------------------------------------------------------------
> Mary R. Thompson                                <MR...@lbl.gov>
> Lawrence Berkeley National Lab                  http://acs.lbl.gov/~mrt<http://acs.lbl.gov/%7Emrt>
> ----------------------------------------------------------------------
>

Re: Re Fix to jira axis2-4114

Posted by Detelin Yordanov <de...@gmail.com>.
Hi guys,
   I also experienced this, I did not see you were discussing it here so I
wrote in the JIRA.
I tried to reopen the issue but I don't have sufficient rights, Nandana can
you reopen it please?

Regards,
   Detelin

On Mon, Nov 24, 2008 at 8:46 AM, Mary Thompson <mr...@lbl.gov> wrote:

> Nandana,
>  I have been playing with this for a while. In the case where the service
> throws a fault there is no axisMessage in the msgCtx when we get to
> axis2/context/MessageContext. One can use the FLOW variable to figure out if
> it is an in or out message. The following patch works for me for both fault
> and non-fault cases, policy is attached at the operations.
>
> diff MessageContext.orig MessageContext.fixed
> 1603c1603,1608
> <        String direction = axisMessage.getDirection();
> ---
> >        String direction = null;
> >        if ((FLOW == IN_FLOW) || (FLOW == IN_FAULT_FLOW)) {
> >             direction = WSDLConstants.MESSAGE_LABEL_IN_VALUE;
> >        } else if ((FLOW == OUT_FLOW) || (FLOW == OUT_FAULT_FLOW)){
> >             direction = WSDLConstants.MESSAGE_LABEL_OUT_VALUE;
> >        }
> 1605c1610
> <        if (WSDLConstants.WSDL_MESSAGE_DIRECTION_IN
> ---
> >        if (WSDLConstants.MESSAGE_LABEL_IN_VALUE
> 1614c1619
> <        } else if (WSDLConstants.WSDL_MESSAGE_DIRECTION_OUT
> ---
> >        } else if (WSDLConstants.MESSAGE_LABEL_OUT_VALUE
>
>
> I  noticed that in normal OUT_FLOW execution goes through WSDoAllSender
> before going into RampartSender, but in the OUT_FAULT_FLOW case it just goes
> to RampartSender. I don't know if WSDoAllSender would have created the axis
> message.
>
> Mary Thompson
>
>
> Nandana Mihindukulasooriya wrote:
>
>> Mary,
>>    Yes, I applied the patch [1] and resolved the issue and it is in the
>> trunk. It seems we need to include some null checks in to the problematic
>> operation.
>>
>> thanks,
>> nandana
>>
>> [1] -
>> http://issues.apache.org/jira/browse/AXIS2-4114?page=com.atlassian.jira.plugin.ext.subversion:subversion-commits-tabpanel
>>
>> On Mon, Nov 17, 2008 at 2:07 PM, Mary Thompson <mrthompson@lbl.gov<mailto:
>> mrthompson@lbl.gov>> wrote:
>>
>>    Nandana,
>>     I noticed that you resolved this jira as "fixed". Does this mean
>>    that something like Dobri's patch to MessageContext has been
>>    committed to axis trunk?
>>
>>    The problem that I am having with no effective policy being found
>>    for fault message replies seemed similar enough that I wanted to try
>>    the fix if possible.
>>
>>    I have my policy attached to operations. Successful replies find an
>>    effective policy and work just fine. If my application throws an
>>    axis fault due to wrong input from the client, no policy is found
>>    and the message is returned with no SOAP header.
>>
>>    Having no clue as to how to "build against the axis2 SNAPSHOT" I
>>    downloaded the axis2-SNAPSHOT.jar of Nov 17, dumped it into the axis
>>    lib directory and went for it. After getting the axiom SNAPSHOT jars
>>    that were needed, I found that the successful case still worked, and
>>    the fault case got into trouble at
>>
>>    2008-11-16 23:47:47,357 [ INFO]
>>    axis:org.apache.rampart.handler.RampartSender entering rampartSender
>>    invoke
>>    2008-11-16 23:47:47,357 [ INFO]
>>    axis:org.apache.rampart.handler.RampartSender Rampart is engaged
>>    2008-11-16 23:47:47,358 [ INFO]
>>    axis:org.apache.rampart.MessageBuilder Entering rampartMessageBuilder
>>    2008-11-16 23:47:47,359 [DEBUG]
>>    axis:org.apache.rampart.RampartMessageData RMD: creating
>>    RampartMessageData
>>    2008-11-16 23:47:47,427 [DEBUG]
>>    axis:org.apache.rampart.RampartMessageData RMD: trying effective Policy
>>
>>    2008-11-16 23:47:47,429 [ERROR]
>>
>>  axis:org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/axis2].[AxisServlet]
>>    Servlet.service() for servlet AxisServlet threw exception
>>    java.lang.NullPointerException
>>           at
>>
>>  org.apache.axis2.context.MessageContext.findBindingMessage(MessageContext.java:1603)
>>           at
>>
>>  org.apache.axis2.context.MessageContext.getEffectivePolicy(MessageContext.java:1581)
>>           at
>>
>>  org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:251)
>>           at
>>    org.apache.rampart.MessageBuilder.build(MessageBuilder.java:61)
>>           at
>>    org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:66)
>>           at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
>>           at
>> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:248)
>>           at
>>    org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:504)
>>           at
>>
>>  org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:416)
>>           at
>>
>>  org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:379)
>>           at
>>
>>  org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:167)
>>           at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>>           at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>           at
>>
>>  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>>           at
>>
>>  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>           at
>>
>>  org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>           at
>>
>>  org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>>           at
>>
>>  org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>           at
>>
>>  org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>>           at
>>
>>  org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482)
>>           at
>>
>>  org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>>           at
>>
>>  org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>>           at
>>
>>  org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
>>           at
>>
>>  org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>>         at
>>
>>  org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>>           at
>>
>>  org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>>           at
>>
>>  org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>>           at java.lang.Thread.run(Thread.java:613)
>>
>>
>>    So I have a couple of questions:
>>     Is the fix for this jira in the Axis2-SNAPSHOT.jar?
>>     What is the correct way to use the Axis2-SNAPSHOT.jar? (I know that
>>    what I did gives me two versions of many classes which is usually a
>>    BAD THING)
>>
>>    Thanks for any suggestions.
>>
>>    Mary Thompson
>>
>>    ---------------------------------------------------------------------
>>    Mary R. Thompson                                <MRThompson@lbl.gov
>>    <ma...@lbl.gov>>
>>    Lawrence Berkeley National Lab
>> http://acs.lbl.gov/~mrt <http://acs.lbl.gov/%7Emrt> <
>> http://acs.lbl.gov/%7Emrt>
>>    ----------------------------------------------------------------------
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>

Re: Re Fix to jira axis2-4114

Posted by Mary Thompson <mr...@lbl.gov>.
Nandana,
   I have been playing with this for a while. In the case where the 
service throws a fault there is no axisMessage in the msgCtx when we get 
to axis2/context/MessageContext. One can use the FLOW variable to figure 
out if it is an in or out message. The following patch works for me for 
both fault and non-fault cases, policy is attached at the operations.

diff MessageContext.orig MessageContext.fixed
1603c1603,1608
<        String direction = axisMessage.getDirection();
---
 >        String direction = null;
 >        if ((FLOW == IN_FLOW) || (FLOW == IN_FAULT_FLOW)) {
 >             direction = WSDLConstants.MESSAGE_LABEL_IN_VALUE;
 >        } else if ((FLOW == OUT_FLOW) || (FLOW == OUT_FAULT_FLOW)){
 >             direction = WSDLConstants.MESSAGE_LABEL_OUT_VALUE;
 >        }
1605c1610
<        if (WSDLConstants.WSDL_MESSAGE_DIRECTION_IN
---
 >        if (WSDLConstants.MESSAGE_LABEL_IN_VALUE
1614c1619
<        } else if (WSDLConstants.WSDL_MESSAGE_DIRECTION_OUT
---
 >        } else if (WSDLConstants.MESSAGE_LABEL_OUT_VALUE


I  noticed that in normal OUT_FLOW execution goes through WSDoAllSender 
before going into RampartSender, but in the OUT_FAULT_FLOW case it just 
goes to RampartSender. I don't know if WSDoAllSender would have created 
the axis message.

Mary Thompson


Nandana Mihindukulasooriya wrote:
> Mary,
>     Yes, I applied the patch [1] and resolved the issue and it is in the 
> trunk. It seems we need to include some null checks in to the 
> problematic operation.
> 
> thanks,
> nandana
> 
> [1] - 
> http://issues.apache.org/jira/browse/AXIS2-4114?page=com.atlassian.jira.plugin.ext.subversion:subversion-commits-tabpanel
> 
> On Mon, Nov 17, 2008 at 2:07 PM, Mary Thompson <mrthompson@lbl.gov 
> <ma...@lbl.gov>> wrote:
> 
>     Nandana,
>      I noticed that you resolved this jira as "fixed". Does this mean
>     that something like Dobri's patch to MessageContext has been
>     committed to axis trunk?
> 
>     The problem that I am having with no effective policy being found
>     for fault message replies seemed similar enough that I wanted to try
>     the fix if possible.
> 
>     I have my policy attached to operations. Successful replies find an
>     effective policy and work just fine. If my application throws an
>     axis fault due to wrong input from the client, no policy is found
>     and the message is returned with no SOAP header.
> 
>     Having no clue as to how to "build against the axis2 SNAPSHOT" I
>     downloaded the axis2-SNAPSHOT.jar of Nov 17, dumped it into the axis
>     lib directory and went for it. After getting the axiom SNAPSHOT jars
>     that were needed, I found that the successful case still worked, and
>     the fault case got into trouble at
> 
>     2008-11-16 23:47:47,357 [ INFO]
>     axis:org.apache.rampart.handler.RampartSender entering rampartSender
>     invoke
>     2008-11-16 23:47:47,357 [ INFO]
>     axis:org.apache.rampart.handler.RampartSender Rampart is engaged
>     2008-11-16 23:47:47,358 [ INFO]
>     axis:org.apache.rampart.MessageBuilder Entering rampartMessageBuilder
>     2008-11-16 23:47:47,359 [DEBUG]
>     axis:org.apache.rampart.RampartMessageData RMD: creating
>     RampartMessageData
>     2008-11-16 23:47:47,427 [DEBUG]
>     axis:org.apache.rampart.RampartMessageData RMD: trying effective Policy
> 
>     2008-11-16 23:47:47,429 [ERROR]
>     axis:org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/axis2].[AxisServlet]
>     Servlet.service() for servlet AxisServlet threw exception
>     java.lang.NullPointerException
>            at
>     org.apache.axis2.context.MessageContext.findBindingMessage(MessageContext.java:1603)
>            at
>     org.apache.axis2.context.MessageContext.getEffectivePolicy(MessageContext.java:1581)
>            at
>     org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:251)
>            at
>     org.apache.rampart.MessageBuilder.build(MessageBuilder.java:61)
>            at
>     org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:66)
>            at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
>            at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:248)
>            at
>     org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:504)
>            at
>     org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:416)
>            at
>     org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:379)
>            at
>     org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:167)
>            at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>            at
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>            at
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>            at
>     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>            at
>     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>            at
>     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>            at
>     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>            at
>     org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482)
>            at
>     org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>            at
>     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
>            at
>     org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
>            at
>     org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>          at
>     org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>            at
>     org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>            at
>     org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>            at java.lang.Thread.run(Thread.java:613)
> 
> 
>     So I have a couple of questions:
>      Is the fix for this jira in the Axis2-SNAPSHOT.jar?
>      What is the correct way to use the Axis2-SNAPSHOT.jar? (I know that
>     what I did gives me two versions of many classes which is usually a
>     BAD THING)
> 
>     Thanks for any suggestions.
> 
>     Mary Thompson
> 
>     ---------------------------------------------------------------------
>     Mary R. Thompson                                <MRThompson@lbl.gov
>     <ma...@lbl.gov>>
>     Lawrence Berkeley National Lab                
>      http://acs.lbl.gov/~mrt <http://acs.lbl.gov/%7Emrt>
>     ----------------------------------------------------------------------
> 
> 


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