Updated ARM Spec
David Holmes
David.Holmes at oracle.com
Tue Oct 26 17:02:48 PDT 2010
Paul Benedict said the following on 10/27/10 09:49:
> I may have read Joe's email wrong, but I thought he wanted the ability
> to tell certain Throwable instances not to tag on additional data. I
> thought he wanted to have immutability when he needed it. So why can't
> you preallocate your Throwable instances, call freeze(), and share
> them? What is "null" doing that freeze() cannot?
I agree this is feasible. If internally we use "null" to represent
immutability then freeze() could set everything to null, and the VM
allocated instances would act as-if they were constructed and then had
freeze() invoked upon them.
The only downside to freeze() is that it freezes everything at once
whereas the current scheme allows you to make the stacktrace immutable
independently of the suppressedExceptions, and independently of the
cause (which is a set once property anyway). The VM may make instances
that are fully immutable, but the user may want more flexibility here.
Cheers,
David
More information about the coin-dev
mailing list