I'm kind of surprised about that;  are you storing the enum values
outside of the page instance (i.e. in the session?)

Inner classes are loaded by the disposable component class loader (the
class loader that handles retry logic and class transformation).  When
a class changes, the class loader, plus and objects instantiated from
that class loader, are discarded.

If you place such an object in the session, it will hang around
(keeping the class loader from being garbage collected) ... AND when
the stored value is assigned to a field of the newly loaded page
instance, it will fail with a ClassCastException because there's a new
class (with the same name) loaded by a new class loader.

I'd love to patch up these "leaky abstractions" a bit better, but
that's partt of the price of running in your choice of servlet
container; short of Tapestry being an application server, and not an
application framework, it doesn't have sufficient control of things to
make it any more seamless.

On Tue, Mar 25, 2008 at 2:49 PM, Adam Zimowski <[EMAIL PROTECTED]> wrote:
> If Page or Component defines Enum internally, Tapestry throws a
>  ClassCastException the moment said page or component  class (or even
>  the template) is "hot" reloaded due to any kind of change.
>
>  Can this be fixed/change to allow inner Enums?
>
>  -adam
>  as of 5.0.11
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to