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
|
@ -294,18 +294,18 @@ public class ActiveMQEndpointWorker {
|
|||
|
||||
private void connect() {
|
||||
synchronized ( connectWork ) {
|
||||
if (!running) {
|
||||
return;
|
||||
}
|
||||
if (!running) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
workManager.scheduleWork(connectWork, WorkManager.INDEFINITE, null, null);
|
||||
} catch (WorkException e) {
|
||||
running = false;
|
||||
LOG.error("Work Manager did not accept work: ", e);
|
||||
try {
|
||||
workManager.scheduleWork(connectWork, WorkManager.INDEFINITE, null, null);
|
||||
} catch (WorkException e) {
|
||||
running = false;
|
||||
LOG.error("Work Manager did not accept work: ", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -127,7 +127,10 @@ public class LocalAndXATransaction implements XAResource, LocalTransaction {
|
|||
}
|
||||
|
||||
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 {
|
||||
|
|
|
@ -30,6 +30,7 @@ import javax.jms.Session;
|
|||
import javax.resource.spi.UnavailableException;
|
||||
import javax.resource.spi.endpoint.MessageEndpoint;
|
||||
|
||||
import org.apache.activemq.ActiveMQConnection;
|
||||
import org.apache.activemq.ActiveMQQueueSession;
|
||||
import org.apache.activemq.ActiveMQSession;
|
||||
import org.apache.activemq.ActiveMQTopicSession;
|
||||
|
@ -60,7 +61,12 @@ public class ServerSessionPoolImpl implements ServerSessionPool {
|
|||
private ServerSessionImpl createServerSessionImpl() throws JMSException {
|
||||
MessageActivationSpec activationSpec = activeMQAsfEndpointWorker.endpointActivationKey.getActivationSpec();
|
||||
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;
|
||||
try {
|
||||
int batchSize = 0;
|
||||
|
|
Loading…
Reference in New Issue