PUBLIC OBJECT

I want annotated stack traces!

The message on Java exceptions is very helpful. But even that isn't always enough to diagnose a runtime failure.

  java.lang.NullPointerException
    at square.cash.Emailer.expired(Emailer.java:348)
    at square.cash.Processor.process(Processor.java:99)
    at square.queue.Queue.run(Queue.java:251)

I'd love to see a Java runtime that  lets me annotate my locals:

  public void process(*@InStackTrace* long id) {
    ...
  }

... and then includes those locals in stacktraces:

  java.lang.NullPointerException
    at square.cash.Emailer.expired(Emailer.java:348)
    at square.cash.Processor.process(Processor.java:99) *id=123*
    at square.queue.Queue.run(Queue.java:251)

If you're working on a VM that runs Java programs, please build this for me!