Place Marker Not acting the same as moving marker from parts

Hi guys,
I have an IP Construction marker that gets replaced by an IP marker as the turn advances through a ClearStatus phase. When I drag the IP construction marker from the parts window and place on map board, all works fine the IP Construction marker gets replaced by the IP marker as the turn is advanced.
When I use the Place Marker command from a unit counter to place the IP Construction marker. It is placed on map board correctly but as the turn is advanced the marker is not replaced with the IP marker. An IP marker is placed on map board but the Construct IP marker remains below the IP marker and Vassal error message window appears the first time the turn is advanced through the ClearStatus phase.

Any Suggestions ?
Thanks
Dave B

And I assume it’s the same IP-C counter (whether drawn manually or right-click drawn via Place Marker), right? Works fine one way but not the other?

What happens if you move the one drawn via Place Marker around the board a bit before advancing the turn?

What does the error message say?

Sorry I can’t be of more help, but I don’t know.

  • Assumption correct same counter works manually when put on map and fails with place marker
  • If I move the IP-C marker around it works both ways (never tried this until now)
  • Error Message: VASSAL had an internal error. You can help the VASSAL developers fix it by sending them this error report with a description of what you were doing when the error happened.

Could you tell me where the error log is located or can you only view via Help->View Error Log. I am not sure what part of it I should include.
I hope that moving the IP-C marker and then working is maybe a clue to what I am doing wrong ?
Thanks for your help,
Dave B

Thus spake fw190d11:

  • Assumption correct same counter works manually when put on map and
    fails with place marker
  • If I move the IP-C marker around it works both ways (never tried this
    until now)
  • Error Message: VASSAL had an internal error. You can help the VASSAL
    developers fix it by sending them this error report with a description
    of what you were doing when the error happened.

Could you tell me where the error log is located or can you only view
via Help->View Error Log. I am not sure what part of it I should
include.

Copy and paste it here. We need the entire error log.

vassalengine.org/wiki/Error_Logs

J.

