Bug 49566

GemStone/S 64 Bit

3.6.1, 3.6, 3.5.6, 3.5.5, 3.5.4, 3.5.3, 3.5.1, 3.5, 3.4.5, 3.4.4, 3.4.3, 3.4.2, 3.4.1, 3.4, 3.3.9, 3.3.8, 3.3.7, 3.3.5, 3.3.4, 3.3.3, 3.3.2, 3.3.1, earlier versions


Object >> passivate produced incorrect results for some cases

If an instance of ScaledDecimal, Fraction, or FixedPoint has an instance variable containing a LargeInteger, and if that instance of ScaledDecimal, Fraction or FixedPoint appears more than once in the object graph, the passivation of the second reference is incorrect, and the reactivated object will contain an incorrect value/class.

for example,

     largeSD := 122292150460684697573.45s2.
     coll := { largeSD . largeSD }.
     coll = coll passivate activate

Also, when an Object's closure contains ExecBlocks (such as SortedCollections, which contain a sortBlock), the source string for the block is included in the passivated form. If in-memory GC occurs while passivating (this is more likely to occur in later versions of GemStone), the sourceString may be flushed and not included in the passivated form, which creates an error on activation.

Last updated: 6/15/21