diff --git a/pom.xml b/pom.xml index 56d10d4..c2c3398 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.utplsql java-api - 3.1.1.1-SNAPSHOT + 3.1.2-SNAPSHOT jar utPLSQL-java-api @@ -36,6 +36,11 @@ 12.2.0.1 compile + + com.google.code.findbugs + jsr305 + 3.0.2 + org.junit.jupiter junit-jupiter-api diff --git a/src/main/java/org/utplsql/api/DBHelper.java b/src/main/java/org/utplsql/api/DBHelper.java index f89471c..ce0a7f5 100644 --- a/src/main/java/org/utplsql/api/DBHelper.java +++ b/src/main/java/org/utplsql/api/DBHelper.java @@ -20,7 +20,6 @@ private DBHelper() {} * @throws SQLException any database error */ public static String newSysGuid(Connection conn) throws SQLException { - assert conn != null; try (CallableStatement callableStatement = conn.prepareCall("BEGIN ? := sys_guid(); END;")) { callableStatement.registerOutParameter(1, OracleTypes.RAW); callableStatement.executeUpdate(); @@ -38,7 +37,6 @@ public static String newSysGuid(Connection conn) throws SQLException { */ @Deprecated public static String getCurrentSchema(Connection conn) throws SQLException { - assert conn != null; try (CallableStatement callableStatement = conn.prepareCall("BEGIN ? := sys_context('userenv', 'current_schema'); END;")) { callableStatement.registerOutParameter(1, Types.VARCHAR); callableStatement.executeUpdate(); @@ -55,7 +53,6 @@ public static String getCurrentSchema(Connection conn) throws SQLException { */ @Deprecated public static Version getDatabaseFrameworkVersion( Connection conn ) throws SQLException { - Objects.requireNonNull(conn); Version result = new Version(""); try (PreparedStatement stmt = conn.prepareStatement("select ut_runner.version() from dual")) { @@ -84,7 +81,6 @@ public static Version getDatabaseFrameworkVersion( Connection conn ) throws SQLE */ @Deprecated public static String getOracleDatabaseVersion( Connection conn ) throws SQLException { - assert conn != null; String result = null; try (PreparedStatement stmt = conn.prepareStatement("select version from product_component_version where product like 'Oracle Database%'")) { @@ -102,7 +98,6 @@ public static String getOracleDatabaseVersion( Connection conn ) throws SQLExcep * @param conn the connection */ public static void enableDBMSOutput(Connection conn) { - assert conn != null; try (CallableStatement call = conn.prepareCall("BEGIN dbms_output.enable(NULL); END;")) { call.execute(); } catch (SQLException e) { @@ -115,7 +110,6 @@ public static void enableDBMSOutput(Connection conn) { * @param conn the connection */ public static void disableDBMSOutput(Connection conn) { - assert conn != null; try (CallableStatement call = conn.prepareCall("BEGIN dbms_output.disable(); END;")) { call.execute(); } catch (SQLException e) { diff --git a/src/main/java/org/utplsql/api/EnvironmentVariableUtil.java b/src/main/java/org/utplsql/api/EnvironmentVariableUtil.java index 57afa30..9552fee 100644 --- a/src/main/java/org/utplsql/api/EnvironmentVariableUtil.java +++ b/src/main/java/org/utplsql/api/EnvironmentVariableUtil.java @@ -1,5 +1,7 @@ package org.utplsql.api; +import javax.annotation.Nullable; + /** * This class provides an easy way to get environmental variables. * This is mainly to improve testability but also to standardize the way how utPLSQL API and CLI read from @@ -37,7 +39,7 @@ public static String getEnvValue(String key) { * @param defaultValue Default value if nothing found * @return Environment value or defaultValue */ - public static String getEnvValue(String key, String defaultValue) { + public static String getEnvValue(String key, @Nullable String defaultValue) { String val = System.getProperty(key); if (val == null || val.isEmpty()) val = System.getenv(key); diff --git a/src/main/java/org/utplsql/api/JavaApiVersionInfo.java b/src/main/java/org/utplsql/api/JavaApiVersionInfo.java index cd6ab82..60456b3 100644 --- a/src/main/java/org/utplsql/api/JavaApiVersionInfo.java +++ b/src/main/java/org/utplsql/api/JavaApiVersionInfo.java @@ -11,7 +11,7 @@ private JavaApiVersionInfo() { } private static final String BUILD_NO = "123"; private static final String MAVEN_PROJECT_NAME = "utPLSQL-java-api"; - private static final String MAVEN_PROJECT_VERSION = "3.1.1.1-SNAPSHOT"; + private static final String MAVEN_PROJECT_VERSION = "3.1.2-SNAPSHOT"; public static String getVersion() { return MAVEN_PROJECT_VERSION + "." + BUILD_NO; diff --git a/src/main/java/org/utplsql/api/TestRunner.java b/src/main/java/org/utplsql/api/TestRunner.java index 745462f..0f4a401 100644 --- a/src/main/java/org/utplsql/api/TestRunner.java +++ b/src/main/java/org/utplsql/api/TestRunner.java @@ -58,7 +58,7 @@ public TestRunner colorConsole(boolean colorConsole) { } public TestRunner addReporterList(List reporterList) { - if (options.reporterList != null) options.reporterList.addAll(reporterList); + options.reporterList.addAll(reporterList); return this; } diff --git a/src/main/java/org/utplsql/api/Version.java b/src/main/java/org/utplsql/api/Version.java index b2b802a..e5edfa0 100644 --- a/src/main/java/org/utplsql/api/Version.java +++ b/src/main/java/org/utplsql/api/Version.java @@ -2,6 +2,7 @@ import org.utplsql.api.exception.InvalidVersionException; +import javax.annotation.Nullable; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -105,7 +106,7 @@ public String getNormalizedString() return "invalid"; } - private int compareToWithNulls( Integer i1, Integer i2 ) { + private int compareToWithNulls(@Nullable Integer i1, @Nullable Integer i2 ) { if ( i1 == null && i2 == null ) return 0; else if ( i1 == null ) diff --git a/src/main/java/org/utplsql/api/db/DatabaseInformation.java b/src/main/java/org/utplsql/api/db/DatabaseInformation.java index 5e842e9..8ea058f 100644 --- a/src/main/java/org/utplsql/api/db/DatabaseInformation.java +++ b/src/main/java/org/utplsql/api/db/DatabaseInformation.java @@ -2,6 +2,7 @@ import org.utplsql.api.Version; +import javax.annotation.Nullable; import java.sql.Connection; import java.sql.SQLException; @@ -17,5 +18,5 @@ public interface DatabaseInformation { String getCurrentSchema( Connection conn ) throws SQLException; - int frameworkCompatibilityCheck(Connection conn, String requested, String current) throws SQLException; + int frameworkCompatibilityCheck(Connection conn, String requested, @Nullable String current) throws SQLException; } diff --git a/src/main/java/org/utplsql/api/db/DefaultDatabaseInformation.java b/src/main/java/org/utplsql/api/db/DefaultDatabaseInformation.java index 27f7798..4d7207c 100644 --- a/src/main/java/org/utplsql/api/db/DefaultDatabaseInformation.java +++ b/src/main/java/org/utplsql/api/db/DefaultDatabaseInformation.java @@ -3,6 +3,7 @@ import org.utplsql.api.Version; import org.utplsql.api.exception.UtPLSQLNotInstalledException; +import javax.annotation.Nullable; import java.sql.*; import java.util.Objects; @@ -10,7 +11,6 @@ public class DefaultDatabaseInformation implements DatabaseInformation { @Override public Version getUtPlsqlFrameworkVersion(Connection conn) throws SQLException { - Objects.requireNonNull(conn); Version result = new Version(""); try (PreparedStatement stmt = conn.prepareStatement("select ut_runner.version() from dual")) { @@ -32,7 +32,6 @@ public Version getUtPlsqlFrameworkVersion(Connection conn) throws SQLException { @Override public String getOracleVersion(Connection conn) throws SQLException { - Objects.requireNonNull(conn); String result = null; try (PreparedStatement stmt = conn.prepareStatement("select version from product_component_version where product like 'Oracle Database%'")) { @@ -47,7 +46,6 @@ public String getOracleVersion(Connection conn) throws SQLException { @Override public String getCurrentSchema(Connection conn) throws SQLException { - Objects.requireNonNull(conn); try (CallableStatement callableStatement = conn.prepareCall("BEGIN ? := sys_context('userenv', 'current_schema'); END;")) { callableStatement.registerOutParameter(1, Types.VARCHAR); callableStatement.executeUpdate(); @@ -56,7 +54,7 @@ public String getCurrentSchema(Connection conn) throws SQLException { } @Override - public int frameworkCompatibilityCheck(Connection conn, String requested, String current) throws SQLException { + public int frameworkCompatibilityCheck(Connection conn, String requested, @Nullable String current) throws SQLException { try(CallableStatement callableStatement = conn.prepareCall("BEGIN ? := ut_runner.version_compatibility_check(?, ?); END;")) { callableStatement.registerOutParameter(1, Types.SMALLINT); callableStatement.setString(2, requested); diff --git a/src/main/java/org/utplsql/api/exception/SomeTestsFailedException.java b/src/main/java/org/utplsql/api/exception/SomeTestsFailedException.java index 708bad6..3fc2379 100644 --- a/src/main/java/org/utplsql/api/exception/SomeTestsFailedException.java +++ b/src/main/java/org/utplsql/api/exception/SomeTestsFailedException.java @@ -1,5 +1,6 @@ package org.utplsql.api.exception; +import javax.annotation.Nullable; import java.sql.SQLException; /** @@ -9,7 +10,7 @@ public class SomeTestsFailedException extends SQLException { public static final int ERROR_CODE = 20213; - public SomeTestsFailedException(String reason, Throwable cause) { + public SomeTestsFailedException(String reason, @Nullable Throwable cause) { super(reason, cause); } diff --git a/src/main/java/org/utplsql/api/package-info.java b/src/main/java/org/utplsql/api/package-info.java new file mode 100644 index 0000000..56a090f --- /dev/null +++ b/src/main/java/org/utplsql/api/package-info.java @@ -0,0 +1,4 @@ +@ParametersAreNonnullByDefault +package org.utplsql.api; + +import javax.annotation.ParametersAreNonnullByDefault; \ No newline at end of file diff --git a/src/main/java/org/utplsql/api/reporter/ReporterFactory.java b/src/main/java/org/utplsql/api/reporter/ReporterFactory.java index 17662d5..510896b 100644 --- a/src/main/java/org/utplsql/api/reporter/ReporterFactory.java +++ b/src/main/java/org/utplsql/api/reporter/ReporterFactory.java @@ -5,6 +5,7 @@ import oracle.sql.ORADataFactory; import org.utplsql.api.compatibility.CompatibilityProxy; +import javax.annotation.Nullable; import java.sql.SQLException; import java.sql.Struct; import java.util.HashMap; @@ -74,7 +75,7 @@ public synchronized boolean hasRegisteredFactoryMethodFor( String reporterName ) * @param attributes attributes from STRUCT * @return A reporter */ - public Reporter createReporter(String reporterName, Object[] attributes) { + public Reporter createReporter(String reporterName, @Nullable Object[] attributes) { reporterName = reporterName.toUpperCase(); BiFunction supplier = DefaultReporter::new;