public synchronized Object getResponse() {
            try {
                while(!received) {
                    wait();                
                }
            } catch( InterruptedException e ) {
                throw new RuntimeException("Interrupted waiting for response to:" + msg, e);
            }
            if( error != null ) {
                throw new RuntimeException("Error calling remote procedure:" + msg + "\n" + error);
            }
            if( exception != null ) {
                throw new RuntimeException("Error calling remote procedure:" + msg, exception);
            } 
            return response;              
        }
Sort of like a Future, holds a locked reference to a response
 until the remote call has completed and returned a response.
jme3-networking/src/main/java/com/jme3/network/service/rpc/RpcConnection.java