Author: cwiklik Date: Fri Mar 4 15:54:43 2011 New Revision: 1078025 URL: http://svn.apache.org/viewvc?rev=1078025&view=rev Log: UIMA-2081 Added delay before sending getMeta request to remote service to enable broker to 'finalize' creation of a temp reply queue.
Modified: uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java Modified: uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java?rev=1078025&r1=1078024&r2=1078025&view=diff ============================================================================== --- uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java (original) +++ uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java Fri Mar 4 15:54:43 2011 @@ -710,6 +710,17 @@ public class BaseUIMAAsynchronousEngine_ "UIMAJMS_client_interrupted_while_acquiring_getmeta_semaphore__WARNING"); } } + // Add a delay of 100ms before sending a request for metadata to remote service. + // This is done to give the broker enough time to 'finalize' creation of + // temp reply queue. It's been observed (on MAC OS only) that AMQ + // broker QueueSession.createTemporaryQueue() call is not synchronous. Meaning, + // return from createTemporaryQueue() does not guarantee immediate availability + // of the temp queue. It seems like this operation is asynchronous, causing: + // "InvalidDestinationException: Cannot publish to a deleted Destination..." + // on the service side when it tries to reply to the client. + try { + wait(100); + } catch( InterruptedException e) {} sendMetaRequest(); waitForMetadataReply(); if (abort || !running) {