Hi Norberto, thank you very much for the test code. I was able to reproduce and fix the problem. You may install "r41Beta8" from the "MagmaTester" project of squeaksource.
Now, for as long as you have been using Magma, I know you are aware your classes can evolve with new and different inst vars without having to change the class of your legacy instances. So you are doing something different and unusual here, changing the class of existing instances. Out of curiousity, why are you interested in doing that?
- Chris
Full details about r41Beta8:
- Save TTCFonts similarly to StrikeFonts! - Now detecting objects that have *only* had their class changed in a transaction. - Handling higher-level Error to ensure a sessions transaction-level is decremented. - Fix for excited clients when server coming up problem. - Extra guards for MagmaForwardingProxy's, so they can be used seamlessly as non-persistent objects (i.e., for in-memory domain testing). - MagmaSessionRequest similarly, can now be used non-persistently. - Wait a user-specified timeoutSeconds instead of default timeout, when connecting the initial socket. Don't retry.
r41Beta8 consists of the following packages:
Ma exception handling-cmm.25 Ma base additions-cmm.105 Ma proxy support-cmm.34 Ma traverse object graphs-cmm.24 MaFixedWidthReport-cmm.4 Ma Statistics-cmm.9 Ma object serialization-cmm.178 Collections-BTree-lr.68 Ma special collections-cmm.91 Ma client server-cmm.157 WriteBarrier-pmm.26 Magma client-cmm.306 Magma server-cmm.267 Ma Armored Code-cmm.120 Ma Squeak domain-cmm.5 Ma special collections tester-cmm.11 Ma object serialization tester-cmm.16 Magma tester-cmm.279
On Mon, Aug 4, 2008 at 11:29 AM, Norberto Manzanos nmanzanos@gmail.com wrote:
Hi.
I'm trying to change the class of one instance variable of an object persistend in a MagmaCollection. Schematically, what I'm doing is
open a session retrive the object begin transaction change the classs (using #primitiveChangeClassTo: commit transaction close session
open session retrieve the object check the class . FAILS!.
I tried removing the object from the collection, and readding it, but it failed too. Could anybody tell me is there is a special thing I must do to achieve this need?
I'm sending a test with an example and some sample classes.
Thanks in advance.
Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma
magma@lists.squeakfoundation.org