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 <[email protected]>
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();
+ }
}