[forge-issues] [JBoss JIRA] (FORGE-2548) Better error message what is wrong in a custom wizard for addon developers
George Gastaldi (JIRA)
issues at jboss.org
Tue Dec 8 15:30:00 EST 2015
[ https://issues.jboss.org/browse/FORGE-2548?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13138668#comment-13138668 ]
George Gastaldi commented on FORGE-2548:
----------------------------------------
I found the bug and fixed. Here is a test case illustrating how I found the problem:
{code}
package org.jboss.forge.addon.scaffold;
import java.io.File;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.ProjectFactory;
import org.jboss.forge.addon.resource.Resource;
import org.jboss.forge.addon.resource.ResourceFactory;
import org.jboss.forge.addon.ui.controller.WizardCommandController;
import org.jboss.forge.addon.ui.test.UITestHarness;
import org.jboss.forge.arquillian.AddonDependencies;
import org.jboss.forge.arquillian.AddonDependency;
import org.jboss.forge.arquillian.archive.AddonArchive;
import org.jboss.forge.furnace.container.simple.Service;
import org.jboss.forge.furnace.container.simple.lifecycle.SimpleContainer;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* @author <a href="mailto:ggastald at redhat.com">George Gastaldi</a>
*/
@RunWith(Arquillian.class)
public class ClausBugTest
{
private UITestHarness testHarness;
private ProjectFactory projectFactory;
private ResourceFactory resourceFactory;
@Deployment
@AddonDependencies({
@AddonDependency(name = "org.jboss.forge.addon:parser-java"),
@AddonDependency(name = "org.jboss.forge.addon:maven"),
@AddonDependency(name = "org.jboss.forge.addon:projects"),
@AddonDependency(name = "org.jboss.forge.addon:ui"),
@AddonDependency(name = "org.jboss.forge.addon:ui-test-harness"),
@AddonDependency(name = "org.jboss.forge.furnace.container:simple"),
@AddonDependency(name = "io.fabric8.forge:camel", version = "2.2.72")
})
public static AddonArchive getDeployment()
{
return ShrinkWrap
.create(AddonArchive.class)
.addAsServiceProvider(Service.class, ClausBugTest.class);
}
@Before
public void setUp()
{
projectFactory = SimpleContainer.getServices(getClass().getClassLoader(), ProjectFactory.class).get();
resourceFactory = SimpleContainer.getServices(getClass().getClassLoader(), ResourceFactory.class).get();
testHarness = SimpleContainer.getServices(getClass().getClassLoader(), UITestHarness.class).get();
}
@Test
public void testSomething() throws Exception
{
Resource<File> root = resourceFactory.create(new File("/home/ggastald/workspace/foo"));
Project project = projectFactory.findProject(root);
Assert.assertNotNull("Should have found a project", project);
try (WizardCommandController controller = testHarness.createWizardController("Camel: Add Endpoint", root))
{
Assert.assertNotNull("Should have created controller", controller);
controller.initialize();
controller.setValueFor("componentName", "netty4-http");
controller.setValueFor("instanceName", "Foo");
controller.setValueFor("routeBuilder", "org.foo.MyRoutes");
Assert.assertTrue(controller.canMoveToNextStep());
controller.next().initialize();
controller.setValueFor("host", "host");
controller.setValueFor("port", "8080");
controller.setValueFor("path", "path");
Assert.assertTrue(controller.canMoveToNextStep());
controller.next().initialize();
}
}
}
{code}
> Better error message what is wrong in a custom wizard for addon developers
> --------------------------------------------------------------------------
>
> Key: FORGE-2548
> URL: https://issues.jboss.org/browse/FORGE-2548
> Project: Forge
> Issue Type: Enhancement
> Affects Versions: 3.0.0.Alpha2
> Reporter: Claus Ibsen
>
> When you develop custom addon's then various things can go wrong. And whether the command runs in CLI or IDEA or Eclipse then it works a little bit differently.
> I have a command wizard that fails with this cryptic index out of bounds exception. I finally found the stracktrace in idea.log file, as IDEA itself says nothing
> {code}
> 2015-12-08 10:45:34,976 [ 148775] ERROR - llij.ide.plugins.PluginManager - Index: 2, Size: 2
> java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
> at java.util.ArrayList.rangeCheck(ArrayList.java:653)
> at java.util.ArrayList.get(ArrayList.java:429)
> at org.jboss.forge.addon.ui.impl.controller.WizardCommandControllerImpl.getCurrentEntry(WizardCommandControllerImpl.java:491)
> at org.jboss.forge.addon.ui.impl.controller.WizardCommandControllerImpl.getCurrentController(WizardCommandControllerImpl.java:502)
> at org.jboss.forge.addon.ui.impl.controller.WizardCommandControllerImpl.getInputs(WizardCommandControllerImpl.java:244)
> at org.jboss.forge.addon.ui.impl.controller.NoUIWizardControllerDecorator.getInputs(NoUIWizardControllerDecorator.java:189)
> {code}
> As all the stacktrace is purely in forge code, I cannot really see what I do wrong.
> Can you guys improve that part of the code that has the index out of bounds and do a better exception message that can help me what is the problem / as well other addon developers.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the forge-issues
mailing list