Skip to content

Commit a40fea2

Browse files
scottmarlowbeikov
authored andcommitted
HHH-15656 use privileged action when invoking ScheduledExecutorService.shutdown
Signed-off-by: Scott Marlow <[email protected]>
1 parent 8f2325e commit a40fea2

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
*/
77
package org.hibernate.engine.jdbc.connections.internal;
88

9+
import java.security.AccessController;
10+
import java.security.PrivilegedAction;
911
import java.sql.Connection;
1012
import java.sql.Driver;
1113
import java.sql.DriverManager;
@@ -28,6 +30,7 @@
2830
import org.hibernate.dialect.Database;
2931
import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
3032
import org.hibernate.internal.util.config.ConfigurationHelper;
33+
import org.hibernate.internal.util.securitymanager.SystemSecurityManager;
3134
import org.hibernate.service.UnknownUnwrapTypeException;
3235
import org.hibernate.service.spi.Configurable;
3336
import org.hibernate.service.spi.ServiceException;
@@ -605,7 +608,22 @@ public void stop() {
605608
CONNECTIONS_MESSAGE_LOGGER.cleaningUpConnectionPool( pool.getUrl() );
606609
active = false;
607610
if ( executorService != null ) {
608-
executorService.shutdown();
611+
PrivilegedAction delegateToPrivilegedAction =
612+
new PrivilegedAction() {
613+
614+
@Override
615+
public Object run() {
616+
executorService.shutdown();
617+
return null;
618+
}
619+
};
620+
if ( SystemSecurityManager.isSecurityManagerEnabled() ) {
621+
AccessController.doPrivileged(
622+
delegateToPrivilegedAction );
623+
}
624+
else {
625+
delegateToPrivilegedAction.run();
626+
}
609627
}
610628
executorService = null;
611629
try {

0 commit comments

Comments
 (0)