Merge pull request #740 from jbonofre/AMQ-8252

[AMQ-8252] Introduce stackTraceEnabled flag on transport connector
This commit is contained in:
Jean-Baptiste Onofré 2022-01-15 06:46:00 +01:00 committed by GitHub
commit 8fd13a349f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 7 deletions

View File

@ -240,19 +240,18 @@ public class TransportConnection implements Connection, Task, CommandVisitor {
if (TRANSPORTLOG.isDebugEnabled()) {
TRANSPORTLOG.debug("{} failed: {}", this, e.getMessage(), e);
} else if (TRANSPORTLOG.isWarnEnabled() && !suppressed(e)) {
TRANSPORTLOG.warn("{} failed", this, e);
if (connector.isDisplayStackTrace()) {
TRANSPORTLOG.warn("{} failed", this, e);
} else {
TRANSPORTLOG.warn("{} failed: {}", this, e.getMessage());
}
}
stopAsync(e);
}
}
private boolean suppressed(IOException e) {
return (isStomp() || !connector.isWarnOnRemoteClose()) && ((e instanceof SocketException && e.getMessage().indexOf("reset") != -1) || e instanceof EOFException);
}
private boolean isStomp() {
URI uri = connector.getUri();
return uri != null && uri.getScheme() != null && uri.getScheme().indexOf("stomp") != -1;
return (!connector.isWarnOnRemoteClose()) && ((e instanceof SocketException && e.getMessage().indexOf("reset") != -1) || e instanceof EOFException);
}
/**

View File

@ -78,6 +78,7 @@ public class TransportConnector implements Connector, BrokerServiceAware {
private PublishedAddressPolicy publishedAddressPolicy = new PublishedAddressPolicy();
private boolean allowLinkStealing = false;
private boolean warnOnRemoteClose = false;
private boolean displayStackTrace = false;
LinkedList<String> peerBrokers = new LinkedList<String>();
@ -664,4 +665,12 @@ public class TransportConnector implements Connector, BrokerServiceAware {
public void setWarnOnRemoteClose(boolean warnOnRemoteClose) {
this.warnOnRemoteClose = warnOnRemoteClose;
}
public boolean isDisplayStackTrace() {
return displayStackTrace;
}
public void setDisplayStackTrace(boolean displayStackTrace) {
this.displayStackTrace = displayStackTrace;
}
}