private static boolean checkUnaligned()

in hbase-unsafe/src/main/java/org/apache/hadoop/hbase/unsafe/HBasePlatformDependent.java [162:183]


  private static boolean checkUnaligned() {
    // When Unsafe itself is not available/accessible consider unaligned as false.
    if (!AVAIL) {
      return false;
    }
    String arch = System.getProperty("os.arch");
    if ("ppc64".equals(arch) || "ppc64le".equals(arch) || "aarch64".equals(arch)) {
      // java.nio.Bits.unaligned() wrongly returns false on ppc (JDK-8165231),
      return true;
    }
    try {
      // Using java.nio.Bits#unaligned() to check for unaligned-access capability
      Class<?> clazz = Class.forName("java.nio.Bits");
      Method m = clazz.getDeclaredMethod("unaligned");
      m.setAccessible(true);
      return (Boolean) m.invoke(null);
    } catch (Exception e) {
      LOG.warn("java.nio.Bits#unaligned() check failed." +
        "Unsafe based read/write of primitive types won't be used", e);
    }
    return false;
  }