Skip to content

Component flow not working #1237

@piotrooo

Description

@piotrooo

For following ComponentFlow:

List<SelectItem> names = List.of(
        SelectItem.of("Name 1", "n1"),
        SelectItem.of("Name 2", "n2"),
        SelectItem.of("Name 3", "n3"),
        SelectItem.of("Name 4", "n4")
);

ComponentFlow componentFlow = componentFlowBuilder.clone().reset()
        .withStringInput("login")
        .name("Login:")
        .defaultValue("j.doe")
        .and()

        .withStringInput("password")
        .name("Password:")
        .maskCharacter('*')
        .and()

        .withNumberInput("id")
        .name("User ID:")
        .required()
        .and()

        .withMultiItemSelector("multiple-names")
        .name("Names:")
        .max(2)
        .selectItems(names)
        .and()

        .withSingleItemSelector("single-name")
        .name("Name:")
        .and()

        .withPathInput("file")
        .name("File path:")
        .and()

        .withConfirmationInput("confirm")
        .name("Confirm:")
        .and()

        .build();

ComponentFlow.ComponentFlowResult flowResult = componentFlow.run();
ComponentContext<?> context = flowResult.getContext();

We are getting errors:

shell:>flow
org.springframework.shell.core.command.CommandExecutionException: Unable to execute command flow
	at org.springframework.shell.core.command.CommandExecutor.execute(CommandExecutor.java:74)
	at org.springframework.shell.core.InteractiveShellRunner.run(InteractiveShellRunner.java:99)
	at org.springframework.shell.core.autoconfigure.ShellRunnerAutoConfiguration.lambda$springShellApplicationRunner$0(ShellRunnerAutoConfiguration.java:41)
	at org.springframework.boot.SpringApplication.lambda$callRunner$0(SpringApplication.java:788)
	at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:82)
	at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60)
	at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:86)
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:800)
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:788)
	at org.springframework.boot.SpringApplication.lambda$callRunners$0(SpringApplication.java:776)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:571)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:776)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:328)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
	at com.example.ComponentsApplication.main(ComponentsApplication.java:9)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:106)
	at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64)
	at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:275)
	at org.springframework.shell.core.command.adapter.MethodInvokerCommandAdapter.doExecute(MethodInvokerCommandAdapter.java:102)
	at org.springframework.shell.core.command.AbstractCommand.execute(AbstractCommand.java:151)
	at org.springframework.shell.core.command.CommandExecutor.execute(CommandExecutor.java:71)
	... 27 more
Caused by: java.io.UncheckedIOException: java.io.FileNotFoundException: class path resource [org/springframework/shell/component/string-input-default.stg] cannot be opened because it does not exist
	at org.springframework.shell.jline.tui.component.support.AbstractComponent.resourceAsString(AbstractComponent.java:346)
	at org.springframework.shell.jline.tui.component.support.AbstractComponent.renderTemplateResource(AbstractComponent.java:227)
	at org.springframework.shell.jline.tui.component.StringInput.access$000(StringInput.java:42)
	at org.springframework.shell.jline.tui.component.StringInput$DefaultRenderer.apply(StringInput.java:328)
	at org.springframework.shell.jline.tui.component.StringInput$DefaultRenderer.apply(StringInput.java:324)
	at org.springframework.shell.jline.tui.component.support.AbstractComponent.render(AbstractComponent.java:133)
	at org.springframework.shell.jline.tui.component.support.AbstractComponent.loop(AbstractComponent.java:295)
	at org.springframework.shell.jline.tui.component.support.AbstractTextComponent.runInternal(AbstractTextComponent.java:75)
	at org.springframework.shell.jline.tui.component.support.AbstractTextComponent.runInternal(AbstractTextComponent.java:41)
	at org.springframework.shell.jline.tui.component.support.AbstractComponent.run(AbstractComponent.java:168)
	at org.springframework.shell.jline.tui.component.flow.ComponentFlow$DefaultComponentFlow.lambda$stringInputsStream$1(ComponentFlow.java:540)
	at org.springframework.shell.jline.tui.component.flow.ComponentFlow$DefaultComponentFlow.runGetResults(ComponentFlow.java:471)
	at org.springframework.shell.jline.tui.component.flow.ComponentFlow$DefaultComponentFlow.run(ComponentFlow.java:410)
	at com.example.ComponentsFlow.generate(ComponentsFlow.java:71)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	... 32 more
Caused by: java.io.FileNotFoundException: class path resource [org/springframework/shell/component/string-input-default.stg] cannot be opened because it does not exist
	at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:212)
	at org.springframework.shell.jline.tui.component.support.AbstractComponent.resourceAsString(AbstractComponent.java:342)
	... 46 more
Unable to run command flow: null

Metadata

Metadata

Assignees

No one assigned

    Labels

    status/need-triageTeam needs to triage and take a first look

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions