Bug 1592

Summary: postinvoke is called after the send_reply/send_other/send_exception interception points
Product: TAO Reporter: Hans Bos <hans.bos>
Component: Portable InterceptorsAssignee: DOC Center Support List (internal) <tao-support>
Status: ASSIGNED ---    
Severity: normal    
Priority: P3    
Version: 1.6.9   
Hardware: x86   
OS: Windows 2000   
Bug Depends on: 663, 1369    
Bug Blocks: 2511    
Attachments: PI / ServantLocator regression test.

Description Hans Bos 2003-09-11 04:21:53 CDT
The postinvoke of a request is called after the send_reply interceptor for that 
request is called.

In the Corba specification 3.0.1 at 21.3.10.2, the order for calling filters 
and pre-/postinvoke is:

1. ServerRequestInterceptor.receive_request_service_contexts;
2. ServantLocator.preinvoke;
3. ServerRequestInterceptor.receive_request
4. the operation
5. ServantLocator.postinvoke;
6. ServerRequestInterceptor send_reply, send_exception, or send_other.

In TAO 5 and 6 are exchanged.
Comment 1 Ossama Othman 2003-09-22 13:23:33 CDT
I've written a regression test that confirms this bug.  It will be fixed once
the code refactoring CVS branch is merged with the HEAD branch since the changes
on that branch will nullify any changes I make.
Comment 2 Ossama Othman 2003-09-22 13:26:57 CDT
Created attachment 237 [details]
PI / ServantLocator regression test.
Comment 3 Ossama Othman 2003-09-22 16:18:08 CDT
Proper interceptor flow cannot occur in all circumstances as long as the bug
described bug 663 remains unresolved.
Comment 4 Johnny Willemsen 2005-03-24 04:28:34 CST
Ossama, do you have the test on your system available for a commit or do we 
need to get it from the attachment? With all server code refactoring it seems 
to me that it should be doable to fix this.
Comment 5 Johnny Willemsen 2007-02-21 08:24:14 CST
added regression to the repo, this is not fixed yet.

Wed Feb 21 14:21:12 UTC 2007  Johnny Willemsen  <jwillemsen@remedy.nl>

        * tests/POA/Bug_1592_Regression/*:
          New test program for bug 1592, not fixed yet.

        *
tests/POA/Excessive_Object_Deactivations/Excessive_Object_Deactivations.mpc:
        * tests/POA/MT_Servant_Locator/MT_Servant_Locator.mpc:
          Simplified
Comment 6 Johnny Willemsen 2007-02-21 08:43:02 CST
ServantLocator.postinvoke is called from ~Servant Upcall, the methods from step
6 are invoked around the invocation, this will need some structural changes in
the portableserver library
Comment 7 Johnny Willemsen 2007-05-21 06:56:02 CDT
still valid
Comment 8 Johnny Willemsen 2007-08-27 08:31:23 CDT
still failing with x.5.10
Comment 9 Johnny Willemsen 2008-02-18 13:50:01 CST
still valid
Comment 10 Johnny Willemsen 2009-06-19 04:32:31 CDT
still valid