Instances of CompiledMethod are special for several reasons:
They contain platform-specific compiled code.
They may contain implicit references to objects that were in the environment at the time the method was compiled such as global variables or class variables.
For these reasons, instances of CompiledMethod encountered during an unload operation will normally cause the operation to be aborted. This may be overridden by sending the overrideUndumpableClasses message to the ObjectDumper before issuing the unload request. When this override is used, no attempt is made to ensure that the instances of CompiledMethod will actually be executable when loaded. They are simply dumped and reloaded with no special processing. It is up to the application programmer to ensure that the instances of CompiledMethod are used in a meaningful way. In general, instances of CompiledMethod dumped and reloaded will not be executable.
Improper use of the ObjectDumper instance method overrideUndumpableClasses may cause unpredictable and disastrous effects. The classes which are marked as undumpable are typically Virtual Machine (VM) related classes. Improper loading of these classes can result in incorrect execution by the VM.
For CompiledMethods, instance method dumpingReplacementForReplacer: is already defined. Therefore, you may not override this behavior without using the advanced features (see When to define your own strategies).
Last modified date: 10/16/2017