[ http://jira.pcgen.org/browse/CODE-369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11189#action_11189 ]
Andrew Wilson commented on CODE-369:
------------------------------------
This is because the Shadow doesn't have a Walk movement. When movement is assigned it gets stored in a couple of arrays that map movement type to the amount of movement. While it's doing that it looks for the walk movement type and if it finds it, it assigns the value of that to a Double. the value of this Double is used by the PCMoveBaseTermEvaluator as the creature's basic movement. Since the Shadow doesn't have a walk speed, this Double is never assigned and when we try to convert it to a string it gives an NPE.
> NPE - Applying HASTE via Temp Bonus to a Kit Shadow causes break down.
> ----------------------------------------------------------------------
>
> Key: CODE-369
> URL: http://jira.pcgen.org/browse/CODE-369
> Project: Code
> Issue Type: Bug
> Affects Versions: 5.16.3
> Reporter: Andrew Maitland
>
> I was following up on DATA-94 and discovered that the Bug is present, and this is what popped up.
> To Recreate:
> New PC
> Apply Shadow Default Kit
> Go to Temp Bonuses and Apply 'Haste' Spell bonus to the PC. Summary screen shows changes and the Console displays a couple of nasty NPE's.
> 02:44:03.308 SEVERE AWT-EventQueue-1 PCGen_Frame1:2944 Uncaught error - ignoring
> java.lang.NullPointerException
> at pcgen.core.term.PCMoveBaseTermEvaluator.evaluate(PCMoveBaseTermEvaluator.java:52)
> at pcgen.core.term.PCMoveBaseTermEvaluator.evaluate(PCMoveBaseTermEvaluator.java:58)
> at pcgen.core.term.BasePCTermEvaluator.resolve(BasePCTermEvaluator.java:57)
> at pcgen.core.VariableProcessorPC.getInternalVariable(VariableProcessorPC.java:77)
> at pcgen.core.VariableProcessor.lookupVariable(VariableProcessor.java:684)
> at pcgen.core.VariableProcessor.processJepFormula(VariableProcessor.java:606)
> at pcgen.core.VariableProcessor.getJepOnlyVariableValue(VariableProcessor.java:197)
> at pcgen.core.VariableProcessor.getVariableValue(VariableProcessor.java:138)
> at pcgen.core.PlayerCharacter.getVariableValue(PlayerCharacter.java:7197)
> at pcgen.core.PlayerCharacter.getVariableValue(PlayerCharacter.java:7171)
> at pcgen.cdom.base.JEPFormula.resolve(JEPFormula.java:97)
> at pcgen.cdom.base.JEPFormula.resolve(JEPFormula.java:28)
> at pcgen.core.bonus.BonusObj$BonusPair.resolve(BonusObj.java:1084)
> at pcgen.core.PlayerCharacter.processBonus(PlayerCharacter.java:13781)
> at pcgen.core.PlayerCharacter.buildActiveBonusMap(PlayerCharacter.java:13027)
> at pcgen.core.PlayerCharacter.calcActiveBonusLoop(PlayerCharacter.java:8795)
> at pcgen.core.PlayerCharacter.calcActiveBonuses(PlayerCharacter.java:8739)
> at pcgen.gui.tabs.InfoTempMod.applyBonusButton(InfoTempMod.java:1161)
> at pcgen.gui.tabs.InfoTempMod.access$000(InfoTempMod.java:128)
> at pcgen.gui.tabs.InfoTempMod$6.actionPerformed(InfoTempMod.java:1359)
> at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
> at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
> at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
> at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
> at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
> at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
> at java.awt.Component.processMouseEvent(Component.java:5517)
> at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
> at java.awt.Component.processEvent(Component.java:5282)
> at java.awt.Container.processEvent(Container.java:1966)
> at java.awt.Component.dispatchEventImpl(Component.java:3984)
> at java.awt.Container.dispatchEventImpl(Container.java:2024)
> at java.awt.Component.dispatchEvent(Component.java:3819)
> at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
> at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
> at java.awt.Container.dispatchEventImpl(Container.java:2010)
> at java.awt.Window.dispatchEventImpl(Window.java:1791)
> at java.awt.Component.dispatchEvent(Component.java:3819)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
> at pcgen.gui.PCGen_Frame1$WaitCursorEventQueue.dispatchEvent(PCGen_Frame1.java:2939)
> at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
> 02:44:09.26 SEVERE AWT-EventQueue-1 PCGen_Frame1:2944 Uncaught error - ignoring
> java.lang.NullPointerException
> at pcgen.core.term.PCMoveBaseTermEvaluator.evaluate(PCMoveBaseTermEvaluator.java:52)
> at pcgen.core.term.PCMoveBaseTermEvaluator.evaluate(PCMoveBaseTermEvaluator.java:58)
> at pcgen.core.term.BasePCTermEvaluator.resolve(BasePCTermEvaluator.java:57)
> at pcgen.core.VariableProcessorPC.getInternalVariable(VariableProcessorPC.java:77)
> at pcgen.core.VariableProcessor.lookupVariable(VariableProcessor.java:684)
> at pcgen.core.VariableProcessor.processJepFormula(VariableProcessor.java:606)
> at pcgen.core.VariableProcessor.getJepOnlyVariableValue(VariableProcessor.java:197)
> at pcgen.core.VariableProcessor.getVariableValue(VariableProcessor.java:138)
> at pcgen.core.PlayerCharacter.getVariableValue(PlayerCharacter.java:7197)
> at pcgen.core.PlayerCharacter.getVariableValue(PlayerCharacter.java:7171)
> at pcgen.cdom.base.JEPFormula.resolve(JEPFormula.java:97)
> at pcgen.cdom.base.JEPFormula.resolve(JEPFormula.java:28)
> at pcgen.core.bonus.BonusObj.resolve(BonusObj.java:453)
> at pcgen.gui.tabs.InfoTempMod$AppliedModel.getValueAt(InfoTempMod.java:1968)
> at pcgen.gui.utils.TreeTableModelAdapter.getValueAt(TreeTableModelAdapter.java:128)
> at javax.swing.JTable.getValueAt(JTable.java:1903)
> at javax.swing.JTable.prepareRenderer(JTable.java:3911)
> at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2072)
> at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1974)
> at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1897)
> at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
> at javax.swing.JComponent.paintComponent(JComponent.java:743)
> at javax.swing.JComponent.paint(JComponent.java:1006)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JViewport.paint(JViewport.java:728)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1021)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1021)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JComponent.paintChildren(JComponent.java:843)
> at javax.swing.JComponent.paint(JComponent.java:1015)
> at javax.swing.JLayeredPane.paint(JLayeredPane.java:559)
> at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4972)
> at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4925)
> at javax.swing.JComponent._paintImmediately(JComponent.java:4868)
> at javax.swing.JComponent.paintImmediately(JComponent.java:4675)
> at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451)
> at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114)
> at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
> at pcgen.gui.PCGen_Frame1$WaitCursorEventQueue.dispatchEvent(PCGen_Frame1.java:2939)
> at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.pcgen.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|