Inhereited size change templates through CHOOSE do not work unless Medium or Small

Description

Create a homebrew template LST file with this in it:

Create a pathfinder character, human, fighter (race and class do not matter).

Go to template tab.

If you apply any of the specific size modifier templates note they all work correctly. Size bonus/penalty is applied to hit/ac/cmb/cmd correctly, size is updated at the top of the sheet.

Now try selecting TestChoose and size small. Note this one applies correctly. TestChoose and size medium also applies correctly.

Any other size chosen through TestChoose will fail with this error on the char sheet tab:
Unable to process sheet
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: CDOMObject cannot be null

The error in F10 is far longer.

Note after each fail you will need to close the character and reopen...it doesn't seem to recover from the error gracefully.

IMPACT:
The current design for Wild Shape through a CHOOSE template doesn't work because of this bug. Only small and medium creatures currently have any animals set up which do work, but if you try to make any other size it fails. The above example strips out all the extraneous stuff to illustrate the problem cleanly.

There are a number of other bugs related to Wild Shape as well but...this one is a deal breaker and has to be resolved before anything else really.

Environment

n/a

Activity

Show:
Mark Means
November 5, 2014, 4:30 PM

Andrew, Will the sizeAdjustment changes you made to data have any effect on this?

Andrew Maitland
November 5, 2014, 4:52 PM

Java error is not related to the Size Change methods I made. It's an
export to the preview sheet problem, and totally unrelated to the
gamemode sizeadjustment file.

If you apply a Young Creature template with the change, you'll have
completely incorrect stats, but I'm not going to address that, till the
backport is completed by Henk.

Mark Means
November 5, 2014, 5:31 PM

I thought the F10 log showed a CDOM error before even trying to view the OS.

Mark Means
November 5, 2014, 5:49 PM

Yes. It does. The CDOM error when building the OS is probably caused by an underlying uncaught error that bubbles up to the OS code and then causes the OS error. The underlying error is:

15:46:16.318 INFO AWT-EventQueue-0 CharacterFacadeImpl:4101 test: Adding template TestChoose
15:46:21.22 SEVERE AWT-EventQueue-0 Main:596 Uncaught error - ignoring
java.lang.IllegalArgumentException: CDOMObject cannot be null
at pcgen.cdom.facet.event.ScopeFacetChangeEvent.<init>(ScopeFacetChangeEvent.java:107)
at pcgen.cdom.facet.base.AbstractScopeFacet.fireScopeFacetChangeEvent(AbstractScopeFacet.java:452)
at pcgen.cdom.facet.base.AbstractAssociationFacet.remove(AbstractAssociationFacet.java:126)
at pcgen.cdom.facet.input.TemplateInputFacet.remove(TemplateInputFacet.java:130)
at pcgen.core.PlayerCharacter.removeTemplate(PlayerCharacter.java:6242)
at pcgen.cdom.facet.AddedTemplateFacet.dataRemoved(AddedTemplateFacet.java:292)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:263)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:201)
at pcgen.cdom.facet.base.AbstractSourcedListFacet.processRemoval(AbstractSourcedListFacet.java:500)
at pcgen.cdom.facet.base.AbstractSourcedListFacet.remove(AbstractSourcedListFacet.java:144)
at pcgen.cdom.facet.CDOMObjectConsolidationFacet.remove(CDOMObjectConsolidationFacet.java:92)
at pcgen.cdom.facet.CDOMObjectConsolidationFacet.dataRemoved(CDOMObjectConsolidationFacet.java:159)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:263)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:201)
at pcgen.cdom.facet.base.AbstractSourcedListFacet.processRemoval(AbstractSourcedListFacet.java:500)
at pcgen.cdom.facet.base.AbstractSourcedListFacet.remove(AbstractSourcedListFacet.java:144)
at pcgen.cdom.facet.CharacterConsolidationFacet.dataRemoved(CharacterConsolidationFacet.java:88)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:263)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:201)
at pcgen.cdom.facet.base.AbstractListFacet.remove(AbstractListFacet.java:141)
at pcgen.cdom.facet.model.SimpleAbilityFacet.dataRemoved(SimpleAbilityFacet.java:24)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:263)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:201)
at pcgen.cdom.facet.base.AbstractCNASEnforcingFacet.remove(AbstractCNASEnforcingFacet.java:108)
at pcgen.cdom.facet.base.AbstractCNASEnforcingFacet.dataRemoved(AbstractCNASEnforcingFacet.java:186)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:263)
at pcgen.cdom.facet.base.AbstractDataFacet.fireDataFacetChangeEvent(AbstractDataFacet.java:201)
at pcgen.cdom.facet.base.AbstractListFacet.remove(AbstractListFacet.java:141)
at pcgen.cdom.facet.ConditionallyGrantedAbilityFacet.update(ConditionallyGrantedAbilityFacet.java:86)
at pcgen.core.PlayerCharacter.setDirty(PlayerCharacter.java:965)
at pcgen.core.PlayerCharacter.addTemplate(PlayerCharacter.java:4936)
at plugin.lsttokens.TemplateLst.applyChoice(TemplateLst.java:250)
at plugin.lsttokens.TemplateLst.applyChoice(TemplateLst.java:48)
at pcgen.rules.persistence.token.AbstractQualifiedChooseToken.restoreChoice(AbstractQualifiedChooseToken.java:166)
at pcgen.rules.persistence.token.AbstractQualifiedChooseToken.applyChoice(AbstractQualifiedChooseToken.java:140)
at pcgen.rules.persistence.token.AbstractQualifiedChooseToken.applyChoice(AbstractQualifiedChooseToken.java:20)
at pcgen.core.chooser.CDOMChoiceManager.applyChoice(CDOMChoiceManager.java:286)
at pcgen.cdom.facet.ChooseDriverFacet$Adder.addAssoc(ChooseDriverFacet.java:84)
at pcgen.cdom.facet.ChooseDriverFacet$Adder.dataAdded(ChooseDriverFacet.java:68)
at pcgen.cdom.facet.base.AbstractScopeFacet.fireScopeFacetChangeEvent(AbstractScopeFacet.java:460)
at pcgen.cdom.facet.base.AbstractAssociationFacet.set(AbstractAssociationFacet.java:106)
at pcgen.cdom.facet.input.TemplateInputFacet.directAdd(TemplateInputFacet.java:120)
at pcgen.cdom.facet.input.TemplateInputFacet.processChoice(TemplateInputFacet.java:89)
at pcgen.cdom.facet.input.TemplateInputFacet.add(TemplateInputFacet.java:55)
at pcgen.core.PlayerCharacter.addTemplate(PlayerCharacter.java:4929)
at pcgen.gui2.facade.CharacterFacadeImpl.addTemplate(CharacterFacadeImpl.java:4104)
at pcgen.gui2.tabs.TemplateInfoTab$AddAction.actionPerformed(TemplateInfoTab.java:267)
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$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
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)

James Dempsey
June 7, 2015, 6:49 PM

Resolved in

Fixed

Assignee

James Dempsey

Reporter

dirksj

Labels

Theme

None

Epic/Theme

None

Pending User Input

None

Components

Fix versions

Affects versions

Priority

Major
Configure