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