Skip to content

Errors due to inaccessible modules (reflections?) #1753

@gramian

Description

@gramian

ArcadeDB Version:

24.10.1 & 24.11.1

OS and JDK Version:

OpenJDK 17 (Ubuntu and MacOS)

Expected behavior

No error

Actual behavior

Couldn't disable close on interrupt
java.lang.reflect.InaccessibleObjectException: Unable to make field private sun.nio.ch.Interruptible java.nio.channels.spi.AbstractInterruptibleChannel.interruptor accessible: module java.base does not "opens java.nio.channels.spi" to unnamed module @1c72da34
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
	at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
	at com.arcadedb.engine.PaginatedComponentFile.doNotCloseOnInterrupt(PaginatedComponentFile.java:216)
	at com.arcadedb.engine.PaginatedComponentFile.open(PaginatedComponentFile.java:208)
	at com.arcadedb.engine.ComponentFile.<init>(ComponentFile.java:50)
	at com.arcadedb.engine.PaginatedComponentFile.<init>(PaginatedComponentFile.java:49)
	at com.arcadedb.engine.FileManager.getOrCreateFile(FileManager.java:188)
	at com.arcadedb.engine.PaginatedComponent.<init>(PaginatedComponent.java:57)
	at com.arcadedb.engine.PaginatedComponent.<init>(PaginatedComponent.java:47)
	at com.arcadedb.engine.PaginatedComponent.<init>(PaginatedComponent.java:42)
	at com.arcadedb.engine.Dictionary.<init>(Dictionary.java:61)
	at com.arcadedb.schema.LocalSchema.create(LocalSchema.java:138)
	at com.arcadedb.database.LocalDatabase.openInternal(LocalDatabase.java:1782)
	at com.arcadedb.database.LocalDatabase.create(LocalDatabase.java:207)
	at com.arcadedb.database.DatabaseFactory.create(DatabaseFactory.java:90)
	at com.arcadedb.console.Console.executeCreateDatabase(Console.java:444)
	at com.arcadedb.console.Console.execute(Console.java:257)
	at com.arcadedb.console.Console.parse(Console.java:742)
	at com.arcadedb.console.Console.interactiveMode(Console.java:131)
	at com.arcadedb.console.Console.execute(Console.java:185)
	at com.arcadedb.console.Console.main(Console.java:148)

Steps to reproduce

Using the console:

CREATE DATABASE test

or just start the server.

Fix

Add --add-opens java.base/java.nio.channels.spi=ALL-UNNAMED to the JAVA_OPTS environment variable to prevent this behavior. Maybe this option should be added to the console.sh and server.sh scripts.

Notably, this very option is already in the root pom.xml.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions