Project

General

Profile

Bug #1886

Remove support for long-broken Topology Display tool

Added by Matthias Diener about 1 year ago. Updated about 1 year ago.

Status:
Merged
Priority:
Normal
Category:
-
Target version:
-
Start date:
04/25/2018
Due date:
% Done:

0%


Description

When trying to open Tools->Topology Display, the following message appears on the terminal:

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no J3D in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at javax.media.j3d.MasterControl$22.run(MasterControl.java:889)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:886)
    at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:229)
    at javax.media.j3d.Canvas3D.<clinit>(Canvas3D.java:3533)
    at projections.Tools.TopologyDisplay.TopologyDisplayWindow.<init>(TopologyDisplayWindow.java:199)
    at projections.gui.MainMenuManager.actionPerformed(MainMenuManager.java:448)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886)
    at java.awt.Component.processMouseEvent(Component.java:6533)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6298)
    at java.awt.Container.processEvent(Container.java:2237)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2295)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
    at java.awt.Container.dispatchEventImpl(Container.java:2281)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    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.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    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)

Tested with JDK8/10 on Linux and Mac.

History

#2 Updated by Sam White about 1 year ago

  • Assignee set to Matthias Diener
  • Status changed from New to Implemented
  • Subject changed from Topology Display crashes due to missing J3D library to Remove support for long-broken Topology Display tool

#3 Updated by Sam White about 1 year ago

Follow-up to remove .topo file generation still needs to be done, as noted in the gerrit patch.

#4 Updated by Matthias Diener about 1 year ago

Are the .topo files used anywhere outside Projections?

#5 Updated by Sam White about 1 year ago

I don't think so. The only other thing that came to mind was BigSim, since it can simulate different network topologies, but that doesn't appear to use ".topo" anywhere.

#6 Updated by Eric Bohm about 1 year ago

The .topo files were only used for display and analysis in topology aware studies. AFAIK. When it worked, the feature was enabled if projections was built with java3d support and the application was run on a machine that had a 3D topology that could be extracted.

#7 Updated by Ronak Buch about 1 year ago

I think all of this will still work if things are run as Eric said. Using a different version of the j3d library and getting a reasonably close version of libjava3d, I was able to get a window to appear, but it then crashed, likely because the topo file was malformed (seemingly because it wasn't a 3D topology). I think instead of just taking the whole thing out, we can check to see if the j3d library can be loaded or not at startup and toggle the display of the topology tool based on the results of that.

#8 Updated by Sam White about 1 year ago

  • Status changed from Implemented to Merged

#9 Updated by Ronak Buch about 1 year ago

Ronak Buch wrote:

I think all of this will still work if things are run as Eric said. Using a different version of the j3d library and getting a reasonably close version of libjava3d, I was able to get a window to appear, but it then crashed, likely because the topo file was malformed (seemingly because it wasn't a 3D topology). I think instead of just taking the whole thing out, we can check to see if the j3d library can be loaded or not at startup and toggle the display of the topology tool based on the results of that.

As a matter of record, rather than doing this, it seems that this tool was of limited utility for modern/future use, so it was completely removed rather than merely disabling it if the environment isn't correct.

#10 Updated by Matthias Diener about 1 year ago

Followup patch to remove .topo file creation: https://charm.cs.illinois.edu/gerrit/#/c/charm/+/4171/

Also available in: Atom PDF