Please report new issues athttps://github.com/DOCGroup
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.
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.
Created attachment 237 [details] PI / ServantLocator regression test.
Proper interceptor flow cannot occur in all circumstances as long as the bug described bug 663 remains unresolved.
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.
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
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
still valid
still failing with x.5.10