CORDA-4120: Disable the URLConnection cache to prevent file handle leaks in ServiceLoader. (#6869)

This commit is contained in:
Adel El-Beik 2021-02-12 09:24:00 -08:00 committed by GitHub
parent 20dbbf008d
commit 1a7401472f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -173,6 +173,7 @@ import org.jolokia.jvmagent.JolokiaServerConfig
import org.slf4j.Logger
import rx.Scheduler
import java.lang.reflect.InvocationTargetException
import java.net.URLConnection
import java.sql.Connection
import java.sql.Savepoint
import java.time.Clock
@ -237,6 +238,7 @@ abstract class AbstractNode<S>(val configuration: NodeConfiguration,
}
quasarExcludePackages(configuration)
disableURLConnectionCache()
if (allowHibernateToManageAppSchema && !configuration.devMode) {
throw ConfigurationException("Hibernate can only be used to manage app schema in development while using dev mode. " +
@ -425,6 +427,13 @@ abstract class AbstractNode<S>(val configuration: NodeConfiguration,
}
}
private fun disableURLConnectionCache() {
object : URLConnection(null) {
override fun connect() {
}
}.defaultUseCaches = false
}
private fun quasarExcludePackages(nodeConfiguration: NodeConfiguration) {
val quasarInstrumentor = Retransform.getInstrumentor()