Skip to content

member is private to package: cool.houge.mahu.admin.TestTransactionBase.database/io.ebean.Database/getField, from public Lookup #811

Closed
@kevin70

Description

@kevin70

Java Version

PS C:\Users\kzou2\.p\mahu> java --version
openjdk 23 2024-09-17
OpenJDK Runtime Environment (build 23+37-2369)
OpenJDK 64-Bit Server VM (build 23+37-2369, mixed mode, sharing)

Avaje Inject Version

avaje-inject-11.4

Exception

java.lang.IllegalAccessException: member is private to package: cool.houge.mahu.admin.TestTransactionBase.database/io.ebean.Database/getField, from public Lookup
	at java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:889)
	at java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:3999)
	at java.base/java.lang.invoke.MethodHandles$Lookup.checkField(MethodHandles.java:3945)
	at java.base/java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleCommon(MethodHandles.java:4198)
	at java.base/java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleNoSecurityManager(MethodHandles.java:4188)
	at java.base/java.lang.invoke.MethodHandles$Lookup.unreflectVarHandle(MethodHandles.java:3694)
	at io.avaje.inject.test.Lookups.getVarhandle(Lookups.java:36)
	at io.avaje.inject.test.MetaReader.newTarget(MetaReader.java:157)
	at io.avaje.inject.test.MetaReader.readField(MetaReader.java:133)
	at io.avaje.inject.test.MetaReader.<init>(MetaReader.java:50)
	at io.avaje.inject.test.MetaInfo.<init>(MetaInfo.java:16)
	at io.avaje.inject.test.InjectJunitExtension.createMetaInfo(InjectJunitExtension.java:110)
	at io.avaje.inject.test.InjectJunitExtension.beforeAll(InjectJunitExtension.java:29)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1597)

TestTransactionBase.java

public abstract class TestTransactionBase extends TestBase {

    @Inject
    Database database;

    protected boolean rollbackOnly = true;
    private Transaction transaction;

    @BeforeEach
    void before() {
        transaction = db().beginTransaction();
    }

    @AfterEach
    void after() {
        if (rollbackOnly) {
            transaction.rollback();
        } else {
            transaction.commit();
        }
    }

    /// 禁用事务自动回滚
    protected void disableRollback() {
        this.rollbackOnly = false;
    }

    protected Database db() {
        return database;
    }
}

TestBase

@InjectTest
public class TestBase {}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions