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;
    }
Delegate all methods of {@link HBaseUnsafeInternal} and {@link HBaseSignalInternal} so we will
not touch the actual {@code sun.misc.Unsafe} and {@code sun.misc.Signal} classes until we
actually call the methods.
stroom-bytebuffer/src/main/java/stroom/bytebuffer/hbase/HBasePlatformDependent.java