From: Michael Vorburger Date: Tue, 28 Jun 2016 23:45:26 +0000 (+0200) Subject: Avoid catch (NullPointerException e), do explicit if == null X-Git-Tag: release/boron~86 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;ds=sidebyside;h=9285869ac3b372747a4e36c2783af2da59651254;p=yangtools.git Avoid catch (NullPointerException e), do explicit if == null This will be required to migrate this code upstream, see https://github.com/sevntu-checkstyle/sevntu.checkstyle/issues/457, so might as well already do this better here, for now. Change-Id: Ic5e90867353b5239a0d6a768e889b75190d33305 Signed-off-by: Michael Vorburger --- diff --git a/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/CheckLoggingUtil.java b/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/CheckLoggingUtil.java index 1c5a6e970c..e8f86bffb8 100644 --- a/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/CheckLoggingUtil.java +++ b/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/CheckLoggingUtil.java @@ -8,15 +8,13 @@ package org.opendaylight.yangtools.checkstyle; -import java.util.List; - -import org.slf4j.Logger; - import com.google.common.collect.Lists; import com.puppycrawl.tools.checkstyle.api.DetailAST; import com.puppycrawl.tools.checkstyle.api.FullIdent; import com.puppycrawl.tools.checkstyle.api.TokenTypes; import com.puppycrawl.tools.checkstyle.utils.CheckUtils; +import java.util.List; +import org.slf4j.Logger; public final class CheckLoggingUtil { diff --git a/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/LoggerFactoryClassParameterCheck.java b/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/LoggerFactoryClassParameterCheck.java index 1dc307d76e..b3812f8ae0 100644 --- a/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/LoggerFactoryClassParameterCheck.java +++ b/common/checkstyle-logging/src/main/java/org/opendaylight/yangtools/checkstyle/LoggerFactoryClassParameterCheck.java @@ -27,16 +27,34 @@ public class LoggerFactoryClassParameterCheck extends AbstractCheck { final String methodName = CheckLoggingUtil.getMethodName(ast); if (methodName.equals(METHOD_NAME)) { final String className = CheckLoggingUtil.getClassName(ast); - try { - final String token = ast.findFirstToken(TokenTypes.ELIST).getFirstChild().getFirstChild() - .getFirstChild().getText(); - if (!token.equals(className)) { - log(ast.getLineNo(), LOG_MESSAGE); - } - } catch (NullPointerException e) { - log(ast.getLineNo(), String.format("Invalid parameter in \"getLogger\" method call in class: %s", - className)); + DetailAST findFirstToken = ast.findFirstToken(TokenTypes.ELIST); + if (findFirstToken == null) { + logError(ast, className); + return; + } + DetailAST childToken = findFirstToken.getFirstChild(); + if (childToken == null) { + logError(ast, className); + return; + } + childToken = childToken.getFirstChild(); + if (childToken == null) { + logError(ast, className); + return; + } + childToken = childToken.getFirstChild(); + if (childToken == null) { + logError(ast, className); + return; + } + final String token = childToken.getText(); + if (!token.equals(className)) { + log(ast.getLineNo(), LOG_MESSAGE); } } } -} \ No newline at end of file + + protected void logError(DetailAST ast, String className) { + log(ast.getLineNo(), String.format("Invalid parameter in \"getLogger\" method call in class: %s", className)); + } +}