Claus Ibsen created FORGE-2529:
----------------------------------
Summary: Creating commands with multi steps is a pain with repeated calls
Key: FORGE-2529
URL:
https://issues.jboss.org/browse/FORGE-2529
Project: Forge
Issue Type: Enhancement
Affects Versions: 2.20.1.Final
Reporter: Claus Ibsen
I think you guys are aware of the surprise you have as a forge addon developer that you
get repeated calls for next() / execute() / initializeUI() that you do not expected, and
can't seem to grasp the order they are called.
And here I am speaking when a command implements UIWizard.
If something goes wrong you can end up with a stacktrace and exception message that does
not give you much clue how to fix.
{code}
16:33:22,214 SEVERE [org.jboss.forge.addon.shell.aesh.CommandAdapter] (AeshProcess: 3)
Controller cannot be executed: java.lang.IllegalArgumentException: Controller cannot be
executed
at org.jboss.forge.furnace.util.Assert.isTrue(Assert.java:36)
[furnace-api-2.22.7.Final.jar:2.22.7.Final]
at
org.jboss.forge.addon.ui.impl.controller.WizardCommandControllerImpl.execute(WizardCommandControllerImpl.java:129)
[ui-impl-2.20.1.Final.jar:2.20.1.Final]
at
org.jboss.forge.addon.ui.impl.controller.NoUIWizardControllerDecorator.execute(NoUIWizardControllerDecorator.java:152)
[ui-impl-2.20.1.Final.jar:2.20.1.Final]
at org.jboss.forge.addon.shell.aesh.CommandAdapter.execute(CommandAdapter.java:98)
[shell-impl-2.20.1.Final.jar:2.20.1.Final]
at
org.jboss.forge.addon.shell.aesh.ForgeCommandContainer.executeCommand(ForgeCommandContainer.java:90)
[shell-impl-2.20.1.Final.jar:2.20.1.Final]
at
org.jboss.aesh.console.AeshConsoleImpl$AeshConsoleCallbackImpl.execute(AeshConsoleImpl.java:311)
[aesh-0.65.1.jar:0.65.1]
at org.jboss.aesh.console.AeshProcess.run(AeshProcess.java:53) [aesh-0.65.1.jar:0.65.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[rt.jar:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[rt.jar:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
{code}
In past experience I have seen this kind of exception if an exception was thrown in the
initializeUI method that sometimes neither is logged in the forge log. So it can take some
trail and error to fix.
Anyway just wanted to share that if there is something that can enhance that exception
above to give the addon developer a chance to know what was wrong and what he/she can do
to fix it.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)