mirror of https://github.com/apache/activemq.git
avoid ugly npe post endpoint disassociate and add additional trace to recovery
This commit is contained in:
parent
ec249f4dac
commit
f42d56c1f8
|
@ -127,7 +127,10 @@ public class LocalAndXATransaction implements XAResource, LocalTransaction {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Xid[] recover(int arg0) throws XAException {
|
public Xid[] recover(int arg0) throws XAException {
|
||||||
return transactionContext.recover(arg0);
|
Xid[] answer = null;
|
||||||
|
answer = transactionContext.recover(arg0);
|
||||||
|
LOG.trace("{} recover({}) = {}", new Object[]{this, arg0, answer});
|
||||||
|
return answer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void rollback(Xid arg0) throws XAException {
|
public void rollback(Xid arg0) throws XAException {
|
||||||
|
|
|
@ -30,6 +30,7 @@ import javax.jms.Session;
|
||||||
import javax.resource.spi.UnavailableException;
|
import javax.resource.spi.UnavailableException;
|
||||||
import javax.resource.spi.endpoint.MessageEndpoint;
|
import javax.resource.spi.endpoint.MessageEndpoint;
|
||||||
|
|
||||||
|
import org.apache.activemq.ActiveMQConnection;
|
||||||
import org.apache.activemq.ActiveMQQueueSession;
|
import org.apache.activemq.ActiveMQQueueSession;
|
||||||
import org.apache.activemq.ActiveMQSession;
|
import org.apache.activemq.ActiveMQSession;
|
||||||
import org.apache.activemq.ActiveMQTopicSession;
|
import org.apache.activemq.ActiveMQTopicSession;
|
||||||
|
@ -60,7 +61,12 @@ public class ServerSessionPoolImpl implements ServerSessionPool {
|
||||||
private ServerSessionImpl createServerSessionImpl() throws JMSException {
|
private ServerSessionImpl createServerSessionImpl() throws JMSException {
|
||||||
MessageActivationSpec activationSpec = activeMQAsfEndpointWorker.endpointActivationKey.getActivationSpec();
|
MessageActivationSpec activationSpec = activeMQAsfEndpointWorker.endpointActivationKey.getActivationSpec();
|
||||||
int acknowledge = (activeMQAsfEndpointWorker.transacted) ? Session.SESSION_TRANSACTED : activationSpec.getAcknowledgeModeForSession();
|
int acknowledge = (activeMQAsfEndpointWorker.transacted) ? Session.SESSION_TRANSACTED : activationSpec.getAcknowledgeModeForSession();
|
||||||
final ActiveMQSession session = (ActiveMQSession)activeMQAsfEndpointWorker.getConnection().createSession(activeMQAsfEndpointWorker.transacted, acknowledge);
|
final ActiveMQConnection connection = activeMQAsfEndpointWorker.getConnection();
|
||||||
|
if (connection == null) {
|
||||||
|
// redispatch of pending prefetched messages after disconnect can have a null connection
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
final ActiveMQSession session = (ActiveMQSession)connection.createSession(activeMQAsfEndpointWorker.transacted, acknowledge);
|
||||||
MessageEndpoint endpoint;
|
MessageEndpoint endpoint;
|
||||||
try {
|
try {
|
||||||
int batchSize = 0;
|
int batchSize = 0;
|
||||||
|
|
Loading…
Reference in New Issue