Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error on start #640

Closed
kayila opened this issue Aug 31, 2019 · 17 comments
Closed

Error on start #640

kayila opened this issue Aug 31, 2019 · 17 comments
Assignees
Labels

Comments

@kayila
Copy link
Contributor

kayila commented Aug 31, 2019

Describe the bug
Error messages and crashes when Maptool is starting.

To Reproduce

  1. Open maptool jar with the start script attached below
  2. See error
  3. If close is clicked, another error message pops up behind it.

Expected behavior
Maptool starts without error.

Screenshots
image

MapTool Info

  • Version: 1.5.3
  • Install: JAR

Desktop (please complete the following information):

  • OS: Manjaro Linux
  • Version: Rolling
  • Java version: oracle java 10
Start script
#!/usr/bin/env bash
MAXHEAP="2G"
STACKSIZE="12M"
JAVA_HOME=/lib/jvm/java-10-jdk/jre

MAPTOOL=./MapTool-1.5.3.jar

$JAVA_HOME/bin/java -Xmx${MAXHEAP} -Xss${STACKSIZE} -jar ${MAPTOOL}

Output and stacktrace
kayila@magnus:~/rptool$ ./startMaptool.sh
19:22:38.492 (MapTool.java:1499) [main] INFO  net.rptools.maptool.client.MapTool - ********************************************************************************
19:22:38.577 (MapTool.java:1500) [main] INFO  net.rptools.maptool.client.MapTool - **                                                                            **
19:22:38.578 (MapTool.java:1501) [main] INFO  net.rptools.maptool.client.MapTool - **                              MapTool Started!                              **
19:22:38.579 (MapTool.java:1502) [main] INFO  net.rptools.maptool.client.MapTool - **                                                                            **
19:22:38.579 (MapTool.java:1503) [main] INFO  net.rptools.maptool.client.MapTool - ********************************************************************************
19:22:38.580 (MapTool.java:1504) [main] INFO  net.rptools.maptool.client.MapTool - AppHome System Property: /home/kayila/.maptool/logs
19:22:38.581 (MapTool.java:1505) [main] INFO  net.rptools.maptool.client.MapTool - Logging to: /home/kayila/.maptool/logs/maptool.log
19:22:38.582 (MapTool.java:1509) [main] INFO  net.rptools.maptool.client.MapTool - setting MapTool version from manifest: 1.5.3
19:22:38.582 (MapTool.java:1514) [main] INFO  net.rptools.maptool.client.MapTool - setting MapTool vendor from manifest:  rptools
19:22:38.656 (MapTool.java:1564) [main] INFO  net.rptools.maptool.client.MapTool - overriding MapTool version from command line to: 1.5.3
19:22:38.656 (MapTool.java:1567) [main] INFO  net.rptools.maptool.client.MapTool - MapTool vendor: rptools
TinyLaF v1.4.0
'Default.theme' not found - using YQ default theme.
19:22:39.652 (AppUpdate.java:146) [main] INFO  net.rptools.maptool.client.AppUpdate - Git-Commit-SHA from Manifest: dd546b0ebf16c5def5e54a220fed369ea490f666
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/home/kayila/rptool/MapTool-1.5.3.jar) to field java.util.TreeMap.comparator
WARNING: Please consider reporting this to the maintainers of com.thoughtworks.xstream.core.util.Fields
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
19:22:39.999 (AppUpdate.java:86) [main] INFO  net.rptools.maptool.client.AppUpdate - target_commitish from GitHub: dd546b0ebf16c5def5e54a220fed369ea490f666
19:22:40.000 (AppUpdate.java:88) [main] INFO  net.rptools.maptool.client.AppUpdate - tag_name from GitHub: 1.5.3
19:22:41.759 (MapToolFrame.java:1790) [AWT-EventQueue-0] INFO  net.rptools.maptool.client.ui.MapToolFrame - Removing the F10 key from the menuBar's InputMap; it did  exist
Aug 31, 2019 7:22:42 PM com.jidesoft.docking.DefaultDockingManager a
WARNING: Error loading layout - Window must not be zero
java.lang.IllegalArgumentException: Window must not be zero
        at java.desktop/sun.awt.X11.XAtom.checkWindow(XAtom.java:774)
        at java.desktop/sun.awt.X11.XAtom.getAtomData(XAtom.java:465)
        at java.desktop/sun.awt.X11.XToolkit.getWorkArea(XToolkit.java:805)
        at java.desktop/sun.awt.X11.XToolkit.getInsets(XToolkit.java:881)
        at java.desktop/sun.awt.X11.XToolkit.getScreenInsets(XToolkit.java:869)
        at java.desktop/sun.java2d.SunGraphicsEnvironment.getUsableBounds(SunGraphicsEnvironment.java:274)
        at java.desktop/sun.awt.X11GraphicsEnvironment.getXineramaWindowBounds(X11GraphicsEnvironment.java:390)
        at java.desktop/sun.awt.X11GraphicsEnvironment.getMaximumWindowBounds(X11GraphicsEnvironment.java:314)
        at com.jidesoft.utils.PortingUtils.getLocalScreenBounds(Unknown Source)
        at com.jidesoft.utils.PortingUtils.ensureVisible(Unknown Source)
        at com.jidesoft.docking.DefaultDockingManager.u(Unknown Source)
        at com.jidesoft.docking.DefaultDockingManager.a(Unknown Source)
        at com.jidesoft.docking.DefaultDockingManager.loadLayoutFrom(Unknown Source)
        at com.jidesoft.swing.AbstractLayoutPersistence.loadLayoutDataFromFile(Unknown Source)
        at net.rptools.maptool.client.ui.MapToolFrame.configureDocking(MapToolFrame.java:684)
        at net.rptools.maptool.client.ui.MapToolFrame.<init>(MapToolFrame.java:548)
        at net.rptools.maptool.client.MapTool.initialize(MapTool.java:704)
        at net.rptools.maptool.client.MapTool.access$400(MapTool.java:124)
        at net.rptools.maptool.client.MapTool$7.run(MapTool.java:1738)
        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.access$600(EventQueue.java:97)
        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:87)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
        at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:43)
        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)

