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

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

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 5.1.6.FINAL
    • Fix Version/s: 5.2.0.Alpha4, 5.2.0.Final
    • Component/s: None
    • Labels:
      None

      Description

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

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  galder.zamarreno Galder ZamarreƱo
                  Reporter:
                  snazy Robert Stupp
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: