== Why is this an issue? Overriding the ``++Object.finalize()++`` method must be done with caution to dispose some system resources. Calling the ``++super.finalize()++`` at the end of this method implementation is highly recommended in case parent implementations must also dispose some system resources. === Noncompliant code example [source,java] ---- protected void finalize() { // Noncompliant; no call to super.finalize(); releaseSomeResources(); } protected void finalize() { super.finalize(); // Noncompliant; this call should come last releaseSomeResources(); } ---- === Compliant solution [source,java] ---- protected void finalize() { releaseSomeResources(); super.finalize(); } ---- == Resources * https://cwe.mitre.org/data/definitions/568[MITRE, CWE-568] - finalize() Method Without super.finalize() * https://wiki.sei.cmu.edu/confluence/x/4jZGBQ[CERT, MET12-J.] - Do not use finalizers ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Add a call to super.finalize() at the end of this Object.finalize() implementation. Move this super.finalize() call to the end of this Object.finalize() implementation. ''' == Comments And Links (visible only on this page) === is related to: S1115 === on 4 Jul 2013, 12:09:44 Freddy Mallet wrote: Is implemented by \http://jira.codehaus.org/browse/SONARJAVA-197 endif::env-github,rspecator-view[]