Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Abandoned
-
5.6.0
-
None
-
None
Description
Currently the IOExceptionHandler used by the store deals in IOExceptions which clash with the Transport.
On an IOException, the transport closes the connection, so it does not allow store exceptions to propagate back to the client.
This is one of the problems in the intermittent failure of org.apache.activemq.broker.ft.DbRestartJDBCQueueMasterSlaveTest.testSendReceive
We need to separate IOExceptions form MessageStoreExceptions. It may be that a persistence adapter or message store can only throw StoreExcptions that wrap any underlying IOException and the StoreIOExceptionHandler only throws StoreExceptions.
In the case where the StoreIOExceptionHandler does not handle the exception by pause/resume/terminate - the underlying StoreException should be propagated to the client.