Instead of hard-coding 8, you should take an ObjectReader and use its abbreviate method to get the short string, in case you need more than 8 digits to disambiguate an object.

Of course that requires doing disk IO, so it might not be a good idea within the event thread.