ARTEMIS-756 disabling finalize check over CDI Connection Factories

This commit is contained in:
Clebert Suconic 2016-10-24 10:37:22 -04:00
parent 2ee742bd75
commit e71f3d8a34
3 changed files with 17 additions and 2 deletions

View File

@ -572,7 +572,9 @@ public class ActiveMQConnection extends ActiveMQConnectionForContextImpl impleme
@Override
protected final void finalize() throws Throwable {
if (!closed) {
if (this.factoryReference.isFinalizeChecks()) {
ActiveMQJMSClientLogger.LOGGER.connectionLeftOpen(creationStack);
}
close();
}

View File

@ -83,6 +83,8 @@ public class ActiveMQConnectionFactory implements ConnectionFactoryOptions, Exte
private String deserializationWhiteList;
private boolean finalizeChecks;
@Override
public void writeExternal(ObjectOutput out) throws IOException {
URI uri = toURI();
@ -148,6 +150,16 @@ public class ActiveMQConnectionFactory implements ConnectionFactoryOptions, Exte
}
}
public ActiveMQConnectionFactory disableFinalizeChecks() {
this.finalizeChecks = false;
return this;
}
public boolean isFinalizeChecks() {
return finalizeChecks;
}
@Override
public String getDeserializationBlackList() {
return deserializationBlackList;

View File

@ -97,6 +97,7 @@ public class ConnectionFactoryProvider {
activeMQConnectionFactory.setUser(configuration.getUsername());
activeMQConnectionFactory.setPassword(configuration.getPassword());
}
return activeMQConnectionFactory;
// The CF will probably be GCed since it was injected, so we disable the finalize check
return activeMQConnectionFactory.disableFinalizeChecks();
}
}