- We have TestA: this test sends the message in the
testAQueue, and checks some response after it was processed
- We have TestB: this test invokes http endpoint and waits for the message in the
testAQueue
When we run TestA, we start JMS Listener for the testAQueue. After the test, we stop the listener
When we run TestB, sometimes message in the testAQueue does not appear immediately, but appears after WAIT_TIME_SECONDS
Both tests should run one after another.
After some debugging, it appears that SQSMessageConsumerPrefetch tries to fetch the message even when running = false
I've put a non-suspending breakpoint here: https://github.com/awslabs/amazon-sqs-java-messaging-lib/blob/master/src/main/java/com/amazon/sqs/javamessaging/SQSMessageConsumerPrefetch.java#L261
to print the state of the running flag. When the error I've described is hit, the flag running is in false state.
testAQueue, and checks some response after it was processedtestAQueueWhen we run TestA, we start JMS Listener for the
testAQueue. After the test, we stop the listenerWhen we run TestB, sometimes message in the
testAQueuedoes not appear immediately, but appears afterWAIT_TIME_SECONDSBoth tests should run one after another.
After some debugging, it appears that
SQSMessageConsumerPrefetchtries to fetch the message even whenrunning = falseI've put a non-suspending breakpoint here: https://github.com/awslabs/amazon-sqs-java-messaging-lib/blob/master/src/main/java/com/amazon/sqs/javamessaging/SQSMessageConsumerPrefetch.java#L261
to print the state of the
runningflag. When the error I've described is hit, the flagrunningis infalsestate.