Bill Burcham created GEODE-7369:
-----------------------------------
Summary: Deprecate SystemFailure Class
Key: GEODE-7369
URL: https://issues.apache.org/jira/browse/GEODE-7369
Project: Geode
Issue Type: Bug
Components: core
Reporter: Bill Burcham
The {{SystemFailure}} class is a clearing house for detecting and attempting to
mitigate {{SystemFailure}} exceptions e.g. {{VirtualMachineError}} and
{{OutOfMemoryError}}.
This class should not exist. {{SystemFailure}} exceptions should be allowed to
percolate up and cause the JVM to terminate with an informative message in the
log, if possible.
Here is what the JVM spec has to say [1]:
"A Java Virtual Machine implementation throws an object that is an instance of
a subclass of the class VirtualMethodError (sic) when an internal error or
resource limitation prevents it from implementing the semantics described in
this chapter. This specification cannot predict where internal errors or
resource limitations may be encountered and does not mandate precisely when
they can be reported."
There's a typo in the spec there: it says "VirtualMethodError" when it means
"VirtualMachineError". Anyhoo, the upshot is: the JVM spec does not apply after
you've encountered a {{VirtualMachineError}}. As a result, there is no reason
to believe that subsequent processing will make things _better_ (than exiting
immediately).
This class should be deprecated so no new dependencies to it are added.
Existing dependencies on it, should be eliminated over time.
[1] https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html#jvms-6.3
--
This message was sent by Atlassian Jira
(v8.3.4#803005)