Open dmlloyd opened 7 months ago
The following seven production implementations of ClassLoader within Quarkus do not call registerAsParallelCapable during their static initializer:
ClassLoader
registerAsParallelCapable
io.quarkus.bootstrap.runner.RunnerClassLoader
io.quarkus.deployment.dev.filesystem.ReloadableFileManager$JoinClassLoader
io.quarkus.smallrye.openapi.runtime.OpenApiRecorder#classLoaderHack()
io.quarkus.mutiny.reactive.operators.runtime.ReactiveStreamsOperatorsRecorder#classLoaderHack()
io.quarkus.smallrye.reactivestreamsoperators.runtime.ReactiveStreamsOperatorsRecorder#classLoaderHack()
io.quarkus.undertow.runtime.UndertowDeploymentRecorder#createDeployment()
io.quarkus.launcher.JBangIntegration#postBuild()
There are also class loaders used for testing which should be registered (it may have somewhat of an impact on performance):
io.quarkus.test.common.DefineClassVisibleClassLoader
io.quarkus.test.component.QuarkusComponentTestClassLoader
io.quarkus.arc.test.ArcTestClassLoader
Every class loader should call registerAsParallelCapable in their static initializer without exception.
No response
uname -a
ver
java -version
mvnw --version
gradlew --version
/cc @maxandersen (jbang), @quarkusio/devtools (jbang)
I remember we took this call out because @Sanne found that using it resulted in higher memory usage IIRC
There is a complete discussion about this here.
Describe the bug
The following seven production implementations of
ClassLoader
within Quarkus do not callregisterAsParallelCapable
during their static initializer:io.quarkus.bootstrap.runner.RunnerClassLoader
io.quarkus.deployment.dev.filesystem.ReloadableFileManager$JoinClassLoader
io.quarkus.smallrye.openapi.runtime.OpenApiRecorder#classLoaderHack()
io.quarkus.mutiny.reactive.operators.runtime.ReactiveStreamsOperatorsRecorder#classLoaderHack()
io.quarkus.smallrye.reactivestreamsoperators.runtime.ReactiveStreamsOperatorsRecorder#classLoaderHack()
io.quarkus.undertow.runtime.UndertowDeploymentRecorder#createDeployment()
io.quarkus.launcher.JBangIntegration#postBuild()
There are also class loaders used for testing which should be registered (it may have somewhat of an impact on performance):
io.quarkus.test.common.DefineClassVisibleClassLoader
io.quarkus.test.component.QuarkusComponentTestClassLoader
io.quarkus.arc.test.ArcTestClassLoader
Every class loader should call
registerAsParallelCapable
in their static initializer without exception.Expected behavior
No response
Actual behavior
No response
How to Reproduce?
No response
Output of
uname -a
orver
No response
Output of
java -version
No response
Quarkus version or git rev
No response
Build tool (ie. output of
mvnw --version
orgradlew --version
)No response
Additional information
No response