19:22:43.132 (MapToolEventQueue.java:51) [AWT-EventQueue-0] ERROR net.rptools.maptool.client.swing.MapToolEventQueue - java.lang.IllegalArgumentException: Window must not be zero
java.lang.IllegalArgumentException: Window must not be zero
        at sun.awt.X11.XAtom.checkWindow(XAtom.java:774) ~[?:?]
        at sun.awt.X11.XAtom.getAtomData(XAtom.java:465) ~[?:?]
        at sun.awt.X11.XToolkit.getWorkArea(XToolkit.java:805) ~[?:?]
        at sun.awt.X11.XToolkit.getInsets(XToolkit.java:881) ~[?:?]
        at sun.awt.X11.XToolkit.getScreenInsets(XToolkit.java:869) ~[?:?]
        at sun.java2d.SunGraphicsEnvironment.getUsableBounds(SunGraphicsEnvironment.java:274) ~[?:?]
        at sun.awt.X11GraphicsEnvironment.getXineramaWindowBounds(X11GraphicsEnvironment.java:390) ~[?:?]
        at sun.awt.X11GraphicsEnvironment.getMaximumWindowBounds(X11GraphicsEnvironment.java:314) ~[?:?]
        at com.jidesoft.utils.PortingUtils.getLocalScreenBounds(Unknown Source) ~[MapTool-1.5.3.jar:1.5.3]
        at com.jidesoft.utils.PortingUtils.ensureVisible(Unknown Source) ~[MapTool-1.5.3.jar:1.5.3]
        at com.jidesoft.docking.DefaultDockingManager.u(Unknown Source) ~[MapTool-1.5.3.jar:1.5.3]
        at com.jidesoft.docking.DefaultDockingManager.h(Unknown Source) ~[MapTool-1.5.3.jar:1.5.3]
        at com.jidesoft.docking.DefaultDockingManager.resetToDefault(Unknown Source) ~[MapTool-1.5.3.jar:1.5.3]
        at com.jidesoft.docking.DefaultDockingManager.loadDataErrorHandler(Unknown Source) ~[MapTool-1.5.3.jar:1.5.3]
        at com.jidesoft.docking.DefaultDockingManager.a(Unknown Source) ~[MapTool-1.5.3.jar:1.5.3]
        at com.jidesoft.docking.DefaultDockingManager.loadLayoutFrom(Unknown Source) ~[MapTool-1.5.3.jar:1.5.3]
        at com.jidesoft.swing.AbstractLayoutPersistence.loadLayoutDataFromFile(Unknown Source) ~[MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.ui.MapToolFrame.configureDocking(MapToolFrame.java:684) ~[MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.ui.MapToolFrame.<init>(MapToolFrame.java:548) ~[MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.MapTool.initialize(MapTool.java:704) ~[MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.MapTool.access$400(MapTool.java:124) ~[MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.MapTool$7.run(MapTool.java:1738) ~[MapTool-1.5.3.jar:1.5.3]
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) ~[?:?]
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) ~[?:?]
        at java.awt.EventQueue.access$600(EventQueue.java:97) ~[?:?]
        at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
        at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:740) ~[?:?]
        at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:43) [MapTool-1.5.3.jar:1.5.3]
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
19:22:43.514 (MapToolEventQueue.java:51) [AWT-EventQueue-0] ERROR net.rptools.maptool.client.swing.MapToolEventQueue - java.lang.NullPointerException
java.lang.NullPointerException: null
        at net.rptools.maptool.client.ui.tokenpanel.TokenPanelTreeModel.updateInternal(TokenPanelTreeModel.java:212) ~[MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.ui.tokenpanel.TokenPanelTreeModel.access$100(TokenPanelTreeModel.java:41) ~[MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.ui.tokenpanel.TokenPanelTreeModel$1.run(TokenPanelTreeModel.java:200) ~[MapTool-1.5.3.jar:1.5.3]
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) ~[?:?]
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) ~[?:?]
        at java.awt.EventQueue.access$600(EventQueue.java:97) ~[?:?]
        at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
        at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:740) ~[?:?]
        at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:43) [MapTool-1.5.3.jar:1.5.3]
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) [?:?]
        at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190) [?:?]
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235) [?:?]
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233) [?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233) [?:?]
        at java.awt.Dialog.show(Dialog.java:1070) [?:?]
        at java.awt.Component.show(Component.java:1674) [?:?]
        at java.awt.Component.setVisible(Component.java:1621) [?:?]
        at java.awt.Window.setVisible(Window.java:1031) [?:?]
        at java.awt.Dialog.setVisible(Dialog.java:1005) [?:?]
        at net.rptools.maptool.client.swing.MapToolEventQueue.displayPopup(MapToolEventQueue.java:79) [MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:55) [MapTool-1.5.3.jar:1.5.3]
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
19:22:44.005 (MapToolEventQueue.java:51) [AWT-EventQueue-0] ERROR net.rptools.maptool.client.swing.MapToolEventQueue - java.lang.NullPointerException
java.lang.NullPointerException: null
        at net.rptools.maptool.client.ui.assetpanel.ImageFileImagePanelModel.refresh(ImageFileImagePanelModel.java:594) ~[MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.ui.assetpanel.ImageFileImagePanelModel.setFilter(ImageFileImagePanelModel.java:120) ~[MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.ui.assetpanel.AssetPanel$6.actionPerformed(AssetPanel.java:336) ~[MapTool-1.5.3.jar:1.5.3]
        at javax.swing.Timer.fireActionPerformed(Timer.java:317) ~[?:?]
        at javax.swing.Timer$DoPostEvent.run(Timer.java:249) ~[?:?]
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) ~[?:?]
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) ~[?:?]
        at java.awt.EventQueue.access$600(EventQueue.java:97) ~[?:?]
        at java.awt.EventQueue$4.run(EventQueue.java:721) ~[?:?]
        at java.awt.EventQueue$4.run(EventQueue.java:715) ~[?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) ~[?:?]
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:740) ~[?:?]
        at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:43) [MapTool-1.5.3.jar:1.5.3]
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) [?:?]
        at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190) [?:?]
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235) [?:?]
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233) [?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233) [?:?]
        at java.awt.Dialog.show(Dialog.java:1070) [?:?]
        at java.awt.Component.show(Component.java:1674) [?:?]
        at java.awt.Component.setVisible(Component.java:1621) [?:?]
        at java.awt.Window.setVisible(Window.java:1031) [?:?]
        at java.awt.Dialog.setVisible(Dialog.java:1005) [?:?]
        at net.rptools.maptool.client.swing.MapToolEventQueue.displayPopup(MapToolEventQueue.java:79) [MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:55) [MapTool-1.5.3.jar:1.5.3]
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117) [?:?]
        at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190) [?:?]
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235) [?:?]
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233) [?:?]
        at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
        at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233) [?:?]
        at java.awt.Dialog.show(Dialog.java:1070) [?:?]
        at java.awt.Component.show(Component.java:1674) [?:?]
        at java.awt.Component.setVisible(Component.java:1621) [?:?]
        at java.awt.Window.setVisible(Window.java:1031) [?:?]
        at java.awt.Dialog.setVisible(Dialog.java:1005) [?:?]
        at net.rptools.maptool.client.swing.MapToolEventQueue.displayPopup(MapToolEventQueue.java:79) [MapTool-1.5.3.jar:1.5.3]
        at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:55) [MapTool-1.5.3.jar:1.5.3]
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?]
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?]
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?]
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?]
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?]
First stacktrace
java.lang.NullPointerException
	at net.rptools.maptool.client.ui.assetpanel.ImageFileImagePanelModel.refresh(ImageFileImagePanelModel.java:594)
	at net.rptools.maptool.client.ui.assetpanel.ImageFileImagePanelModel.setFilter(ImageFileImagePanelModel.java:120)
	at net.rptools.maptool.client.ui.assetpanel.AssetPanel$6.actionPerformed(AssetPanel.java:336)
	at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
	at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
	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.access$600(EventQueue.java:97)
	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:87)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
	at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:43)
	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.pumpEventsForFilter(EventDispatchThread.java:117)
	at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
	at java.desktop/java.awt.Component.show(Component.java:1674)
	at java.desktop/java.awt.Component.setVisible(Component.java:1621)
	at java.desktop/java.awt.Window.setVisible(Window.java:1031)
	at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1005)
	at net.rptools.maptool.client.swing.MapToolEventQueue.displayPopup(MapToolEventQueue.java:79)
	at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:55)
	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.pumpEventsForFilter(EventDispatchThread.java:117)
	at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.desktop/java.awt.Dialog.show(Dialog.java:1070)
	at java.desktop/java.awt.Component.show(Component.java:1674)
	at java.desktop/java.awt.Component.setVisible(Component.java:1621)
	at java.desktop/java.awt.Window.setVisible(Window.java:1031)
	at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1005)
	at net.rptools.maptool.client.swing.MapToolEventQueue.displayPopup(MapToolEventQueue.java:79)
	at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:55)
	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)
