Character Sheet Tab unable to process

Description

Open up one of my characters - switch to the character tab and see this where a character sheet should be:

Unable to process sheet
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: plugin/exporttokens/FollowerToken

This seems to only break the Standard.htm preview sheet.

Environment

SVN 16569

Activity

Show:
Andrew Maitland
March 20, 2012, 9:07 AM

Follow up - this seems to only affect characters with Companions

Here is the rest of the error:

07:20:50.113 SEVERE AWT-EventQueue-1 CharacterSheetPanel:199 Unable to process sheet:
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: plugin/exporttokens/FollowerToken
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at pcgen.gui2.csheet.CharacterSheetPanel$RefreshTask$1.run(CharacterSheetPanel.java:184)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
at pcgen.gui.PCGen_Frame1$WaitCursorEventQueue.dispatchEvent(PCGen_Frame1.java:2934)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.NoClassDefFoundError: plugin/exporttokens/FollowerToken
at plugin.exporttokens.FollowerTypeToken.getToken(FollowerTypeToken.java:135)
at pcgen.io.ExportHandler.replaceToken(ExportHandler.java:1964)
at pcgen.io.ExportHandler.replaceTokenSkipMath(ExportHandler.java:187)
at pcgen.core.VariableProcessor.getExportVariable(VariableProcessor.java:856)
at pcgen.core.VariableProcessor.lookupVariable(VariableProcessor.java:689)
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:5018)
at pcgen.core.PlayerCharacter.getVariableValue(PlayerCharacter.java:4992)
at pcgen.io.ExportHandler.getVarValue(ExportHandler.java:404)
at pcgen.io.ExportHandler.processLoop(ExportHandler.java:1044)
at pcgen.io.ExportHandler.loopFOR(ExportHandler.java:989)
at pcgen.io.ExportHandler.write(ExportHandler.java:242)
at pcgen.gui2.facade.CharacterFacadeImpl.export(CharacterFacadeImpl.java:2482)
at pcgen.gui2.csheet.CharacterSheetPanel$DocumentConstructor.call(CharacterSheetPanel.java:221)
at pcgen.gui2.csheet.CharacterSheetPanel$DocumentConstructor.call(CharacterSheetPanel.java:213)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

James Dempsey
March 21, 2012, 3:21 AM

The FOLLOWERTYPE token refers to FollowerToken in the body, but that class will not be available in the classpath of the plugin. This issue has likely been around for years. It will only occur in an installed enviornment, not a standard dev IDE setup too.

Potential solutions: Move referenced code into a normal PCGen class, either by making FollowerToken a non-plugin token, or moving its code to a another non-plugin class.

James Dempsey
March 21, 2012, 3:23 AM

Unable to reproduce in IDE, but theoretically viable.

James Dempsey
April 4, 2012, 5:38 AM

Moved the token with the shared code back into the main program. This deleted the existing FOLLOWERTOKEN plugin jar, so a copy of the autobuild etc over an existing install may nto fix the issue.

Assignee

James Dempsey

Reporter

Andrew Maitland

Labels

None

Theme

None

Epic/Theme

None

Pending User Input

None

Components

Fix versions

Affects versions

Priority

Minor
Configure