Karaf 4.3.6 If more then one command is schedule to run in the foreground, the some of the command will fail to run with "java.lang.IllegalStateException: A job is already in foreground". Command that are scheduled to run in the background do not have this issue.
Is this the intended behavior? Please update the documentation, https://karaf.apache.org/manual/latest/#_schedule_a_command, on running jobs in the background. Where job runs Command to schedule job --------------- --------------------------------------------------------------- Foreground scheduler:schedule-command --cron "0 0/1 * * * ?" "http:list" Background scheduler:schedule-command --cron "0 0/1 * * * ?" "http:list &" *** * Scheduling the commands to run in the foreground *** karaf@root()> scheduler:schedule-command --cron "0 0/1 * * * ?" "http:list" karaf@root()> scheduler:schedule-command --cron "0 0/1 * * * ?" "http:proxy-list" karaf@root()> scheduler:list Name │ Schedule ─────────────────────────┼────────────────────────────────────────────── bugdataEmailReceiver.165 │ at(2022-05-16T12:22:05.378-04:00, -1, 300000) http:proxy-list │ cron(0 0/1 * * * ?) http:list │ cron(0 0/1 * * * ?) karaf@root()> ID │ Servlet │ Servlet-Name │ State │ Alias │ Url ───┼──────────────┼──────────────┼─────────────┼───────┼───── 86 │ Whiteboard$1 │ cxf-servlet │ Deployed │ │ [/*] *** * karaf.log *** 13:40:00.023 WARN [Karaf_Worker-22] Error executing scheduled command http:proxy-list java.lang.IllegalStateException: A job is already in foreground at org.apache.felix.gogo.runtime.CommandSessionImpl$JobImpl.foreground(CommandSessionImpl.java:677) ~[?:?] at org.apache.felix.gogo.runtime.CommandSessionImpl$JobImpl.start(CommandSessionImpl.java:794) ~[?:?] at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:300) ~[?:?] at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:169) ~[?:?] at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:149) ~[?:?] at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:179) ~[?:?] at org.apache.karaf.shell.impl.console.ConsoleSessionImpl.execute(ConsoleSessionImpl.java:496) ~[?:?] at org.apache.karaf.scheduler.command.support.CommandJob.execute(CommandJob.java:40) [!/:?] at org.apache.karaf.scheduler.core.QuartzJobExecutor.execute(QuartzJobExecutor.java:58) [!/:?] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [!/:?] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [!/:?] *** * Scheduling the commands to run in the background *** karaf@root()> scheduler:schedule-command --cron "0 0/1 * * * ?" "http:list &" karaf@root()> scheduler:schedule-command --cron "0 0/1 * * * ?" "http:proxy-list &" karaf@root()> [1] background http:proxy-list karaf@root()> URL │ ProxyTo │ Balancing Policy ────┼─────────┼───────────────── [1] done http:proxy-list karaf@root()> [1] background http:list karaf@root()> ID │ Servlet │ Servlet-Name │ State │ Alias │ Url ───┼──────────────┼──────────────┼─────────────┼───────┼───── 86 │ Whiteboard$1 │ cxf-servlet │ Deployed │ │ [/*] [1] done http:list karaf@root()> Paul Spencer