This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Difference between revisions of "Poor Style: Explicit call to finalize()"
From OWASP
Weilin Zhong (talk | contribs) |
|||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{template:CandidateForDeletion}} |
− | + | #REDIRECT [[Failure to follow guideline/specification]] | |
− | |||
− | + | ||
+ | Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}''' | ||
+ | |||
==Description== | ==Description== | ||
+ | |||
+ | The finalize() method should only be called by the JVM after the object has been garbage collected. | ||
While the Java Language Specification allows an object's finalize() method to be called from outside the finalizer, doing so is usually a bad idea. For example, calling finalize() explicitly means that finalize() will be called more than once: the first time will be the explicit call and the last time will be the call that is made after the object is garbage collected. | While the Java Language Specification allows an object's finalize() method to be called from outside the finalizer, doing so is usually a bad idea. For example, calling finalize() explicitly means that finalize() will be called more than once: the first time will be the explicit call and the last time will be the call that is made after the object is garbage collected. | ||
− | ==Examples == | + | |
+ | ==Risk Factors== | ||
+ | |||
+ | TBD | ||
+ | |||
+ | ==Examples== | ||
The following code fragment calls finalize() explicitly: | The following code fragment calls finalize() explicitly: | ||
Line 21: | Line 29: | ||
</pre> | </pre> | ||
− | ==Related | + | ==Related [[Attacks]]== |
+ | |||
+ | * [[Attack 1]] | ||
+ | * [[Attack 2]] | ||
+ | |||
+ | |||
+ | ==Related [[Vulnerabilities]]== | ||
+ | |||
+ | * [[Vulnerability 1]] | ||
+ | * [[Vulnerabiltiy 2]] | ||
+ | |||
+ | ==Related [[Controls]]== | ||
+ | |||
+ | * [[Control 1]] | ||
+ | * [[Control 2]] | ||
+ | |||
− | ==Related | + | ==Related [[Technical Impacts]]== |
− | [[ | + | * [[Technical Impact 1]] |
+ | * [[Technical Impact 2]] | ||
− | |||
− | == | + | ==References== |
− | + | TBD | |
− | |||
− | |||
− | |||
− |
Latest revision as of 23:27, 7 April 2009
#REDIRECT Failure to follow guideline/specification
Last revision (mm/dd/yy): 04/7/2009
Description
The finalize() method should only be called by the JVM after the object has been garbage collected.
While the Java Language Specification allows an object's finalize() method to be called from outside the finalizer, doing so is usually a bad idea. For example, calling finalize() explicitly means that finalize() will be called more than once: the first time will be the explicit call and the last time will be the call that is made after the object is garbage collected.
Risk Factors
TBD
Examples
The following code fragment calls finalize() explicitly:
// time to clean up widget.finalize();
Related Attacks
Related Vulnerabilities
Related Controls
Related Technical Impacts
References
TBD