Please report new issues athttps://github.com/DOCGroup
Server_Request objects in TAO are magical, the _duplicate() method returns 0 and release() does nothing. The problem starts because Server_Request is allocated from the stack (to speed up things), hence reference counting would be useless. Adding a clone() method will work better, but the Server_Request holds pointers to several positions in the CDR stream, we could clone the CDR stream, but a normal Server_Request does not own it.... In our opinion (Carlos and Irfan) we need not worry about this until we find a use case for it.
This is a valid enhacement request, i'm marking it as accepted but their implementation is deferred
I thought about this problem a bit. The real issue is that there is no reason to use Server_Request to communicate between the low level components in the ORB (Pluggable Protocols + GIOP) to the POA. We could use a TAO specific data structure to pass whatever information is required, CORBA::ServerRequest is only needed in the DSI path, where it could be allocated by the PortableServer::DynamicImplementation, just before calling the _dispatch() method.
I believe that Jeff already solved this problem, if that is the case he should mark it as solved.
Server_Request is no longer used for all requests, it is now reserved for DSI requests only, and has been moved to the DynamicInterface library. Regular server requests in TAO are now handled by a new class TAO_ServerRequest, which contains no DSI functionality.