Bug 47387


GemStone/S 64 Bit

3.6, 3.5.5, 3.5.4, 3.5.3, 3.5.2, 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.6, 3.3.5, 3.3.4, 3.3.3, 3.3.1, 3.3, 3.2.15, 3.2.14, 3.2.13, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2,, earlier versions

#instancesNonPersistent and other class options may be "sticky"

#instancesNonPersistent can be used as an element in the options: argument of a subclass creation method. New instances of the class are then created such as they cannot be made persistent; committing a reference to them from the repository is disallowed. There are a number of other similar options that affect instance behavior, including #subclassesDisallowed, #disallowGciStore, #traverseByCallback, #dbTransient, and  #instancesInvariant.

These options are automatically inherited by subclasses, new versions, and after executing subclass creation methods that do not version the class, but modify the existing class as a side-effect. Attempting to remove an option by defining a new version of the class without that options symbol may not have the desired effect.

If you wish to turn off #instancesNonPersistent or other options, you must specify #noInheritOptions as the first element in the options: argument array when executing the subclass definition method that either redefines the class or defines the subclass.

Last updated: 2/4/19