This is using https://rakudave.synology.me/jnetmap/jnetmap-0.5.6-728_all.deb on linux Mint 21.3
nd when I ask java --version I am told:
openjdk 11.0.23 2024-04-16 LTS
OpenJDK Runtime Environment Zulu11.72+19-CA (build 11.0.23+9-LTS)
OpenJDK 64-Bit Server VM Zulu11.72+19-CA (build 11.0.23+9-LTS, mixed mode)
bug: the UI locks up when clicking on some of the built-in icons, but not when using my own icons (all in png format) .
using java executable in $PATH
java version 11
16:52:18 INFO: User directory: /home/user/.jNetMap
16:52:18 INFO: Loading preferences
16:52:18 INFO: Loading language: English
16:52:18 INFO: Loading icon-theme: Elementary
16:52:18 INFO: Loading /icons/Elementary
16:52:18 INFO: Loading device-theme: /devices/cisco
16:52:18 INFO: Loading /devices/cisco
16:52:19 INFO: Loading GUI
16:52:29 INFO: Opening '120624'
16:52:30 INFO: Ready
I now click on the map's various device icons which I have generated ...all OK, log files reflect the screen actions, this bug file remains at the line above.
However, when I click on one of the built-in icons( e.g. "switch") which comes as part of jnetmap, the following happens:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
[there are 1024 o these lines]
clicking on any icons (built-in, or ones I have added) from now on: each mouse click generates this following burst of errors and I cannot click on the UI's tabs to choose log or edit or notes or info, nor the menu headers in the tool bar. The grey "scanning" activity bar, which should trigger every 5 minutes, is permanently set to show about 95% of its progress and never goes away.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.desktop/javax.swing.SizeRequirements.calculateAlignedPositions(SizeRequirements.java:463)
at java.desktop/javax.swing.BoxLayout.layoutContainer(BoxLayout.java:431)
at java.desktop/java.awt.Container.layout(Container.java:1537)
at java.desktop/java.awt.Container.doLayout(Container.java:1526)
at java.desktop/java.awt.Container.validateTree(Container.java:1722)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validate(Container.java:1657)
at java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:745)
at java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.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/javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:742)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1889)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
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.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
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)
I then get as many of these blocks shown above as mouse clicks until I kill the process (I m running as user $jnetmap or $jnetmap -o)
further experimenting: I replaced the "built-in" icons with ones of my own and I get a different bug report:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at ch.rakudave.jnetmap.model.IF.TransparentIF.getLatency(TransparentIF.java:149)
(there are again 1024 of these "at ch.rakudave" lines)
The above is repeated, and then I see
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.desktop/javax.swing.SizeRequirements.calculateAlignedPositions(SizeRequirements.java:463)
at java.desktop/javax.swing.BoxLayout.layoutContainer(BoxLayout.java:431)
at java.desktop/java.awt.Container.layout(Container.java:1537)
at java.desktop/java.awt.Container.doLayout(Container.java:1526)
at java.desktop/java.awt.Container.validateTree(Container.java:1722)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validateTree(Container.java:1731)
at java.desktop/java.awt.Container.validate(Container.java:1657)
at java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.java:745)
at java.desktop/javax.swing.RepaintManager$3.run(RepaintManager.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/javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:742)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1889)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
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.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
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)
Looking at the stack trace, I'm surprised that this hasn't bitten anyone before. It's a logic issue on transparent interfaces (i.e. mostly on switches), regardless of the icon. The errors afterwards are probably just side-effects. Fixed in theory in 0.5.6-729 - can you try that?
It's fixed!
All I see in the terminal now is the correct sort of messaging, e.g.
jnetmap -o
using java executable in $PATH
java version 11
19:04:33 INFO: User directory: /home/user/.jNetMap
19:04:33 INFO: Loading preferences
19:04:33 INFO: Loading language: English
19:04:33 INFO: Loading icon-theme: Elementary
19:04:33 INFO: Loading /icons/Elementary
19:04:33 INFO: Loading device-theme: /devices/cisco
19:04:33 INFO: Loading /devices/cisco
19:04:34 INFO: Loading GUI
19:04:42 INFO: Opening '120624'
19:04:43 INFO: Ready
Excellent work and thanks for doing it so quickly!