8059588: deadlock in java/io/PrintStream when verbose javax.net.debug flags are set
Reviewed-by: mullan
This commit is contained in:
parent
f2bf96030e
commit
c189249408
@ -90,6 +90,7 @@ final class SessionManager {
|
|||||||
|
|
||||||
// maximum number of active sessions during this invocation, for debugging
|
// maximum number of active sessions during this invocation, for debugging
|
||||||
private int maxActiveSessions;
|
private int maxActiveSessions;
|
||||||
|
private Object maxActiveSessionsLock;
|
||||||
|
|
||||||
// flags to use in the C_OpenSession() call
|
// flags to use in the C_OpenSession() call
|
||||||
private final long openSessionFlags;
|
private final long openSessionFlags;
|
||||||
@ -113,6 +114,9 @@ final class SessionManager {
|
|||||||
this.token = token;
|
this.token = token;
|
||||||
this.objSessions = new Pool(this);
|
this.objSessions = new Pool(this);
|
||||||
this.opSessions = new Pool(this);
|
this.opSessions = new Pool(this);
|
||||||
|
if (debug != null) {
|
||||||
|
maxActiveSessionsLock = new Object();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns whether only a fairly low number of sessions are
|
// returns whether only a fairly low number of sessions are
|
||||||
@ -212,7 +216,7 @@ final class SessionManager {
|
|||||||
Session session = new Session(token, id);
|
Session session = new Session(token, id);
|
||||||
activeSessions.incrementAndGet();
|
activeSessions.incrementAndGet();
|
||||||
if (debug != null) {
|
if (debug != null) {
|
||||||
synchronized(this) {
|
synchronized(maxActiveSessionsLock) {
|
||||||
if (activeSessions.get() > maxActiveSessions) {
|
if (activeSessions.get() > maxActiveSessions) {
|
||||||
maxActiveSessions = activeSessions.get();
|
maxActiveSessions = activeSessions.get();
|
||||||
if (maxActiveSessions % 10 == 0) {
|
if (maxActiveSessions % 10 == 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user