Created attachment 467 [details] Demo code to reproduce the reported behavior I found this problem when using two threads that make calls to the same CORBA object reference and resolve exceptions from these calls using forward request. The forward request triggered by one thread makes the ORB to rebind the connection and so it will ask for the release of the connection. The problem is the connection is released while it is still in use by the other thread. The provided demo is very straightforward. To reproduce the behavior one must only to execute the server application (demo.Server) and the client application (demo.client). The client and server log are attached to the demo (see files client.out and server.out). I'm using JacORB 3.5 but I've also tested with JacORB 3.6 and the problem persists.
The problem is if the client is shared a Object between multiple threads it needs to manage any connection issues i.e. if due to a forward request there is a rebind, then that the ORB cannot know that the object has been shared by a user application across multiple threads. One option here would be to use _duplicate so each thread has its own independent reference. (this bears some similarity to Bug 915)
This relates exactly to the "ExtraCall" case in bug 1012. The Delegate is arbitrarily closing the old connection when rebinding.
As bug 1012 is now fixed I'm closing this. Please reopen if still an issue.