Skip to content

sun.misc.Unsafe::staticFieldOffset (java +9) #78

@melhalees

Description

@melhalees

Hello,

I have face this warning while using modelmapper 3.2.4.

Image

And I noticed they depend on your package

Image

The root cause:
src/main/java/net/jodah/typetools/TypeResolver.java (line: 110)

Field implLookupField = MethodHandles.Lookup.class.getDeclaredField("IMPL_LOOKUP");
long implLookupFieldOffset = unsafe.staticFieldOffset(implLookupField);
Object lookupStaticFieldBase = unsafe.staticFieldBase(implLookupField);
MethodHandles.Lookup implLookup = (MethodHandles.Lookup) unsafe.getObject(lookupStaticFieldBase, implLookupFieldOffset);

The suggested solution which works java v9^

import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.reflect.Field;

Field implLookupField = MethodHandles.Lookup.class.getDeclaredField("IMPL_LOOKUP");
VarHandle implLookupHandle = MethodHandles.privateLookupIn(MethodHandles.Lookup.class, MethodHandles.lookup())
    .findVarHandle(MethodHandles.Lookup.class, "IMPL_LOOKUP", MethodHandles.Lookup.class);
MethodHandles.Lookup implLookup = (MethodHandles.Lookup) implLookupHandle.get();

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions