All Downloads are FREE. Search and download functionalities are using the official Maven repository.

resources.report.rules.pmd.FinalizeDoesNotCallSuperFinalize.html Maven / Gradle / Ivy

Go to download

Sanity4J was created to simplify running multiple static code analysis tools on the Java projects. It provides a single entry point to run all the selected tools and produce a consolidated report, which presents all findings in an easily accessible manner.

There is a newer version: 1.8.2
Show newest version


FinalizeDoesNotCallSuperFinalize

FinalizeDoesNotCallSuperFinalize

If the finalize() is implemented, its last action should be to call super.finalize.



//MethodDeclaration[MethodDeclarator[@Image='finalize'][not(FormalParameters/*)]]
   /Block
      /BlockStatement[last()]
      [not(Statement/StatementExpression/PrimaryExpression
            [./PrimaryPrefix[@SuperModifier='true']]
            [./PrimarySuffix[@Image='finalize']]
          )
      ]
      [not(Statement/TryStatement/FinallyStatement
       /Block/BlockStatement/Statement/StatementExpression/PrimaryExpression
            [./PrimaryPrefix[@SuperModifier='true']]
            [./PrimarySuffix[@Image='finalize']]
          )
      ]

Example(s):


protected void finalize() {
	something();
	// neglected to call super.finalize()
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy