Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update jogl / gluegen to 2.4.0 #2159

Merged
merged 2 commits into from
Mar 22, 2023
Merged

Update jogl / gluegen to 2.4.0 #2159

merged 2 commits into from
Mar 22, 2023

Conversation

ulrichloose
Copy link
Contributor

As the title says...

@breiler
Copy link
Collaborator

breiler commented Feb 16, 2023

Nice, thanks! I just want to build and test this on different platforms before I merge it.

@breiler
Copy link
Collaborator

breiler commented Feb 23, 2023

What platform and Java-version did you try this on?

When running on MacOSX (Big Sur) and Java 13 it failed to initializer OpenGL with the following stack trace:

java.lang.NoSuchFieldError: Version17
	at jogamp.nativewindow.jawt.JAWTUtil.<clinit>(JAWTUtil.java:87)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:416)
	at com.jogamp.nativewindow.NativeWindowFactory$2.run(NativeWindowFactory.java:405)
	at com.jogamp.nativewindow.NativeWindowFactory$2.run(NativeWindowFactory.java:401)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
	at com.jogamp.nativewindow.NativeWindowFactory.initSingleton(NativeWindowFactory.java:401)
	at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1742)
	at com.jogamp.opengl.GLProfile.access$000(GLProfile.java:80)
	at com.jogamp.opengl.GLProfile$1.run(GLProfile.java:239)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
	at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:225)
	at com.jogamp.opengl.GLProfile.getDefaultDevice(GLProfile.java:2052)
	at com.jogamp.opengl.GLCapabilities.<init>(GLCapabilities.java:84)
	at com.willwinder.ugs.nbm.visualizer.Visualizer2TopComponent.makeWindow(Visualizer2TopComponent.java:154)
	at com.willwinder.ugs.nbm.visualizer.Visualizer2TopComponent.componentOpened(Visualizer2TopComponent.java:112)
[catch] at org.openide.windows.WindowManager.componentOpenNotify(WindowManager.java:282)
	at org.netbeans.core.windows.WindowManagerImpl.notifyTopComponentOpened(WindowManagerImpl.java:1182)
	at org.netbeans.core.windows.Central.insertModeOpenedTopComponent(Central.java:816)
	at org.netbeans.core.windows.ModeImpl.addOpenedTopComponent(ModeImpl.java:341)
	at org.netbeans.core.windows.LazyLoader.loadNow(LazyLoader.java:139)
	at org.netbeans.core.windows.LazyLoader.access$400(LazyLoader.java:39)
	at org.netbeans.core.windows.LazyLoader$2.run(LazyLoader.java:106)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

@ulrichloose
Copy link
Contributor Author

I personally use OpenJDK Runtime Environment Temurin-11.0.18+10 (build 11.0.18+10) LTS on my old OS 10.15.7 - which is more up to date than the now outdated version 13 basically because of the LTS status.

Classic runs absolutely error-free and there are a few warnings in the platform version:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.netbeans.ProxyURLStreamHandlerFactory (file:/Users/ulrichloose/Downloads/Universal-G-Code-Sender-2.0.14/ugs-platform/application/target/ugsplatform/platform/lib/boot.jar ) to field java.net.URL.handler
WARNING: Please consider reporting this to the maintainers of org.netbeans.ProxyURLStreamHandlerFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Which can almost be described as normal at Apple when it comes to the unloved Java.

I get the error message:

java.lang.NoSuchFieldError: Version17

a bit suspicious...

Otherwise, unfortunately, I have to pass - I've only come across the official server from jogamp.org and they've "already" reached the final 2.4 version. Personally, I would leave it at the widespread version 11 LTS on the Mac, as I see it, Apple generally no longer wants to seriously support Java and the newer the Java version, the more likely it will not work at all in the end.

The jogl patch version currently used by UGS apparently didn't make it into the final version for Apple and the final 2.4 version doesn't like either Java 17 or Java 13... An ugly decision that you have to make...

@breiler breiler merged commit c2a1f26 into winder:master Mar 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants