Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-2237

ConcurrentMapFactory does not allow use of V8 maps with Sun JDK 6

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 5.2.0.Final
    • 5.1.6.FINAL
    • None
    • None

      The implementation in ConcurrentMapFactory checks for existance of a Sun JVM private class. But although a Sun JDK/JRE 6 is used, the check fails (wrong class com.sun.unsafe.Unsafe instead of sun.misc.Unsafe).

      Sould use sun.misc.Unsafe

         static {
            boolean sunIncompatibleJvm;
            boolean jdk8;
            boolean allowExperimentalMap = Boolean.getBoolean("infinispan.unsafe.allow_jdk8_chm");
      
            try {
               Class.forName("com.sun.unsafe.Unsafe");
               sunIncompatibleJvm = false;
            } catch (ClassNotFoundException e) {
               sunIncompatibleJvm = true;
            }
            
            try {
               Class.forName("java.util.concurrent.atomic.LongAdder");
               jdk8 = true;
            } catch (ClassNotFoundException e) {
               jdk8 = false;
            }
      
            if (jdk8 || sunIncompatibleJvm || !allowExperimentalMap)
               MAP_CREATOR = new JdkConcurrentMapCreator();
            else
               MAP_CREATOR = new BackportedV8ConcurrentMapCreator();
         }
      

              rh-ee-galder Galder ZamarreƱo
              snazy Robert Stupp (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: