Bug#885383: sweethome3d: crashes during start with Cursor exception
Nagy Attila
tylla_at_bugs.debian.org at tylla.hu
Tue Dec 26 16:26:07 UTC 2017
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.
More information about the pkg-java-maintainers
mailing list