@Azhrei
Copy link
Member

Azhrei commented Sep 1, 2019

Looks like this is the problem:

WARNING: Error loading layout - Window must not be zero
java.lang.IllegalArgumentException: Window must not be zero

We’ve seen this reported on Discord — Doesn’t the -reset command line option fix this? We clearly need to catch this exception, regardless, so we can provide better reporting...

@Phergus Phergus added the bug label Sep 1, 2019
@Phergus
Copy link
Contributor

Phergus commented Sep 1, 2019

Note that launching as indicated under Windows doesn't produce the error.
java -Xmx2G -Xss12M -jar MapTool-1.5.3.jar

@kayila
Copy link
Contributor Author

kayila commented Sep 1, 2019

I'll give -reset a try and report back, but currently if I keep trying to start the application, eventually it will start properly. It seems to be acting like a race condition.

@Phergus
Copy link
Contributor

Phergus commented Sep 1, 2019

If it does work, that would suggest that the layout.dat file is being written improperly somehow. A before/after of the layout.dat file may be useful.

@kayila
Copy link
Contributor Author

kayila commented Sep 1, 2019

With -reset, I get a different error...

stdout + stacktrace
16:05:12.484 (MapTool.java:1499) [main] INFO  net.rptools.maptool.client.MapTool - ********************************************************************************                                                
16:05:12.552 (MapTool.java:1500) [main] INFO  net.rptools.maptool.client.MapTool - **                                                                            **                                                
16:05:12.553 (MapTool.java:1501) [main] INFO  net.rptools.maptool.client.MapTool - **                              MapTool Started!                              **                                                
16:05:12.553 (MapTool.java:1502) [main] INFO  net.rptools.maptool.client.MapTool - **                                                                            **                                                
16:05:12.553 (MapTool.java:1503) [main] INFO  net.rptools.maptool.client.MapTool - ********************************************************************************                                                
16:05:12.554 (MapTool.java:1504) [main] INFO  net.rptools.maptool.client.MapTool - AppHome System Property: /home/kayila/.maptool/logs                                                                             
16:05:12.554 (MapTool.java:1505) [main] INFO  net.rptools.maptool.client.MapTool - Logging to: /home/kayila/.maptool/logs/maptool.log                                                                              
16:05:12.555 (MapTool.java:1509) [main] INFO  net.rptools.maptool.client.MapTool - setting MapTool version from manifest: 1.5.3                                                                                    
16:05:12.555 (MapTool.java:1514) [main] INFO  net.rptools.maptool.client.MapTool - setting MapTool vendor from manifest:  rptools                                                                                  
[main] INFO org.reflections.Reflections - Reflections took 41 ms to scan 1 urls, producing 10 keys and 11 values                                                                                                   
16:05:12.709 (UserJvmPrefs.java:208) [main] INFO  net.rptools.maptool.util.UserJvmPrefs - resourcePathSet: [net/rptools/maptool/language/i18n_pl.properties, net/rptools/maptool/language/i18n_ja.properties, net/rptools/maptool/language/i18n_zh.properties, net/rptools/maptool/language/i18n_fr.properties, net/rptools/maptool/language/i18n_ru.properties, net/rptools/maptool/language/i18n_de.properties, net/rptools/maptool/language/i18n_es.properties, net/rptools/maptool/language/i18n_it.properties]                                                                                                                                      
16:05:12.710 (UserJvmPrefs.java:86) [main] INFO  net.rptools.maptool.util.UserJvmPrefs - Reseting all startup options to defaults!                                                                                 
Exception in thread "main" java.util.ServiceConfigurationError: jdk.packager.services.UserJvmOptionsService: Provider jdk.packager.services.userjvmoptions.LauncherUserJvmOptions could not be instantiated        
        at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:581)
        at java.base/java.util.ServiceLoader.access$100(ServiceLoader.java:390)
        at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:803)
        at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:721)
        at java.base/java.util.ServiceLoader$3.next(ServiceLoader.java:1394)
        at jdk.packager.services/jdk.packager.services.UserJvmOptionsService.getUserJVMDefaults(UserJvmOptionsService.java:56)
        at net.rptools.maptool.util.UserJvmPrefs.setJvmOption(UserJvmPrefs.java:156)
        at net.rptools.maptool.util.UserJvmPrefs.resetJvmOptions(UserJvmPrefs.java:88)
        at net.rptools.maptool.client.MapTool.main(MapTool.java:1546)
        at net.rptools.maptool.client.LaunchInstructions.main(LaunchInstructions.java:49)
