axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Samisa Abeysinghe (JIRA)" <axis-c-...@ws.apache.org>
Subject [jira] Updated: (AXISCPP-421) Problems with handlers
Date Mon, 11 Apr 2005 13:26:20 GMT
     [ http://issues.apache.org/jira/browse/AXISCPP-421?page=history ]

Samisa Abeysinghe updated AXISCPP-421:
--------------------------------------

    Component: Handlers

> Problems with handlers
> ----------------------
>
>          Key: AXISCPP-421
>          URL: http://issues.apache.org/jira/browse/AXISCPP-421
>      Project: Axis-C++
>         Type: Bug
>   Components: Handlers
>  Environment: n/a
>     Reporter: Fred Preston
>     Priority: Minor

>
> I am investigating handlers, and there seems to be a problem with the number of times
init and fini are called (I would expect, when everything is working correctly for the init
and fini methods to be called once only).  Also when the WSDD file contains global and transport
type handlers some fini methods on some handlers are not called at all.  Here is a simple
WSDD with just one Client handler:-
> <?xml version="1.0" encoding="UTF-8"?>
> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:C="http://xml.apache.org/axis/wsdd/providers/c">
>   <service name="ServiceHandler" provider="CPP:DOCUMENT" description="Service Handlers">
>     <requestFlow>
>       <handler name="myClientHandleReq" type="C:\myClientHandler.dll">
>       </handler>
>     </requestFlow>
>     <responseFlow>
>       <handler name="myHandle1Res" type="C:\myHandler1.dll">
>       </handler>
>     </responseFlow>
>   </service>
> </deployment>
> And this is the debug I get: (Notice how there are two calls to init)
> 0> myClientHandler::myClientHandler() <-- Method entry
> 0< myClientHandler::myClientHandler() <-- Method exit
> 0> myClientHandler::init() <-- Method entry
> 0< myClientHandler::init() <-- Method exit
> 0> myClientHandler::init() <-- Method entry *** Why is this method being
> 0< myClientHandler::init() <-- Method exit  *** called twice?
> 0> myHandler::myHandler() <-- Method entry
> 0< myHandler::myHandler() <-- Method exit
> 0> myHandler::init() <-- Method entry
> 0< myHandler::init() <-- Method exit
> 0> myHandler::init() <-- Method entry *** Why is this method being
> 0< myHandler::init() <-- Method exit  *** called twice?
> 0> myClientHandler::invoke() <-- Method entry
> 0- Before the pivot point
> 0< myClientHandler::invoke() <-- Method exit
> 0> myHandler::invoke() <-- Method entry
> 0- After the pivot point
> 0< myHandler::invoke() <-- Method exit
> 0> myClientHandler::fini() <-- Method entry
> 0< myClientHandler::fini() <-- Method exit
> 0> myHandler::fini() <-- Method entry
> 0< myHandler::fini() <-- Method exit
> Stock quote for XXX is #50.38 ($92.70) per share.
> 0> myClientHandler::fini() <-- Method entry *** Why is this method being
> 0< myClientHandler::fini() <-- Method exit  *** called twice?
> 0> myClientHandler::~myClientHandler() <-- Method entry
> 0< myClientHandler::~myClientHandler() <-- Method exit
> 0> myHandler::fini() <-- Method entry *** Why is this method being
> 0< myHandler::fini() <-- Method exit  *** called twice?
> 0> myHandler::~myHandler() <-- Method entry
> 0< myHandler::~myHandler() <-- Method exit
> Here is a simple WSDD of all client side handler types:-
> <?xml version="1.0" encoding="UTF-8"?>
> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:C="http://xml.apache.org/axis/wsdd/providers/c">
>   <service name="ServiceHandler" provider="CPP:DOCUMENT" description="Service Handlers">
>     <requestFlow>
>       <handler name="myClientHandleReq" type="C:\myClientHandler.dll">
>       </handler>
>     </requestFlow>
>     <responseFlow>
>       <handler name="myHandle1Res" type="C:\myHandler1.dll">
>       </handler>
>     </responseFlow>
>   </service>
>   <globalConfiguration name="GlobalHandler" provider="CPP:DOCUMENT" description="Global
Handler">
>     <requestFlow>
>       <handler name="myGlobalHandleReq" type="C:\myGlobalHandler.dll">
>       </handler>
>     </requestFlow>
>     <responseFlow>
>       <handler name="myGlobalHandleRes" type="C:\myGlobalHandler.dll">
>       </handler>
>     </responseFlow>
>   </globalConfiguration>
>   <transport name="TransportHandler" provider="CPP:DOCUMENT" description="Transport
Handler">
>     <requestFlow>
>       <handler name="myTransportHandleReq" type="C:\myTransportHandler.dll">
>       </handler>
>     </requestFlow>
>     <responseFlow>
>       <handler name="myTransportHandleRes" type="C:\myTransportHandler.dll">
>       </handler>
>     </responseFlow>
>   </transport>
> </deployment>
> And here is the debug I get: (Notice this time that there is no call to fini or the destructor
method for the following handler types: myGlobalHandler (either instance)and myTransportHandler
(either instance)) I have also anotated other potential problems with comments (i.e. *** comment).
> 0> myGlobalHandler::myGlobalHandler() <- Entry
> 0< myGlobalHandler::myGlobalHandler() <- Exit
> 0> myGlobalHandler::init()            <- Entry
> 0< myGlobalHandler::init()            <- Exit
> 0> myGlobalHandler::init()            <- Entry *** Why is the init being called
> 0< myGlobalHandler::init()            <- Exit  *** Twice?
> 1> myGlobalHandler::myGlobalHandler() <- Entry
> 1< myGlobalHandler::myGlobalHandler() <- Exit
> 1> myGlobalHandler::init()            <- Entry
> 1< myGlobalHandler::init()            <- Exit
> 1> myGlobalHandler::init()            <- Entry *** Again, on this instance, why
> 1< myGlobalHandler::init()            <- Exit  *** is init being called twice?
> 0> myTransportHandler::myTransportHandler() <- Entry
> 0< myTransportHandler::myTransportHandler() <- Exit
> 0> myTransportHandler::init()         <- Entry
> 0< myTransportHandler::init()         <- Exit
> 0> myTransportHandler::init()         <- Entry *** Why is the init beign called
> 0< myTransportHandler::init()         <- Exit  *** twice?
> 1> myTransportHandler::myTransportHandler()<- Entry
> 1< myTransportHandler::myTransportHandler() <- Exit
> 1> myTransportHandler::init()         <- Entry
> 1< myTransportHandler::init()         <- Exit
> 1> myTransportHandler::init()         <- Entry *** Again, on this instance, why
> 1< myTransportHandler::init()         <- Exit  *** is init being called twice?
> 0> myClientHandler::myClientHandler() <- Entry
> 0< myClientHandler::myClientHandler() <- Exit
> 0> myClientHandler::init()            <- Entry
> 0< myClientHandler::init()            <- Exit
> 0> myClientHandler::init()            <- Entry *** Why is the init beign called
> 0< myClientHandler::init()            <- Exit  *** twice?
> 0> myHandler::myHandler()             <- Entry
> 0< myHandler::myHandler()             <- Exit
> 0> myHandler::init()                  <- Entry
> 0< myHandler::init()                  <- Exit
> 0> myHandler::init()                  <- Entry *** Why is the init beign called
> 0< myHandler::init()                  <- Exit  *** twice?
> 0> myClientHandler::invoke()          <- Entry
> 0- Before the pivot point
> 0< myClientHandler::invoke()          <- Exit
> 0> myGlobalHandler::invoke()          <- Entry
> 0- Before the pivot point
> 0< myGlobalHandler::invoke()          <- Exit
> 0> myTransportHandler::invoke()       <- Entry
> 0- Before the pivot point
> 0< myTransportHandler::invoke()       <- Exit
> 1> myTransportHandler::invoke()       <- Entry
> 1- After the pivot point
> 1< myTransportHandler::invoke()       <- Exit
> 1> myGlobalHandler::invoke()          <- Entry
> 1- After the pivot point
> 1< myGlobalHandler::invoke()          <- Exit
> 0> myHandler::invoke()                <- Entry
> 0- After the pivot point
> 0< myHandler::invoke()                <- Exit
> 0> myClientHandler::fini()            <- Entry
> 0< myClientHandler::fini()            <- Exit
> 0> myHandler::fini()                  <- Entry
> 0< myHandler::fini()                  <- Exit
> Stock quote for XXX is £50.38 ($92.70) per share.
> 0> myClientHandler::fini()            <- Entry
> 0< myClientHandler::fini()            <- Exit
> 0> myClientHandler::~myClientHandler() <- Entry
> 0< myClientHandler::~myClientHandler() <- Exit
> 0> myHandler::fini()                  <- Entry
> 0< myHandler::fini()                  <- Exit
> 0> myHandler::~myHandler()            <- Entry
> 0< myHandler::~myHandler()            <- Exit

-- 
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
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


Mime
View raw message