linuxmint / cinnamon

A Linux desktop featuring a traditional layout, built from modern technology and introducing brand new innovative features.
GNU General Public License v2.0
4.5k stars 732 forks source link

sweethome3d broken due to Java 3D issue (can be fixed with Java parameter) #10611

Closed jastram closed 2 years ago

jastram commented 2 years ago
 * Cinnamon version (cinnamon --version): 5.0.7
   - Please specify if you are using the daily builds PPA: No
 * Distribution - Mint 20.2
 * Graphics hardware *and* driver used: NVIDIA Corporation TU116M [GeForce GTX 1660 Ti Mobile] - nvidia-driver-495
 * 64 bit
 * Java: openjdk version "14.0.2" 2020-07-14

Dear awesome Cinnamon-Team - Thank you for your great work. The following bug report contains a solution, but I just don't know how to fix things for others. Keep up the amazing work!

Issue Software Package "sweethome3d" is not showing 3D-View. When launched from the console, a Java stacktrace is shown. Full stacktrace below, key line indicates a 3D graphics issue:

javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D

Steps to reproduce

Expected behaviour

Other information

I solved this by adding the following line to /usr/share/sweethome3d/sweethome3d.sh

-Dcom.eteks.sweethome3d.j3d.useOffScreen3DView=true

Of course, this is likely specific to my graphics configuration.

I found this solution here: http://www.sweethome3d.com/support/forum/viewthread_thread,8338

Stacktrace

Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D
    at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source)
    at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source)
    at com.eteks.sweethome3d.swing.HomeComponent3D.createComponent3D(Unknown Source)
    at com.eteks.sweethome3d.swing.HomeComponent3D.access$200(Unknown Source)
    at com.eteks.sweethome3d.swing.HomeComponent3D$1.ancestorAdded(Unknown Source)
    at java.desktop/javax.swing.AncestorNotifier.fireAncestorAdded(AncestorNotifier.java:86)
    at java.desktop/javax.swing.AncestorNotifier.componentShown(AncestorNotifier.java:193)
    at java.desktop/java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:188)
    at java.desktop/java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:187)
    at java.desktop/java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:187)
    at java.desktop/java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:187)
    at java.desktop/java.awt.Component.processComponentEvent(Component.java:6467)
    at java.desktop/java.awt.Component.processEvent(Component.java:6415)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Window.processEvent(Window.java:2049)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
    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(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    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)
Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D
    at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source)
    at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source)
    at com.eteks.sweethome3d.swing.HomeComponent3D.createComponent3D(Unknown Source)
    at com.eteks.sweethome3d.swing.HomeComponent3D.access$200(Unknown Source)
    at com.eteks.sweethome3d.swing.HomeComponent3D$1.ancestorAdded(Unknown Source)
    at java.desktop/javax.swing.AncestorNotifier.fireAncestorAdded(AncestorNotifier.java:86)
    at java.desktop/javax.swing.AncestorNotifier.componentShown(AncestorNotifier.java:193)
    at java.desktop/java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:188)
    at java.desktop/java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:187)
    at java.desktop/java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:187)
    at java.desktop/java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:187)
    at java.desktop/java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:187)
    at java.desktop/java.awt.Component.processComponentEvent(Component.java:6467)
    at java.desktop/java.awt.Component.processEvent(Component.java:6415)
    at java.desktop/java.awt.Container.processEvent(Container.java:2263)
    at java.desktop/java.awt.Window.processEvent(Window.java:2049)
    at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011)
    at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
    at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
    at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
    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(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
    at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    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)
leigh123linux commented 2 years ago

Report the issue against sweethome3d

jastram commented 2 years ago

Hi there,

The main reason I reported it here was the following statement in the forum link I posted:

Switching to icewm, for example, I get full 3D functionality.

This implies that this is a configuration issue and not a bug outright.

Either way, I also reported it to the sweethome3d-team. Here is the link to the bug, for reference:

https://sourceforge.net/p/sweethome3d/bugs/1078/

Hopefully, having recorded all this will help someone eventually.