/** * */ package org.drools.grid.internal.responsehandlers; import org.drools.grid.io.Conversation; import org.drools.grid.io.IoWriter; import org.drools.grid.io.Message; import org.drools.grid.io.MessageReceiverHandler; public class BlockingMessageResponseHandler extends AbstractBlockingResponseHandler implements MessageReceiverHandler { private static final int WAIT_TIME = 6000; private volatile Message message; public void messageReceived(Conversation conversation, Message message) { this.message = message; setDone( true ); } public Message getMessage() { return getMessage( WAIT_TIME ); } public Message getMessage(long waitTime) { boolean done = waitTillDone( waitTime ); if ( !done ) { throw new RuntimeException( "Timeout : unable to retrieve Object Id" ); } return this.message; } }