017-06-27 13:56:34,109 [0-main] INFO VASSAL.launch.StartUp - Starting
2017-06-27 13:56:34,112 [0-main] INFO VASSAL.launch.StartUp - OS Linux 4.4.0-62-generic
2017-06-27 13:56:34,113 [0-main] INFO VASSAL.launch.StartUp - Java version 1.8.0_121
2017-06-27 13:56:34,113 [0-main] INFO VASSAL.launch.StartUp - VASSAL version 3.2.17
2017-06-27 13:56:34,385 [0-AWT-EventQueue-0] INFO VASSAL.launch.ModuleManager - Manager
2017-06-27 13:56:41,221 [0-SwingWorker-pool-84447561-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module file /home/david/Vassal-Work/ALB/ALB-New-Version.vmod
2017-06-27 13:56:41,252 [0-SwingWorker-pool-84447561-thread-1] INFO VASSAL.launch.TilingHandler - No images to tile.
2017-06-27 13:56:41,254 [0-SwingWorker-pool-84447561-thread-1] INFO VASSAL.launch.AbstractLaunchAction - Loading module A las Barricadas
2017-06-27 13:56:41,268 [0-SwingWorker-pool-84447561-thread-1] INFO VASSAL.tools.io.ProcessLauncher - launching /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -Xms256M -Xmx512M -DVASSAL.id=1 -DVASSAL.port=44843 -Duser.home=/home/david -Duser.dir=/home/david/VASSAL-3.2.17 -cp /home/david/VASSAL-3.2.17/lib/Vengine.jar VASSAL.launch.Player --load – /home/david/Vassal-Work/ALB/ALB-New-Version.vmod
2017-06-27 13:56:41,866 [1-main] INFO VASSAL.launch.StartUp - Starting
2017-06-27 13:56:41,870 [1-main] INFO VASSAL.launch.StartUp - OS Linux 4.4.0-62-generic
2017-06-27 13:56:41,870 [1-main] INFO VASSAL.launch.StartUp - Java version 1.8.0_121
2017-06-27 13:56:41,870 [1-main] INFO VASSAL.launch.StartUp - VASSAL version 3.2.17
2017-06-27 13:56:41,870 [1-main] INFO VASSAL.launch.Launcher - Player
2017-06-27 13:56:42,848 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - VASSAL images folder found at jar:file:/home/david/VASSAL-3.2.17/lib/Vengine.jar!/images/
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family network-server created for network-server.png
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family go-down created for go-down.png
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family network-idle created for network-idle.png
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family VASSAL created for VASSAL.png
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family calculator created for calculator.png
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family go-up created for go-up.png
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family VASSAL-jabber created for VASSAL-jabber.png
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family jabber created for jabber.png
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family bug created for bug.png
2017-06-27 13:56:42,853 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family yes created for yes.svg
2017-06-27 13:56:42,854 [1-IconFactory-preload] INFO VASSAL.tools.icon.IconFactory - Icon family no created for no.svg
2017-06-27 13:56:43,324 [1-AWT-EventQueue-0] WARN VASSAL.launch.BasicModule - A las Barricadas version 2.15
2017-06-27 13:57:03,532 [1-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -
java.lang.NullPointerException: null
at VASSAL.counters.Decorator.getOutermost(Decorator.java:303) ~[Vengine.jar:na]
at VASSAL.command.ChangeTracker.(ChangeTracker.java:35) ~[Vengine.jar:na]
at VASSAL.counters.PlaceMarker.placeMarker(PlaceMarker.java:202) ~[Vengine.jar:na]
at VASSAL.counters.Replace.replacePiece(Replace.java:54) ~[Vengine.jar:na]
at VASSAL.counters.Replace.myKeyEvent(Replace.java:47) ~[Vengine.jar:na]
at VASSAL.counters.Decorator.keyEvent(Decorator.java:285) ~[Vengine.jar:na]
at VASSAL.counters.GlobalCommand$Visitor.apply(GlobalCommand.java:176) ~[Vengine.jar:na]
at VASSAL.counters.GlobalCommand$Visitor.visitDefault(GlobalCommand.java:168) ~[Vengine.jar:na]
at VASSAL.counters.PieceVisitorDispatcher.accept(PieceVisitorDispatcher.java:47) ~[Vengine.jar:na]
at VASSAL.counters.DeckVisitorDispatcher.accept(DeckVisitorDispatcher.java:37) ~[Vengine.jar:na]
at VASSAL.counters.GlobalCommand.apply(GlobalCommand.java:117) ~[Vengine.jar:na]
at VASSAL.build.module.GlobalKeyCommand.apply(GlobalKeyCommand.java:36) ~[Vengine.jar:na]
at VASSAL.build.module.map.MassKeyCommand$1.actionPerformed(MassKeyCommand.java:114) ~[Vengine.jar:na]
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) ~[na:1.8.0_121]
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) ~[na:1.8.0_121]
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) ~[na:1.8.0_121]
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) ~[na:1.8.0_121]
at javax.swing.AbstractButton.doClick(AbstractButton.java:376) ~[na:1.8.0_121]
at javax.swing.AbstractButton.doClick(AbstractButton.java:356) ~[na:1.8.0_121]
at VASSAL.build.module.ToolbarMenu$3.actionPerformed(ToolbarMenu.java:248) ~[Vengine.jar:na]
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) ~[na:1.8.0_121]
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) ~[na:1.8.0_121]
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) ~[na:1.8.0_121]
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) ~[na:1.8.0_121]
at javax.swing.AbstractButton.doClick(AbstractButton.java:376) ~[na:1.8.0_121]
at javax.swing.AbstractButton.doClick(AbstractButton.java:356) ~[na:1.8.0_121]
at VASSAL.build.module.MultiActionButton.launch(MultiActionButton.java:53) ~[Vengine.jar:na]
at VASSAL.build.module.ToolbarMenu$1.actionPerformed(ToolbarMenu.java:85) ~[Vengine.jar:na]
at VASSAL.tools.LaunchButton$1.actionPerformed(LaunchButton.java:74) ~[Vengine.jar:na]
at VASSAL.tools.KeyStrokeListener.keyPressed(KeyStrokeListener.java:70) ~[Vengine.jar:na]
at VASSAL.build.GameModule.fireKeyStroke(GameModule.java:401) ~[Vengine.jar:na]
at VASSAL.build.GameModule.fireKeyStroke(GameModule.java:408) ~[Vengine.jar:na]
at VASSAL.build.module.turn.TurnGlobalHotkey.apply(TurnGlobalHotkey.java:117) ~[Vengine.jar:na]
at VASSAL.build.module.turn.TurnTracker.doGlobalkeys(TurnTracker.java:675) ~[Vengine.jar:na]
at VASSAL.build.module.turn.TurnTracker.next(TurnTracker.java:650) ~[Vengine.jar:na]
at VASSAL.build.module.turn.TurnTracker$TurnWidget.doNext(TurnTracker.java:876) ~[Vengine.jar:na]
at VASSAL.build.module.turn.TurnTracker$TurnWidget$1.actionPerformed(TurnTracker.java:895) ~[Vengine.jar:na]
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) ~[na:1.8.0_121]
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) ~[na:1.8.0_121]
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) ~[na:1.8.0_121]
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) ~[na:1.8.0_121]
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) ~[na:1.8.0_121]
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) ~[na:1.8.0_121]
at java.awt.Component.processMouseEvent(Component.java:6533) ~[na:1.8.0_121]
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) ~[na:1.8.0_121]
at java.awt.Component.processEvent(Component.java:6298) ~[na:1.8.0_121]
at java.awt.Container.processEvent(Container.java:2236) ~[na:1.8.0_121]
at java.awt.Component.dispatchEventImpl(Component.java:4889) ~[na:1.8.0_121]
at java.awt.Container.dispatchEventImpl(Container.java:2294) ~[na:1.8.0_121]
at java.awt.Component.dispatchEvent(Component.java:4711) ~[na:1.8.0_121]
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) ~[na:1.8.0_121]
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) ~[na:1.8.0_121]
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) ~[na:1.8.0_121]
at java.awt.Container.dispatchEventImpl(Container.java:2280) ~[na:1.8.0_121]
at java.awt.Window.dispatchEventImpl(Window.java:2746) ~[na:1.8.0_121]
at java.awt.Component.dispatchEvent(Component.java:4711) ~[na:1.8.0_121]
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) ~[na:1.8.0_121]
at java.awt.EventQueue.access$500(EventQueue.java:97) ~[na:1.8.0_121]
at java.awt.EventQueue$3.run(EventQueue.java:709) ~[na:1.8.0_121]
at java.awt.EventQueue$3.run(EventQueue.java:703) ~[na:1.8.0_121]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_121]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) ~[na:1.8.0_121]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) ~[na:1.8.0_121]
at java.awt.EventQueue$4.run(EventQueue.java:731) ~[na:1.8.0_121]
at java.awt.EventQueue$4.run(EventQueue.java:729) ~[na:1.8.0_121]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_121]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) ~[na:1.8.0_121]
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) ~[na:1.8.0_121]
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) [na:1.8.0_121]
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) [na:1.8.0_121]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) [na:1.8.0_121]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [na:1.8.0_121]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) [na:1.8.0_121]
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) [na:1.8.0_121]

