Package: sweethome3d Version: 5.6+dfsg-1 Severity: important Tags: patch After installing the latest version (5.6+dfsg-1 from buster) of Sweethome3D on my laptop (Lenovo X201) I came across the problem that I could not start the program. ---> (to cut short the explanation there is a worksforme solution at the end) Trying to start it from the console revealed that it crashed with an exception:
---------------- java.lang.RuntimeException: cannot load system cursor: CopyDrop.32x32 at sun.awt.X11.XToolkit.lazilyLoadDesktopProperty(XToolkit.java:1541) at java.awt.Toolkit.getDesktopProperty(Toolkit.java:1803) at java.awt.dnd.DragSource.load(DragSource.java:131) at java.awt.dnd.DragSource.<clinit>(DragSource.java:148) at com.eteks.sweethome3d.swing.PlanComponent.<init>(Unknown Source) at com.eteks.sweethome3d.swing.PlanComponent.<init>(Unknown Source) at com.eteks.sweethome3d.swing.MultipleLevelsPlanPanel.createPlanComponent(Unknown Source) at com.eteks.sweethome3d.swing.MultipleLevelsPlanPanel.createComponents(Unknown Source) at com.eteks.sweethome3d.swing.MultipleLevelsPlanPanel.<init>(Unknown Source) at com.eteks.sweethome3d.swing.SwingViewFactory.createPlanView(Unknown Source) at com.eteks.sweethome3d.viewcontroller.PlanController.getView(Unknown Source) at com.eteks.sweethome3d.viewcontroller.PlanController$SelectionState.enter(Unknown Source) at com.eteks.sweethome3d.viewcontroller.PlanController.setState(Unknown Source) at com.eteks.sweethome3d.viewcontroller.PlanController.<init>(Unknown Source) at com.eteks.sweethome3d.viewcontroller.HomeController.getPlanController(Unknown Source) at com.eteks.sweethome3d.swing.HomePane.createActions(Unknown Source) at com.eteks.sweethome3d.swing.HomePane.<init>(Unknown Source) at com.eteks.sweethome3d.swing.SwingViewFactory.createHomeView(Unknown Source) at com.eteks.sweethome3d.viewcontroller.HomeController.getView(Unknown Source) at com.eteks.sweethome3d.HomeFramePane.<init>(Unknown Source) at com.eteks.sweethome3d.HomeFrameController.getView(Unknown Source) at com.eteks.sweethome3d.HomeFrameController.displayView(Unknown Source) at com.eteks.sweethome3d.SweetHome3D$4.collectionChanged(Unknown Source) at com.eteks.sweethome3d.model.CollectionChangeSupport.fireCollectionChanged(Unknown Source) at com.eteks.sweethome3d.model.HomeApplication.addHome(Unknown Source) at com.eteks.sweethome3d.SweetHome3D.showDefaultHomeFrame(Unknown Source) at com.eteks.sweethome3d.SweetHome3D.start(Unknown Source) at com.eteks.sweethome3d.SweetHome3D$5.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: java.awt.AWTException: Exception: class java.lang.IllegalArgumentException Width (0) and height (0) must be non-zero occurred while creating cursor CopyDrop.32x32 at java.awt.Cursor.getSystemCustomCursor(Cursor.java:363) at sun.awt.X11.XToolkit.lazilyLoadDesktopProperty(XToolkit.java:1539) ... 42 more Exception in thread "AWT-EventQueue-1" java.lang.ExceptionInInitializerError at com.eteks.sweethome3d.swing.PlanComponent.<init>(Unknown Source) at com.eteks.sweethome3d.swing.PlanComponent.<init>(Unknown Source) at com.eteks.sweethome3d.swing.MultipleLevelsPlanPanel.createPlanComponent(Unknown Source) at com.eteks.sweethome3d.swing.MultipleLevelsPlanPanel.createComponents(Unknown Source) at com.eteks.sweethome3d.swing.MultipleLevelsPlanPanel.<init>(Unknown Source) at com.eteks.sweethome3d.swing.SwingViewFactory.createPlanView(Unknown Source) at com.eteks.sweethome3d.viewcontroller.PlanController.getView(Unknown Source) at com.eteks.sweethome3d.viewcontroller.PlanController$SelectionState.enter(Unknown Source) at com.eteks.sweethome3d.viewcontroller.PlanController.setState(Unknown Source) at com.eteks.sweethome3d.viewcontroller.PlanController.<init>(Unknown Source) at com.eteks.sweethome3d.viewcontroller.HomeController.getPlanController(Unknown Source) at com.eteks.sweethome3d.swing.HomePane.createActions(Unknown Source) at com.eteks.sweethome3d.swing.HomePane.<init>(Unknown Source) at com.eteks.sweethome3d.swing.SwingViewFactory.createHomeView(Unknown Source) at com.eteks.sweethome3d.viewcontroller.HomeController.getView(Unknown Source) at com.eteks.sweethome3d.HomeFramePane.<init>(Unknown Source) at com.eteks.sweethome3d.HomeFrameController.getView(Unknown Source) at com.eteks.sweethome3d.HomeFrameController.displayView(Unknown Source) at com.eteks.sweethome3d.SweetHome3D$4.collectionChanged(Unknown Source) at com.eteks.sweethome3d.model.CollectionChangeSupport.fireCollectionChanged(Unknown Source) at com.eteks.sweethome3d.model.HomeApplication.addHome(Unknown Source) at com.eteks.sweethome3d.SweetHome3D.showDefaultHomeFrame(Unknown Source) at com.eteks.sweethome3d.SweetHome3D.start(Unknown Source) at com.eteks.sweethome3d.SweetHome3D$5.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: java.lang.RuntimeException: failed to load system cursor: DnD.Cursor.CopyDrop : cannot load system cursor: CopyDrop.32x32 at java.awt.dnd.DragSource.load(DragSource.java:135) at java.awt.dnd.DragSource.<clinit>(DragSource.java:148) ... 39 more --------------- As it turned out the main point is: java.lang.IllegalArgumentException Width (0) and height (0) must be non-zero occurred while creating cursor CopyDrop.32x32 which is a known Java bug: see https://bugs.openjdk.java.net/browse/JDK-8173853 fixed in Java 8u152 and 9 (see https://bugs.launchpad.net/ubuntu/+source/xorg- server/+bug/1232471). But updating Java (actually installing Oracle JVM as OpenJDK 8u152 is still unavailable) did not solved the problem even after changing the alternatives. As it turned out /usr/share/sweethome3d/sweethome3d.sh contains a line: find_java_runtime java6 If I change this to: find_java_runtime the program starts and works as expected. (the used java-wrappers script takes care of using the alternatives version if no specific version is given as a parameter). I don't know if this change causes some problems under other circumstances or the java6 version limitation is needed at all but I think maybe this change could be included. -- System Information: Debian Release: 9.3 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages sweethome3d depends on: ii default-jre [java7-runtime] 2:1.8-58 ii icedtea-netx-common 1.6.2-3.1 ii java-wrappers 0.1.28 ii libbatik-java 1.8-4 ii libfreehep-graphicsio-svg-java 2.1.1-4 ii libitext-java 2.1.7-11 ii libjava3d-java 1.5.2+dfsg-11 ii libsunflow-java 0.07.2.svn396+dfsg-14 ii openjdk-8-jre [java7-runtime] 8u151-b12-1~deb9u1 ii oracle-java8-jre [java7-runtime] 8u152 Versions of packages sweethome3d recommends: ii sweethome3d-furniture 1.6.3-1 sweethome3d suggests no packages.