Hi,

ok that's better indeed. The reason is that according to the spec a
> Servlet can be serialized (saved on disk) if the memory becomes low
> and thus must be able to be loaded back into memory at a later point
> (the same need for load-balancing).
>
> However your change has introduced another problem: transient means
> the field will not be saved when the servlet is serialized. Thus when
> it's deserialized these fields will be null and the code will fail...
>
> Whereas before the servlet would have failed on serialization, it'll
> now fail on deserialization...
>
> Note: Deserialization will not call the constructor.
>

I was hoping upon de serialization it will call init() where i initialize
these variables. But I can't find a reference that says so (yet).



> Solution: either make the field objects serializable or capture
> deserialization to set up the transient field values. Note that this
> last solution may potentially cause problems with threading so this
> might need to be synchronized I think. The best solution is to make
> the field Objects Serializable IMO.
>

One instance variable used is provided by jackrabbit library which is not
serializable. I can do a custom serialization or,

I can create these instance variable for each request (get***) which is a
waste.

Looking around to see if there is another way.

Thanks.

- Asiri


>
> WDYT?
>
> Thanks
> -Vincent
>
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to