Caused by: java.lang.UnsatisfiedLinkError: no packager in java.library.path: [/usr/java/packages/lib, /usr/lib64, /lib64, /lib, /usr/lib]
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2654)
        at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:876)
        at java.base/java.lang.System.loadLibrary(System.java:1875)
        at jdk.packager.services/jdk.packager.services.userjvmoptions.LauncherUserJvmOptions.<clinit>(LauncherUserJvmOptions.java:53)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
        at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:779)
        ... 7 more

@Azhrei
Copy link
Member

Azhrei commented Sep 1, 2019

This is the key:

Provider jdk.packager.services.userjvmoptions.LauncherUserJvmOptions could not be instantiated

It looks like your Java is misconfigured somehow (there’s no way a properly configured JRE could be missing a built in class!?).

Offhand, I’d say your CLASSPATH is wrong or the installation didn’t set the bootclasspath correctly. Do you have more than one Java installed? Perhaps the alternatives system is pointing to the wrong Java...?

@kayila
Copy link
Contributor Author

kayila commented Sep 2, 2019

My classpath is empty, allowing it to have the default when I run java, and I'm not sure what you mean about bootclasspath. I do have multiple versions of java installed, but I've not had this problem before recently which is odd. I'm calling the version of java directly, and not going through the alternatives system. The provider error only comes up if I use the -reset option, so I wonder if that's related.

@Azhrei
Copy link
Member

Azhrei commented Sep 2, 2019

My classpath is empty, allowing it to have the default when I run java, and I'm not sure what you mean about bootclasspath.

See https://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html

Essentially, it's the classpath automatically set when Java is installed so that the JRE can locate the runtime class files (i.e., the ones in java.lang, for example). Looking at the package name again, I had it wrong; the problem with this (new) error is that the code is compiled against the JDK (hence jdk.packager) but you've got the JRE installed. That's a problem on our end, since we shouldn't be requiring the JDK.

The provider error only comes up if I use the -reset option, so I wonder if that's related.

Yes, it probably is. So that means we're back to your original error message:

Aug 31, 2019 7:22:42 PM com.jidesoft.docking.DefaultDockingManager a
WARNING: Error loading layout - Window must not be zero
    ...
        at com.jidesoft.swing.AbstractLayoutPersistence.loadLayoutDataFromFile(Unknown Source)
    ...

Have you tried removing the layout.dat file under ~/.maptool? That's where the geometry is kept for JIDE panels and frames, and the error message does say, com.jidesoft... 🤷‍♂️

