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();
+       }
 }

Reply via email to