Carsten Ziegeler wrote:

Sylvain Wallez wrote:


!!!!! A LogicSheet cannot be Serializable !!!!!

It extends AbstractLogEnabled and has attributes of type ServiceManager and SourceResolver, which aren't serializable !

Furthermore, I don't understand why LogicSheets go to JCS since the transient store is used (see AbstractMarkupLanguage.service())

Don't have much time ATM, but looking at the recent changes I see a JCSTransientCache. We must be *very careful* with transient cache being actually transient, i.e. *not requiring objects to be serializable*.

If JCS requires objects to be serializable even without a persistent backend, so let's *not use it* for the transient cache, and keep the previous MRU memory store.

And please, please, do not make Serializable objects that intrinsically are not. This is the root of many evils.



I'm currently a little bit confused. We have a store, a transient
store and a persistent store, right?

So, we can make the MemoryStore the transient store (no data
is serialized) and we can make JCS the persistent store (this
requires the objects to be serializable which is ok).
What about the "simple store"?


Surely we have:
Transient: stored in memory, lost on shutdown
Persistent: stored on disc, kept through shutdown
"Simple": stored in memory, pushed to disc when overflowing, persists contents to disc during shutdown.


It is this third case that is the complicated one to handle (and the one that is most useful to me for the CLI).

Upayavira




Reply via email to