netbeans icon indicating copy to clipboard operation
netbeans copied to clipboard

New NB Platform application throws java.lang.reflect.InaccessibleObjectException

Open juanotto opened this issue 3 months ago • 0 comments

Apache NetBeans version

Apache NetBeans 27

What happened

When a new Netbeans Platform Application is created, running it throws java.lang.reflect.InaccessibleObjectException.

The maven archetype includes jpms-flags for the app module but they don't seem to apply to runtime. Taking out the jpms-flag for java breaks the build, but taking it out or adding it back doesn't seem to have any effect when running the application.

Stacktrace when running the application includes:

SEVERE: No way to find original stream handler for jar protocol
java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.net.URLStreamHandler java.net.URL.handler accessible: module java.base does not "opens java.net" to unnamed module @3b07d329
	at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:353)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:329)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:277)
	at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:179)
	at java.base/java.lang.reflect.Field.setAccessible(Field.java:173)
	at org.netbeans.ProxyURLStreamHandlerFactory.register(ProxyURLStreamHandlerFactory.java:59)
	at org.netbeans.JarClassLoader.<clinit>(JarClassLoader.java:143)
	at org.netbeans.MainImpl.execute(MainImpl.java:166)
	at org.netbeans.MainImpl.main(MainImpl.java:60)
	at org.netbeans.Main.main(Main.java:58)

The application can run, it just has no access to java.net.

Language / Project Type / NetBeans Component

Netbeans Platform

How to reproduce

Create a new Netbeans application, build and run it.

Note: you may need to take out the security-manager flag as per https://github.com/apache/netbeans-mavenutils-archetype-netbeans-platform-app-archetype/pull/19

Did this work correctly in an earlier version?

No / Don't know

Operating System

Both Windows 10 and Ubuntu 24

JDK

Oracle jdk-24

Apache NetBeans packaging

Apache NetBeans platform

Anything else

I created a PR that solves the issue, but I suspect there are better ways. See https://github.com/apache/netbeans-mavenutils-archetype-netbeans-platform-app-archetype/pull/20

I couldn't find information on who processes the jpms-flags used in the pom. That may be a better place to actually use the same flags on runtime. Is the nbm-maven-plugin?

Are you willing to submit a pull request?

Yes

juanotto avatar Oct 11 '25 09:10 juanotto