I don’t think you’re doing anything wrong, and it may be just that it was selected and had nothing to do with the move at all. I don’t know - I just threw that out there to see what happens. Anyway, I’ll leave the error code to the developers, but here’s a couple workarounds to maybe try until the problem is sorted out… both just more shots in the dark (“save as” first so you can quickly go back to where you are now if they don’t help).

  1. Create a new Game Piece Palette, mark it as hidden, and in it create an exact duplicate of the IP-C marker from the main palette (don’t copy and paste the original piece - create a new piece - but if certain traits are too complicated to redo or there’s too many, then copy and paste those only). Now delete the unit’s Place Marker trait (don’t edit it, delete it), then create a new Place Marker trait, and have that new Place Marker draw the new IP-C piece from the new hidden palette.

  2. Have the turn counter’s gkc (that fires the IP-C change to IP) move the IP-C piece one pixel first using a Moved Fixed Distance trait (no command name). Use a command-less Trigger Action to order them… so the turn counter sends its gkc, then the IP-C’s trigger action has it moving one pixel first, before it gets replaced by IP.

Good luck with it!

Thus spake fw190d11:

017-06-27 13:56:34,109 [0-main] INFO VASSAL.launch.StartUp - Starting
2017-06-27 13:56:34,112 [0-main] INFO VASSAL.launch.StartUp - OS Linux
4.4.0-62-generic

Are you able to reproduce the problem reliably? If so, how?


J.

happens every time. I drag a unit counter from parts window to map. I select a submenu called risky action, select construct ip from sub menu. this calls a place marker command to place a ip-construct marker below the unit counter. this finishes the action of the unit and at this point the turn phase is advanced via gkc and status checks are made on the unit counter. then finally a clearstatus resets the unit counter status and triggers the replace marker command to replace the ip-c with an ip marker below the unit counter that placed the ip-c marker. the ip marker appears but the ip-c marker remains above the ip marker, below the unit counter and then error message.

I will be happy to send the code. i am travelling right now. so may take a day or so.
thanks everone
Dave b

Hi Guys,
I am back home and have been working on this problem. I have isolated the error to a Game Piece Layer issue. When I assign different Layers to the IP Construct and IP markers, the replace with other command works and the module does not crash as before, when both IP Construct and IP had the same value for Layers. Now though the IP Construct is placed above the unit counter that places it and I would like to be placed below.
I hope to get it all figured out eventually.
Thanks again for the help.
Dave B

All is good, figured out layer issue and now all works as I wanted. The problem seemed to be in the layer definitions when IP Construct and IP markers are defined at the same layer, the module errors out with the place marker command and replace marker command. When defined at different layers no error occurs. Example - IP Construct at layer Map and IP at layer Overlay no problems. Works for me…
Thanks to all
Dave B