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

Reply via email to