[jacorb-developer] Information stored in PICurrent on an interception point is lost when doing local calls

Hugo Roenick hroenick at gmail.com
Tue Feb 4 18:09:09 CET 2014


Hello, everyone.

I believe I've found a bug when trying to pass some information from one interception point to another in the same side (client's interception point to another client's interception point), like send_request to receive_exception or receive_reply). Everything works fine when we have a client and server running in two process. But when we run the server and client in the same process, informations that we saved on one interception point is no longer available in the next interception point from the same request.

I believe this error has some relation to the Bug 960, where we discover that interceptor's behaviour was different from a remote call to a local call.

I wrote a simple test code that demonstrates this error and it's attached in the mail. On this test we have 3 main functions:
 - ServerAndClient -> runs the client and server on the same process
 - Server -> runs only the server, saving the ior to a file named hello.ior
 - Client -> runs only the client, getting the reference from the hello.ior file

The ClientRequestInterceptor will store some information (set_slot) in the PICurrent, obtained by "orb.resolve_initial_references("PICurrent")", on send_request, and will try to read this same information on receive_exception or receive_reply.

The ServerRequestInterceptor only throws an exception so we can try to read the information stored in PICurrent on receive_exception. If we comment the throw exception, we will expect to retrieve the same information on receive_reply.

I discover this problem using JacORB 3.3, but tested with 3.4 and the problem persists. I didn't investigate to see if this problem also happens when trying to send information by PICurrent on the server's interceptions points.

Regards,
-- Hugo Roenick







More information about the jacorb-developer mailing list