public static boolean compareAndSwapObject(Object o, long offset,
                                                Object expected,
                                                Object x) {
    try {
      return (boolean)compareAndSwapObject.invokeExact(o, offset, expected, x);
    }
    catch (Throwable throwable) {
      throw new RuntimeException(throwable);
    }
  }
public static boolean compareAndSwapObject(Object o, long offset,
                                                Object expected,
                                                Object x)