I am working with a multithreaded homegrown multi-module app in my new job.  We use the the Thrift protocol to communicate RPC calls between different stand-alone applications in a distributed system.  One of them listens on multiple ports and I just noticed that it actually makes an RPC call to itself from one thread invoked from one socket it listens to (web service call) to another port within the same app.  I verified that it could accomplish the same thing if it just went and directly called the method that the remote procedure ultimately invokes as it is all within the same application, same JVM.  To make it even more mysterious, the call is completely synchronous, i.e. no callbacks involved.  The first thread totally sits and waits until it makes a call across the wire to itself and comes back.Now, I am perplexed why anybody would do it this way.  It seems like calling somebody on the phone that sits in the same room as you do.  Can anybody provide an explanation why the developer before me would come up with the above mentioned model?  Maybe there is a reason and I am missing something.
Why would Java app make RPC call to itself?
java;multithreading;asynchronous programming;rpc;thrift