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;