MapTool 1.3 Final, patch01 (build 84)

New build announcements plus site news and changes.

Moderators: dorpond, trevor, Azhrei, Craig

User avatar
LeopoldVonRanke
Giant
Posts: 123
Joined: Thu Jun 17, 2010 2:50 pm
Location: Maine
Contact:

Re: MapTool 1.3 Final, patch01 (build 84)

Post by LeopoldVonRanke »

So... apart from the GUI debate... how are things going for the final final patch? :D :twisted: :wink:
---------------------------------------------------------------------------
Now using Dolby Axon for RPG sessions.
(Forget Skype. Put your players into a 3D sound environment.)
---------------------------------------------------------------------------

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: MapTool 1.3 Final, patch01 (build 84)

Post by Azhrei »

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. :shock:

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.

User avatar
LeopoldVonRanke
Giant
Posts: 123
Joined: Thu Jun 17, 2010 2:50 pm
Location: Maine
Contact:

Re: MapTool 1.3 Final, patch01 (build 84)

Post by LeopoldVonRanke »

May the for...uh... the Java Beans be with you (or whatever it is that Java Developers say). 8)

paulstrait
Dragon
Posts: 304
Joined: Mon Mar 23, 2009 4:48 pm

Re: MapTool 1.3 Final, patch01 (build 84)

Post by paulstrait »

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.

User avatar
aliasmask
RPTools Team
Posts: 9024
Joined: Tue Nov 10, 2009 6:11 pm
Location: Bay Area

Re: MapTool 1.3 Final, patch01 (build 84)

Post by aliasmask »

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.
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.

User avatar
plothos
Great Wyrm
Posts: 1890
Joined: Sat Jun 21, 2008 1:07 am

Re: MapTool 1.3 Final, patch01 (build 84)

Post by plothos »

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).

paulstrait
Dragon
Posts: 304
Joined: Mon Mar 23, 2009 4:48 pm

Re: MapTool 1.3 Final, patch01 (build 84)

Post by paulstrait »

plothos wrote:In which case checking and unchecking the boxes shouldn't cause it to appear. Hopefully the situation was misdescribed.
not misdescribed -- I have to fill each field and then check and uncheck in order for add to appear...

paulstrait
Dragon
Posts: 304
Joined: Mon Mar 23, 2009 4:48 pm

Re: MapTool 1.3 Final, patch01 (build 84)

Post by paulstrait »

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.

User avatar
aliasmask
RPTools Team
Posts: 9024
Joined: Tue Nov 10, 2009 6:11 pm
Location: Bay Area

Re: MapTool 1.3 Final, patch01 (build 84)

Post by aliasmask »

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.
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.
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)
I noticed the Browse Button becomes available when selecting image, there should also be a check for the Add button. The check should also be made when changing the state Type.

User avatar
brad
Great Wyrm
Posts: 1233
Joined: Fri Apr 27, 2007 10:27 pm
Location: NY
Contact:

Re: MapTool 1.3 Final, patch01 (build 84)

Post by brad »

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.
Cthulhu_base_2_4.cmpgn
(751.75 KiB) Downloaded 117 times

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

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: MapTool 1.3 Final, patch01 (build 84)

Post by Azhrei »

aliasmask wrote:Confirmed. This is a bug.
The NullPointerException has been fixed and it'll be checked in shortly.

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.

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: MapTool 1.3 Final, patch01 (build 84)

Post by Azhrei »

brad wrote:Sorry if this is old news and fixed.
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.

I need to finish my updates to the hex grid validateMove() method and then I'll release the build. I'm this close.............

Phergus
Deity
Posts: 7132
Joined: Fri May 12, 2006 8:56 pm
Location: Middle of Nowhere, NM
Contact:

Re: MapTool 1.3 Final, patch01 (build 84)

Post by Phergus »

Brad's bug is still in current code. With code at rev 5689 it still happens:
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)
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.

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;

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: MapTool 1.3 Final, patch01 (build 84)

Post by Azhrei »

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.
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?

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. ;)

Phergus
Deity
Posts: 7132
Joined: Fri May 12, 2006 8:56 pm
Location: Middle of Nowhere, NM
Contact:

Re: MapTool 1.3 Final, patch01 (build 84)

Post by Phergus »

Azhrei wrote:Yet when it gets to line 2461 it isn't in the cache?
Only way I see for the location to end up null.

Of course as soon as I put in some extra breakpoints in I can't get it to fail. :x

Can't spend any more time on it. Have to get a session ready for tomorrow.

Post Reply

Return to “Announcements”