(There's clearly some problem with the JIDE libraries maintaining this file... Maybe we should be calling the API function that writes the file on a more frequent basis or something?)

@kayila
Copy link
Contributor Author

kayila commented Sep 10, 2019

Yes, that doesn't seem to affect the problem. I still get the error.

@JamzTheMan
Copy link
Member

JamzTheMan commented Sep 10, 2019

FYI -reset ONLY resets the jvm options used by the native launcher, if you are launching the jar manually via locally installed Java it doesn't do anything for you. You have to supply all your own JVM parms (which is also why I grey out the Startup tab when ran this way)

What flavor/installation of the JDK are you using? OpenJDK or Oracle?

@kayila
Copy link
Contributor Author

kayila commented Sep 12, 2019


kayila@magnus:~/rptool$ /usr/lib/jvm/java-10-jdk/bin/java -version
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

@JamzTheMan
Copy link
Member

@pnichols04 Do you have any thoughts/ideas on this issue?

@pnichols04
Copy link
Collaborator

pnichols04 commented Sep 16, 2019

If it were a problem with layout.dat, the docking manager should be loading a default, according to the JIDESoft documentation.

I don't see any way to get a window == 0 error under that trace unless X11 is returning 0 as the handle to the root window (or a bug in Java is bungling it). But in that trace, I don't see any window handle being created or referenced from any information that MapTool or JIDESoft is sending. In fact, the eighth frame in the trace, X11GraphicsEnvironment.getMaximumWindowBounds, is a parameterless call to an object with a parameterless constructor; you couldn't put bad parameters into that frame if you wanted to.

I'm loathe to blame the platform, but I suspect the particular JRE and the partiular XServer aren't playing well together.

[EDIT] Could there be something in the configuration that's making Java think it's running in headless mode? I throw that out to my fellows here who have better knowledge of JVM configuration.

@kayila Do you have multiple monitors?


image

@Azhrei
Copy link
Member

Azhrei commented Sep 16, 2019

Good find on the bug report.

We should probably catch it at the top level and report the underlying problem to the user with a reference to "not our fault". 😉

@kayila
Copy link
Contributor Author

kayila commented Sep 18, 2019

..... Yea... I do... Specifically I have 3... Nice find, and very unfortunate...

kayila added a commit that referenced this issue Oct 30, 2019
…cary errors to appear due to a bug in the jdk when using three monitors.
Phergus added a commit that referenced this issue Oct 30, 2019
@Phergus
Copy link
Contributor

Phergus commented Oct 30, 2019

@kayila do you need to add the TokenPanelTreeModel to the list of loggers?

As you're the only one that could reproduce this, you'll have to flag it as Tested and can then close it.

@Phergus
Copy link
Contributor

Phergus commented Nov 11, 2019

Try/catch blocks added to catch exceptions caused when starting MT on systems with multiple monitors under Linux.

Closing.

@Phergus Phergus closed this as completed Nov 11, 2019
BearFather added a commit to BearFather/maptool that referenced this issue Nov 16, 2019
* Spotless applied

* Add new Server Option for GM to Reveal FoW for Unowned Tokens

 * Closes RPTools#665 and Closes RPTools#663
 * Added abeille-maptool-forms.jfpr project file to buil-resources

* Add playStream, stopStream, and editStream functions to stream audio

- Add playStream(uri, cycleCount, volume) to play audio from url or local file.
- cycleCount: number of times to play the resource. -1 for infinite loop. Default: 1.
- volume: volume value from 0-1. Default: 1.
- Add stopStream(uri, remove) to stop a stream. If remove is set to 1, unload the stream from memory. Default: 1. If no uri specified, stop all sounds.
- Add editStream(uri, cycleCount, volume) to change the cycleCount or volume of stream.
- Add AppPreference playStreams to enable/disable playing streams
- Ex:

[playStream("https://www.fesliyanstudios.com/musicfiles/2019-05-01_-_Undercover_Spy_Agent_-_David_Fesliyan.mp3", -1, 0.8)]

* Fix disabling streams, and make stream functions thread-safe

- Fix access HashMap to be thread safe (now accessed solely from the JavaFX app single thread)
- Fix so that disabling streams in settings also stops all streams

* Add features to playStream functions

- Move streaming methods to class MediaPlayerAdapter, as discussed in RPTools#668
- Add new parameters: startTime and stopTime to playStream & editStream
- playStream with cycleCount 0 preloads the stream but does not play it
- Add function getStreamProperties as suggested in RPTools#667
- Add support for volume slider through setGlobalVolume, but the slider needs to be created

* Fix getStreamProperties wrongly returning "PLAYING" , change ms to secs

- Fix getStreamProperties to return status "STOPPED" after song finished playing
- Change parameters startTime and stopTime to take seconds instead of ms

* Add Volume Slider and Mute Button to Toolbar

- Icons provided by @JamzTheMan

Co-Authored-By: Jamz <[email protected]>

* Add "fadeout" parameter to stopStream

- Add optional fadeout (in seconds) before closing a stream
- 0: no fadeout (default)
- Stream will stop once the fadeout period is over
- Suggested by @dorpond in RPTools#615

* Add DebounceExecutor, update ZoneRenderer.java to use debounced repaint (RPTools#611)

dispatcher.

* Add sound icons to the github directory

- Add back,forward,next,pause,play,previous,record,record_on,repeat,shuffle,shuffle_on, and stop icons
- Move mute & volume icons to correct directory
- Icons will be used for RPTools#615
- Icons provided by @JamzTheMan

Co-Authored-By: Jamz <[email protected]>

* Add support for space in uri for stream functions

- Add conversion of string to uri, replacing space into %20
- Add "FILE/:" at the start of uri if it is missing
- Fix issues raised in RPTools#667

* Fix PRs automatically failed

- Change to using jitpack for clientserver
- Fix RPTools#679

* Fix bug: "*" stop working as path in stopStream, getStreamProperties (RPTools#682)

- Add special case so that "*" isn't modified
- Fix regression created by RPTools#678
- Fix RPTools#681

* Add propertyType option for getTokens(), improve getTokens() (RPTools#677)

- Add new option "propertyType" to conditions in getTokens()
- Value can be a single type as string, or an array of types
- Simplify getTokens() code by removing the second loop. Now include/exclude is a filter property ("match")
- Improve performance of getTokens() by trimming the list continuously instead of constantly filtering the list of all tokens
- Close RPTools#676

* Json, store "null" "false" and "true" as their revelant java type internally (RPTools#672)

* jsonify "null", "true" and "false" into null true and false

* fix null handling, using the library Null object

* jsonify should be static and public

* Change getTokens to be much faster with area option (RPTools#686)

- Change so overlap is computed explicitely instead of using A*
- Much better performance
- Solves RPTools#683 for "area" but not for "range"

* ImagePanel QOL improvements (RPTools#691)

- Request only images in view from ImageManager
- Trigger repaint() from paint-affecting properties only if property
actually changes
- Calculate truncated caption heuristically
- Improve spacing
- Include caption in mouse capture area
- Antialias text
- Use interpolation when rendering scaled images

* Fix Manhattan distance, metric distance parameter with iso maps (RPTools#690)

- Fix manhattan distance while moving tokens & in distance functions
- Fix getDistance, getDistanceToXY, getTokens ignoring metric parameter for isometric maps
- Close RPTools#688

* Fix json.path functions adding extra / and \ to json objects (RPTools#693)

- Fix issue raised in RPTools#612

* Resolve RPTools#694 -- Fix asset panel scaling (RPTools#695)

* RPTools#696 Implement dragTheshold in DefaultTool

* Fix NullPointer exception when closing maptool

Fix RPTools#700

* Change getDistance to use explicit closed-form

- Improve speed dramatically while using getTokens() with a distance option
- Previous walker-based approach kept as it could be extended to take VBL & terrain into account
- Distance returned tested to be the same as previous code
- Close RPTools#683

* Fix two issues from moving token when "Snap Token While Dragging" is off

- Fix token "jumping" to a different spot once Snap-to-Grid is disabled
- Fix getDistance returning incorrect distance with NO_GRID metric
- Close RPTools#699

* Fix to getDistanceToXY and getDistance with NO_GRID metric

- Change so that getDistanceToXY and getDistance now calculate the distance from the center of the token when the token is large
- Add new "pixel" parameter to getDistanceToXY. It indicates if the x,y are for a cell or pixel (pixel: false by default)
- pixel false: getDistanceToXY gets the distance from the center of the token to the center of the specified cell
- Close RPTools#684

* Fix bug in RPTools#699 (RPTools#711)

- Fix incorrect boolean check
- Fix missing CellPoint to ZonePoint conversion

* Change volume slider to affect system sounds

- Change system sounds to be affected by volume slider & mute button
- Change system sounds to use JavaFX
- Close RPTools#709

* Fix campaign macro changes not received when connecting to server

- Fix so macro changes are now properly updated to the server
- Close RPTools#713

* Fix bug introduced by RPTools#707 with default metrics

- Fix bug where the default metric is the user's preferred one instead of the server's.
- Function affected: getDistance, getDistanceToXY, getTokens
- Fix issue mentioned in RPTools#684

* Add option "gm-self", "self", & "all" to broadcast

Close RPTools#718

* Fix getViewArea and getViewCenter returning incorrect pixels

- Change so getViewArea and getViewCenter return the actual pixels as used in setViewArea, for example.
- Close RPTools#724

Co-Authored-By: Phergus <[email protected]>

* Add parameter "players" and "delim" to execLink (RPTools#721)

- Add new parameter "players" to execLink. All players specified will have the macro run for them. Default: self.
- The parameter "players" can be a string, a list, or json array. Use new delim parameter for list or array (defaults to ",").
- execLink also accepts "gm", "gm-self", "self", "all", and "none".
- Close RPTools#716

* Add scrolling to Select Map menu (RPTools#723)

- Add new class "JScrollPopupMenu" to handle scrolling
- Class is fully functional but not complete.  Other methods relying on indexes of the components should be reimplemented before they are used
- Maximum of maps displayed at a time: 20 (scrolling will reveal them all)
- Close RPTools#356

* Add function json.toVars to turn jsonObject into variables

- keys become variable names
- values become the content of the variables
- Close RPTools#591

* Improvement to json.toVars

- Change: parameter "suffixed" is now replaced by "prefix" and "suffix", which can add a prefix and/or suffix to the names.
- Change: spaces in keys are now turned into underscore
- Change: characters not alpha-numerical other than "." and "_" are deleted from var names
- Change: function now return a JSONArray with the variable names

* Fix javadocs errors

- Fix javadocs errors; it's now possible to generate the full javaDocs
- No actual code changed
- Warnings still present, but the errors should be fixed
- Close RPTools#731

* Update ChangeLog for 1.5.5 release (RPTools#736)

First pass.

* More updates to ChangeLog plus updated credits. (RPTools#737)

* Update ChangeLog for 1.5.5 release

First pass.

* Fix ChangeLog and update credits.html

Fixed typos and missing linkage in ChangeLog.
Updated credits.html file.

Issue RPTools#735

* Changed getInfo("server") macro to use ServerPolicy.toJSON directly (RPTools#738)

Updated getInfo("server") macro function to pull JSON object from ServerPolicy instead of having duplicated code.
Updated ServerPolicy.toJSON() to include isAutoRevealMovement and isUseIndividualFOW.

* Junit tests for Json function (RPTools#741)

* jsonify "null", "true" and "false" into null true and false

* fix null handling, using the library Null object

* jsonify should be static and public

* json unitary tests

* use a resource fiel for json rather that constructed within the test code

* spotless on json tests

* Updated with Issue RPTools#670 (RPTools#743)

* Update ChangeLog for 1.5.5 release

First pass.

* Fix ChangeLog and update credits.html

Fixed typos and missing linkage in ChangeLog.
Updated credits.html file.

Issue RPTools#735

* Add missing issue 670

Updated with issue 670.

* Update parser to 1.5.5

Removed self dependency in Parser project.

* Update build.gradle to pull dicelib v1.5.5 (RPTools#749)

build.gradle updated to pull in dicelib v1.5.5
Completes issue RPTools#746.

* Closes RPTools#751

Due to how the uberJar is packaged, we need to register JAI imageIO for jpeg2000
The same fix was applied to TokenTool for the same issue.

Signed-off-by: JamzTheMan <[email protected]>

* Updates to Change Log and Credits (RPTools#754)

* Update ChangeLog for 1.5.5 release

First pass.

* Fix ChangeLog and update credits.html

Fixed typos and missing linkage in ChangeLog.
Updated credits.html file.

Issue RPTools#735

* Add missing issue 670

Updated with issue 670.

* Update ChangeLog and Credits

Updated Change Log for issues 731, 746 & 751.  Updated MapTool credits  with recent contributor and missing `</td>` tags.

* Fix prompt to "update" to old version when on pre-release (RPTools#757)

* Fix prompt to "update" to old release when on pre-release

- Fix so that a release candidate / alpha / beta no longer gives prompt to "update" to an older release
- Change: users on a pre-release now get a prompt to update to the newest version, such as a newer release candidate
- No change for those on releases
- Close RPTools#627

* Change pre-release detection to use github API

- Change so that pre-release status is detected by parsing the json of all releases and finding the one corresponding to the commit SHA

* blah

* Add Panel for GM macros

- Add a new panel to hold GM macros
- Macros in this panel are only visible to GMs
- Campaign panel left as-is
- Close RPTools#642

* Remove putTokens in macro functions

- Change so that many token functions now only update the relevant information instead of sending the whole token
- Close RPTools#761
- Function affected: addToInitiative, setInitiative, setInitiativeHold, setBar, setBarVisible, setName, setGMName, setHalo, setTokenOpacity, setImageAsset, setPortraitImage, setCharsheetImage, setLabel, resetProperty, setTerrainModifier, setVisible, setOwnerOnlyVisible, setAlwaysVisible, setTokenVBL

* Fix copyToken so copy can be modified in the same macro

- Fix: tokens created by copyToken no longer have their changes reverted at the end of the macro
- Exception: z order is reverted at end of macro
- Fix RPTools#769

* Add "light" option to getTokens and getTokenNames

- light option can be a JSONObject with "value", "category" and "name" fields
- value can be a 0 or a 1, determining if the tokens need to have a light or not
- category and name determine what type of lights the tokens need to have (or not, if value is 0)
- light can also be a 1 or 0 instead of a JSONObject, in which case all tokens with a light (or no lights) are returned
- Close RPTools#745

* Fix json.path.read returning bad JSON object from array

- Change json provider from JsonSmart to Gson
- Close RPTools#775

* Add options not-gm, not-self, and not-gm-self to broadcast

- Close RPTools#782

* Add json.toVars support for JSONArrays

- Change json.toVars to take the elements of a JSONArray and put them into a variable, using the method

json.toVars(jsonArray, variablePrefix)

- Variables will take the names variablePrefix0, variablePrefix1, ...
- Close RPTools#784

* Fix bar functions returning wrong values if bar not defined

- Change to throw exception if the name of the bar is not valid
- Change getBar to return an empty string instead of a null if the bar is defined but isn't visible
- Close RPTools#786

* Release 1.5.6 (RPTools#777)

* Emergency fix for NPE on Mac OS (RPTools#765)

* Update Change Log for 1.5.6

Added notes for 1.5.6 release.

* Added noise rendering to background textures

* Ability to add noise to background tiled textures

* Spoltess apply

* ignore .gradletasknamecache

* removed .gradletasknamecache

* removed unwated files

* Background texture noise (RPTools#791)

* blah

* Added noise rendering to background textures

* Ability to add noise to background tiled textures

* Spoltess apply

* ignore .gradletasknamecache

* removed .gradletasknamecache

* removed unwated files

* Added ability to turn off noise and comments

* Redraw background when noise toggled

* Renamed DrableNoise to make it clearer it doesnt subclass Pant

* Add preferences setting for frame rate cap used in debouncer

Preference setting Frame Rate Cap added for the debouncer. Default of 60 fps.  Issue RPTools#767

* Fix broken smileys

- Remove \b (word boundary) in regular expression as it doesn't work with non-word characters such as smileys
- Add negative lookbehind/ahead instead to prevent unwanted characters near smileys
- Only space, tab, and newline are allowed before/after smiley
- Close RPTools#529

* Update CHANGE_LOG.md

First pass on updating change log for 1.5.7 release.

* Update TaskBarFlasher.java

Chat notification flash now determines the flash color based on the brightness level of the task bar.  This will improve visibility on different color schemes.  Issue RPTools#804.

* Fix getStreamProps() returning malformed JSON

- Remove incorrect space in front of getStreamProperties values
- Close RPTools#803

* Update TaskBarFlasher.java

Spotless pass.

* Update CHANGE_LOG.md

More updates 800, 803, 804

* Add token & mapname parameters to getTokenStates

- New token parameter: if specified, getTokenStates returns the list of all states of the specified group that are enabled on the token
- Set group to "*" to get all states of the token
- If no token parameter specified, the function returns the list of all campaign states
- Close RPTools#801

* Fix Incorrect tooltip for Show Chat Notification Background

- Change tooltip to "If enabled, shows a background frame underneath the typing notification."
- Change name to "Typing Notification Background"
- Close RPTools#800

* Update CHANGE_LOG.md

Missed linkage for 800.

* Fix getTokenStates returning wrong list of states

- Fix issue disclosed by @Phergus in PR RPTools#809

* Add execFunction : functions can now be ran on clients

- Add execFunction(functionName,args,defer, targets, delim)
- args is a json array containing the arguments to the function
- defer, targets and delim work as in execLink
- Close RPTools#790

* Fix exception when copyToken is used

- Fix updates x, y, layer, tokenImage, portraitImage, & handoutImage so they no longer throw an exception
- Close RPTools#814

* Update CHANGE_LOG.md

Typo fixed.

Co-Authored-By: Guillaume F. <[email protected]>

* Update CHANGE_LOG.md

Typos, missing links and other tweaks.

* Change copyToken options to tokenHandout, tokenPortrait

- Change handoutImage update field to tokenHandout
- Change portraitImage update field to tokenPortrait
- Legacy: old values still work
- Fix null pointer exception to propert error message if the image token cannot be found
- Solve issues raised by @Phergus in RPTools#814

* Updating code style and guidelines

First past at incorporating updates and changes per issue RPTools#813.

* More updates

Dumped the ambiguous rule 3.
Allowed some slack on rule 2.

* Update CHANGE_LOG.md

Added issue RPTools#814 and changed list markers to dashes.

* Fix NPE thrown in MapToolFrame

Fixes issue RPTools#740.  ImagePanel getImageIDAt() wasn't checking return value of getIndex().

* Fix for issue RPTools#687

For Table functions `addTableEntry`, `createTable`,  `setTableImage` and `setTableEntry`,  passing an empty AssetID string will no longer apply the bad "Asset://" string to the relevant image entry.  Also fixed: getTableImage() was throwing an NPE if no table image was set.

* Update LookupTableFunction.java

spotlessApply pass

* Fix execLink / execFunction not running locally immediately

- Change so execLink / execFunction are ran immediately for the current player when defer is set to 0.
- Add target options "not-self", "not-gm", and "not-gm-self".
- Fix RPTools#820

* Add playClip, stopClip and getClipProperties functions

- playClip works much like playStream, but preloads the decompresssed sound in memory. This leads to better performances for short sounds.
- playCount of 0: preload the sound
- clips are "fire and forget", and can't be edited once played
- The same clip can be played multiple times simultaneously
- Close RPTools#810

* Change stopStream/getStreamProperties to work with clips

- Change names of stopStream and getStreamProperties to stopSound and getSoundProperties. The new functions work with both streams and clips.
- Add function "defineAudioSource". You can now define a nickname for an audio file, with defineAudioSource(nickname, uri).
- Add already included sounds Dink and Clink as defined audio sources. They can now be played with playClip("Dink") and playClip("Clink")
- Resolve issues discussed in RPTools#810

* Update CHANGE_LOG.md

Added issues 687, 740, 790, 810.

* Fix stream / clip issues

- Change so that playClip / playStream have their default parameter values be those used during the previous play of the clip/stream, or the values changed by editStream
- Add parameter "preload" to defineAudioSource. If set to "stream", preload the sound as stream; if set to "clip", preload the sound as clip.
- Add parameters to defineAudioSource: cycleCount, volume, start and stop. These parameters will be used as default until they are replaced by using playStream/playClip
- Add list of nicknames to getSoundProperties
- Internal change: start and stop are now defined in seconds everywhere
- Fix issues discussed in RPTools#810 and RPTools#822

* Fix incorrect Campaign Name in Title Bar for clients

- Fix so clients see the proper campaign name instead of the name of the last campaign file they loaded
- Close RPTools#788

* Update CHANGE_LOG.md

Add 788, 820, 822

* Added titleCase() macro function

* spotless apply

* Bump sentry from 1.7.5 to 1.7.28

Bumps sentry from 1.7.5 to 1.7.28.

Signed-off-by: dependabot-preview[bot] <[email protected]>

* Bump commons-net from 3.2 to 3.6

Bumps commons-net from 3.2 to 3.6.

Signed-off-by: dependabot-preview[bot] <[email protected]>

* Bump autocomplete from 3.0.0 to 3.0.2

Bumps [autocomplete](https://github.com/bobbylight/AutoComplete) from 3.0.0 to 3.0.2.
- [Release notes](https://github.com/bobbylight/AutoComplete/releases)
- [Commits](bobbylight/AutoComplete@3.0.0...3.0.2)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* Bump gson from 2.8.5 to 2.8.6

Bumps [gson](https://github.com/google/gson) from 2.8.5 to 2.8.6.
- [Release notes](https://github.com/google/gson/releases)
- [Changelog](https://github.com/google/gson/blob/master/CHANGELOG.md)
- [Commits](google/gson@gson-parent-2.8.5...gson-parent-2.8.6)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* Bump xstream from 1.4.9 to 1.4.11.1

Bumps [xstream](https://github.com/x-stream/xstream) from 1.4.9 to 1.4.11.1.
- [Release notes](https://github.com/x-stream/xstream/releases)
- [Commits](https://github.com/x-stream/xstream/commits)

Signed-off-by: dependabot-preview[bot] <[email protected]>

* renamed titleCase to capitalize

* Revert "Bump xstream from 1.4.9 to 1.4.11.1"

* Revert "Bump commons-net from 3.2 to 3.6"

* Update ServerPolicy.java (RPTools#847)

Set "hosting server" JSON returned by `toJSON()` to BigDecimal instead of Boolean for consistency with other settings and compatibility with parser.

* Closes RPTools#848

Add missing "file sync directory" to client info.develop.

Documentation/Wiki should be updated to reflect changes. *Side note: file sync directory preference technically can be ANY directory on the users system. It's used internally for HeroLab portfolio linking and but can be used for other uses such as streaming audio or exportData macro's*

Signed-off-by: JamzTheMan <[email protected]>

* Closes RPTools#850 - Add log.trace to log macro group

Add log.trace(message) to macro function log group.

Signed-off-by: JamzTheMan <[email protected]>

* Revert "Bump gson from 2.8.5 to 2.8.6" (RPTools#853)

* Revert "Bump sentry from 1.7.5 to 1.7.28" (RPTools#854)

* Added lastest commits. (RPTools#852)

Added 829, 846, 848 and 850.

* Workaround for RPTools#640 Error which would (previously) cause a bunch of scary errors to appear due to a bug in the jdk when using three monitors.

* Updated changelog

* Updated comments

* Add mapname parameter to getTokens and getTokenNames

- Add optional mapname parameters (defaults to current map)
- Add error message for incorrect number of parameters for FindToken functions
- Close RPTools#867

* Change getTokens "mapName" parameter to condition

- Change so that getTokens/getTokenNames parameter "mapName" added by RPTools#868 is instead specified as a condition
- Discussed in RPTools#867

* Add metadata to getMacroProps function, fixes RPTools#872

Signed-off-by: JamzTheMan <[email protected]>

* Changed REST.delete to follow post, patch, put format, fixes RPTools#874

It now accepts body/payload.

This changes the signature of the macro a bit so Wiki update is needed as it no long follows REST.get signature.
This fixes an issue where some API's (like GitHub API) require data to be posted in the body.

Signed-off-by: JamzTheMan <[email protected]>

* Add metadata to getMacroProps function, fixes RPTools#872

Signed-off-by: JamzTheMan <[email protected]>

* Applied Google Code Formatting

Signed-off-by: Lee Foster <[email protected]>

* Update CHANGE_LOG.md (RPTools#876)

Added RPTools#872, RPTools#874.

* Adds ISO Formatted time with UTC offset

Signed-off-by: JamzTheMan <[email protected]>

* Fix for strings being returned with quotes (RPTools#881)

Fixes RPTools#775.  Strings were being returned with quotes.

* Work around JDK bug https://bugs.openjdk.java.net/browse/JDK-8208712

* Add fix for introduced NPE on quit using accel key

* Phergus change log patch 3 (RPTools#889)

* Update CHANGE_LOG.md

* Update CHANGE_LOG.md

Added info on 831 and 883.  Cleanup.

* Fix for RPTools#831 - numbers being returned as strings. (RPTools#888)

* Fix for RPTools#831 - numbers being returned as strings.

json.path.read() was returning numbers as strings.  Fixed.

* Forgot to run spotless

Gotta have that space in there. lol

* Update Crowdin configuration file

* Added badge for localization.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants