This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/aries-cdi.git
The following commit(s) were added to refs/heads/master by this push: new 9242268 [ARIES-2017] reduce unsafe warnings for owb impl 9242268 is described below commit 9242268d9c0268dccb5fdcedaed383af5db92b25 Author: Romain Manni-Bucau <rmannibu...@gmail.com> AuthorDate: Wed Oct 21 17:02:23 2020 +0200 [ARIES-2017] reduce unsafe warnings for owb impl --- .../org/apache/aries/cdi/owb/core/OSGiDefiningClassService.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cdi-owb/src/main/java/org/apache/aries/cdi/owb/core/OSGiDefiningClassService.java b/cdi-owb/src/main/java/org/apache/aries/cdi/owb/core/OSGiDefiningClassService.java index a04ae37..57c6444 100644 --- a/cdi-owb/src/main/java/org/apache/aries/cdi/owb/core/OSGiDefiningClassService.java +++ b/cdi-owb/src/main/java/org/apache/aries/cdi/owb/core/OSGiDefiningClassService.java @@ -21,11 +21,9 @@ import org.apache.webbeans.proxy.Unsafe; import org.apache.webbeans.spi.DefiningClassService; public class OSGiDefiningClassService implements DefiningClassService { - private final Unsafe unsafe; private final ClassLoaders classloaders; public OSGiDefiningClassService(final WebBeansContext context) { - this.unsafe = new Unsafe(); this.classloaders = context.getService(ClassLoaders.class); } @@ -52,7 +50,7 @@ public class OSGiDefiningClassService implements DefiningClassService { if (classLoader != classloaders.bundleLoader) { // todo: log a warning? } - return unsafe.defineAndLoadClass(classLoader, name, bytes); + return UnsafeFacade.INSTANCE.defineAndLoadClass(classLoader, name, bytes); } return (Class<T>) classloaders.loader.getOrRegister(name, bytes, proxied.getPackage(), proxied.getProtectionDomain()); } @@ -70,4 +68,9 @@ public class OSGiDefiningClassService implements DefiningClassService { this.loader = loader; } } + + // lazy init unsafe, not needed for a lot of apps and avoids warnings on java > 8 + private static class UnsafeFacade { + private static final Unsafe INSTANCE = new Unsafe(); + } }