MapTool 1.3 Final, patch01 (build 84)
Moderators: dorpond, trevor, Azhrei, Craig
- LeopoldVonRanke
- Giant
- Posts: 123
- Joined: Thu Jun 17, 2010 2:50 pm
- Location: Maine
- Contact:
Re: MapTool 1.3 Final, patch01 (build 84)
So... apart from the GUI debate... how are things going for the final final patch?
---------------------------------------------------------------------------
Now using Dolby Axon for RPG sessions.
(Forget Skype. Put your players into a 3D sound environment.)
---------------------------------------------------------------------------
Now using Dolby Axon for RPG sessions.
(Forget Skype. Put your players into a 3D sound environment.)
---------------------------------------------------------------------------
Re: MapTool 1.3 Final, patch01 (build 84)
Just about done.
I need to finish the work on the HexGrid's support of the validateMove() function. I'm simplifying it from the more complicated version I originally came up with, but the existing code is dense and not very well commented so it's like walking through mud. Up to my knees.
I had planned on patch02 this past weekend, but I have a game tomorrow night so it'll likely be Wednesday at the earliest now.
I need to finish the work on the HexGrid's support of the validateMove() function. I'm simplifying it from the more complicated version I originally came up with, but the existing code is dense and not very well commented so it's like walking through mud. Up to my knees.
I had planned on patch02 this past weekend, but I have a game tomorrow night so it'll likely be Wednesday at the earliest now.
- LeopoldVonRanke
- Giant
- Posts: 123
- Joined: Thu Jun 17, 2010 2:50 pm
- Location: Maine
- Contact:
Re: MapTool 1.3 Final, patch01 (build 84)
May the for...uh... the Java Beans be with you (or whatever it is that Java Developers say).
-
- Dragon
- Posts: 304
- Joined: Mon Mar 23, 2009 4:48 pm
Re: MapTool 1.3 Final, patch01 (build 84)
I think I found a bug, though it might not be universal (i've got a complicated framework setup, though I don't know how that would cause this). Anyhow, when I try to create a new state, the "add" button is grayed out. I can fix it by unchecking the three check boxes and then rechecking them. So, the bug doesn't really cause a problem if you know how to deal with it, but I doubt this behavior was intentional.
Re: MapTool 1.3 Final, patch01 (build 84)
The Add button usually doesn't show until you type in a new name and have all the appropriate settings needed to add the new state. So, if the selection is on image and you don't have an image file loaded, then Add won't show up. Or if you load an image but forgot to type in a name (or new name), Add will not appear. Same thing for Bars.paulstrait wrote:I think I found a bug, though it might not be universal (i've got a complicated framework setup, though I don't know how that would cause this). Anyhow, when I try to create a new state, the "add" button is grayed out. I can fix it by unchecking the three check boxes and then rechecking them. So, the bug doesn't really cause a problem if you know how to deal with it, but I doubt this behavior was intentional.
Downloads:
- Notepad++ MapTool addon
- RPEdit details (v1.3)
- Coding Tips: Modularity and Design
- Videos: Macro Writing Tools
Re: MapTool 1.3 Final, patch01 (build 84)
In which case checking and unchecking the boxes shouldn't cause it to appear. Hopefully the situation was misdescribed.
Drop-In Utilities:
My Spell Manager for D&D3.5 and PFRPG
My Inventory Manager for D&D and PFRPG, but more generally useable than that.
My Message Manager -- My Top-Down D&D Token Images
and my Custom Initiative & Status/Spell-Effect Tracker (work in progress, but functional).
My Spell Manager for D&D3.5 and PFRPG
My Inventory Manager for D&D and PFRPG, but more generally useable than that.
My Message Manager -- My Top-Down D&D Token Images
and my Custom Initiative & Status/Spell-Effect Tracker (work in progress, but functional).
-
- Dragon
- Posts: 304
- Joined: Mon Mar 23, 2009 4:48 pm
Re: MapTool 1.3 Final, patch01 (build 84)
not misdescribed -- I have to fill each field and then check and uncheck in order for add to appear...plothos wrote:In which case checking and unchecking the boxes shouldn't cause it to appear. Hopefully the situation was misdescribed.
-
- Dragon
- Posts: 304
- Joined: Mon Mar 23, 2009 4:48 pm
Re: MapTool 1.3 Final, patch01 (build 84)
Has anyone tried to replicate this? It happens every time, whether it is a new campaign or one with a framework loaded. If you open up campaign properties and go to the states tab, type 'test' in the name field and the group field, and change the type to X (or any of the other non-image types), "add" will be grayed out. Then, uncheck "show to everybody else." the add button will no longer be grayed out, and you can recheck "show to everybody else" without a problem.
Re: MapTool 1.3 Final, patch01 (build 84)
Confirmed. This is a bug. Since the default state is Image, the add button is off. The Add button doesn't update until you change any of the checkboxes in the Show To fields. Then it updates to the correct state. One thing you can do to cause an error is, select X, check and uncheck a box, set it back to Image without having browsed for an image and click okay.paulstrait wrote:Has anyone tried to replicate this? It happens every time, whether it is a new campaign or one with a framework loaded. If you open up campaign properties and go to the states tab, type 'test' in the name field and the group field, and change the type to X (or any of the other non-image types), "add" will be grayed out. Then, uncheck "show to everybody else." the add button will no longer be grayed out, and you can recheck "show to everybody else" without a problem.
error message
java.lang.NullPointerException
at net.rptools.maptool.client.ui.campaignproperties.TokenStatesController.loadAsssetFile(TokenStatesController.java:675)
at net.rptools.maptool.client.ui.campaignproperties.TokenStatesController.createTokenOverlay(TokenStatesController.java:604)
at net.rptools.maptool.client.ui.campaignproperties.TokenStatesController.actionPerformed(TokenStatesController.java:244)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:25)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at net.rptools.maptool.client.ui.campaignproperties.CampaignPropertiesDialog.setVisible(CampaignPropertiesDialog.java:100)
at net.rptools.maptool.client.AppActions$60.execute(AppActions.java:2260)
at net.rptools.maptool.client.AppActions$ClientAction.actionPerformed(AppActions.java:2652)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at de.muntjak.tinylookandfeel.TinyMenuItemUI.doClick(TinyMenuItemUI.java:571)
at de.muntjak.tinylookandfeel.TinyMenuItemUI$MouseInputHandler.mouseReleased(TinyMenuItemUI.java:421)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:25)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
at net.rptools.maptool.client.ui.campaignproperties.TokenStatesController.loadAsssetFile(TokenStatesController.java:675)
at net.rptools.maptool.client.ui.campaignproperties.TokenStatesController.createTokenOverlay(TokenStatesController.java:604)
at net.rptools.maptool.client.ui.campaignproperties.TokenStatesController.actionPerformed(TokenStatesController.java:244)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:25)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at net.rptools.maptool.client.ui.campaignproperties.CampaignPropertiesDialog.setVisible(CampaignPropertiesDialog.java:100)
at net.rptools.maptool.client.AppActions$60.execute(AppActions.java:2260)
at net.rptools.maptool.client.AppActions$ClientAction.actionPerformed(AppActions.java:2652)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at de.muntjak.tinylookandfeel.TinyMenuItemUI.doClick(TinyMenuItemUI.java:571)
at de.muntjak.tinylookandfeel.TinyMenuItemUI$MouseInputHandler.mouseReleased(TinyMenuItemUI.java:421)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:25)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Downloads:
- Notepad++ MapTool addon
- RPEdit details (v1.3)
- Coding Tips: Modularity and Design
- Videos: Macro Writing Tools
Re: MapTool 1.3 Final, patch01 (build 84)
Sorry if this is old news and fixed. I know there was discussion about java.null errors at the beginning of this thread, but I haven't been keeping up with it and didn't want to read 11 pages to see if it has been solved.
I just upgraded my Call of Cthulhu framework to b84 to take advantage of a function b66 didn't have. Now most of the time when I open the campaign file I get the following error. If you don't get it when you first open, just try again. I always get it in the first 3 tries.
I just upgraded my Call of Cthulhu framework to b84 to take advantage of a function b66 didn't have. Now most of the time when I open the campaign file I get the following error. If you don't get it when you first open, just try again. I always get it in the first 3 tries.
Code: Select all
java.lang.NullPointerException
at net.rptools.maptool.client.ui.zone.ZoneRenderer.renderTokens(ZoneRenderer.java:2504)
at net.rptools.maptool.client.ui.zone.ZoneRenderer.renderZone(ZoneRenderer.java:987)
at net.rptools.maptool.client.ui.zone.ZoneRenderer.paintComponent(ZoneRenderer.java:657)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at net.rptools.maptool.client.swing.MapToolEventQueue.dispatchEvent(MapToolEventQueue.java:25)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
View MapTool video tutorials at RPToolsTutorials.net
Re: MapTool 1.3 Final, patch01 (build 84)
The NullPointerException has been fixed and it'll be checked in shortly.aliasmask wrote:Confirmed. This is a bug.
The overall usability issues with this dialog will not be fixed in 1.3 as most (all?) dialogs will be rewritten in 1.4 anyway.
Re: MapTool 1.3 Final, patch01 (build 84)
It might be, but the exception trace is too old to be useful without going back and checking out an old version of the code. Since I'm about to put out a new build (tonight?), just hold off and test with b85.brad wrote:Sorry if this is old news and fixed.
I need to finish my updates to the hex grid validateMove() method and then I'll release the build. I'm this close.............
Re: MapTool 1.3 Final, patch01 (build 84)
Brad's bug is still in current code. With code at rev 5689 it still happens:
I had loaded the campaign several times without hitting it until I fiddled with the View -> Show Token Names option and then it was hitting the NPE all the time. Maybe just a coincidence.
Somehow one of his tokens (the inventory token when I tested it) isn't in the tokenLocationCache and so the location is null. Next line falls down and goes boom.2011-03-18 18:41:35,695 [swing.MapToolEventQueue:32] ERROR - java.lang.NullPointerException
java.lang.NullPointerException
at net.rptools.maptool.client.ui.zone.ZoneRenderer.renderTokens(ZoneRenderer.java:2462)
at net.rptools.maptool.client.ui.zone.ZoneRenderer.renderZone(ZoneRenderer.java:991)
at net.rptools.maptool.client.ui.zone.ZoneRenderer.paintComponent(ZoneRenderer.java:657)
I had loaded the campaign several times without hitting it until I fiddled with the View -> Show Token Names option and then it was hitting the NPE all the time. Maybe just a coincidence.
Code: Select all
TokenLocation location = tokenLocationCache.get(token);
Area bounds = location.bounds;
Re: MapTool 1.3 Final, patch01 (build 84)
Line 2165 calls put() so it has to be there when 2448 adds the token to the list of things to do later. Yet when it gets to line 2461 it isn't in the cache?Phergus wrote:Somehow one of his tokens (the inventory token when I tested it) isn't in the tokenLocationCache and so the location is null. Next line falls down and goes boom.
Obviously there's another routine somewhere that is removing that entry from the cache. That would have to be flush(), setScale(), or setZoneScale(). It would be necessary to set breakpoints in those locations and the run the code until they were hit and look at the call traces to determine the call graph (I don't think there's a free call graph plugin for Eclipse?). One thing I noticed was that the EnforceView option from the Tools menu can cause the cache to be flushed, but obviously you didn't have that option set even if Brad did. Must be something else...
I'm just going to add a check for null in the post processing loop.
Re: MapTool 1.3 Final, patch01 (build 84)
Only way I see for the location to end up null.Azhrei wrote:Yet when it gets to line 2461 it isn't in the cache?
Of course as soon as I put in some extra breakpoints in I can't get it to fail.
Can't spend any more time on it. Have to get a session ready for tomorrow.