CWE ID: 568
Name: finalize() Method Without super.finalize()
Das Produkt enthält eine finalize()
Methode, die super.finalize()
nicht aufruft. Dies kann zu unerwartetem Verhalten und potenziellen resource leaks führen, da die garbage collection möglicherweise nicht korrekt ausgeführt wird. Es wird empfohlen, die finalize()
Methode zu überarbeiten und super.finalize()
aufzurufen, oder die Methode vollständig zu entfernen, falls sie nicht benötigt wird. Die Verwendung von finalize()
ist generell als veraltet und nicht zuverlässig angesehen und sollte durch modernere Alternativen wie try-with-resources oder explizite resource management ersetzt werden.
Die Java Language Specification empfiehlt ausdrücklich, dass eine finalize()
Methode super.finalize()
aufruft, um eine korrekte und vorhersehbare garbage collection zu gewährleisten. Das Versäumnis, dies zu tun, kann zu unerwartetem Verhalten und potenziellen Problemen bei der resource management führen und die Stabilität des runtime environment beeinträchtigen. Es ist eine bewährte Praxis, diese Richtlinie zu befolgen, um die Integrität des application lifecycle zu erhalten.
Effektivität: Unknown
Beschreibung: Rufen Sie die super.finalize()
Methode auf.
Effektivität: Unknown
Beschreibung: Nutzen Sie statische Analyse-Tools, um solche Probleme in Ihrem Code zu identifizieren.