#2201 Service.onStart() does not log causing Errs

SlimerDude Sat 9 Nov 2013

When Service.onStart() throws an Err, it's nice that the Err is logged, but what happens to the cause?

const class Awesome : Service {
  override Void onStart() {
    throw Err("BOOM", Err("BABY"))
  }
  
  static Void main(Str[] args) {
    Awesome().start
  }
}

only shows an Err of BOOM. Where's my BABY!?

sys::Err: BOOM
  at fan.sys.Err.make(Err.java:78)
  at fan.wotever.Awesome.onStart(Awesome.fan:4)
  at fan.sys.Service$.start(Service$.java:206)
  ...

The causing Err is often quite important and it's a shame to loose that information.

If you don't wish to log the whole Err, then a field / mechanism to retrieve Errs on startup would be handy.

brian Sun 10 Nov 2013

I pushed a fix. Ideally we would route to a proper Log, but sometimes that causes some chicken in the egg problems with bootstrap. So at least it will go to stdout properly now.

Login or Signup to reply.