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/FileMapping.java b/src/main/java/org/utplsql/api/FileMapping.java
index 30a9d8e..e7fea84 100644
--- a/src/main/java/org/utplsql/api/FileMapping.java
+++ b/src/main/java/org/utplsql/api/FileMapping.java
@@ -57,7 +57,7 @@ private void setObjectType(String objectType) {
}
@Override
- public String getSQLTypeName() throws SQLException {
+ public String getSQLTypeName() {
return CustomTypes.UT_FILE_MAPPING;
}
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/KeyValuePair.java b/src/main/java/org/utplsql/api/KeyValuePair.java
index 04be4cf..c71a3ae 100644
--- a/src/main/java/org/utplsql/api/KeyValuePair.java
+++ b/src/main/java/org/utplsql/api/KeyValuePair.java
@@ -27,7 +27,7 @@ public String getValue() {
}
@Override
- public String getSQLTypeName() throws SQLException {
+ public String getSQLTypeName() {
return CustomTypes.UT_KEY_VALUE_PAIR;
}
diff --git a/src/main/java/org/utplsql/api/TestRunner.java b/src/main/java/org/utplsql/api/TestRunner.java
index 745462f..83ee237 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;
}
@@ -120,7 +120,7 @@ private void delayedAddReporters() {
throw new IllegalStateException("ReporterFactory must be set to add delayed Reporters!");
}
- public void run(Connection conn) throws SomeTestsFailedException, SQLException, DatabaseNotCompatibleException, UtPLSQLNotInstalledException {
+ public void run(Connection conn) throws SQLException {
DatabaseInformation databaseInformation = new DefaultDatabaseInformation();
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/compatibility/CompatibilityProxy.java b/src/main/java/org/utplsql/api/compatibility/CompatibilityProxy.java
index bf817fd..8ecc668 100644
--- a/src/main/java/org/utplsql/api/compatibility/CompatibilityProxy.java
+++ b/src/main/java/org/utplsql/api/compatibility/CompatibilityProxy.java
@@ -1,6 +1,5 @@
package org.utplsql.api.compatibility;
-import org.utplsql.api.DBHelper;
import org.utplsql.api.TestRunnerOptions;
import org.utplsql.api.Version;
import org.utplsql.api.db.DatabaseInformation;
@@ -12,10 +11,8 @@
import org.utplsql.api.testRunner.TestRunnerStatement;
import org.utplsql.api.testRunner.TestRunnerStatementProvider;
-import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
-import java.sql.Types;
import java.util.Objects;
/** Class to check compatibility with database framework and also to give several specific implementations depending
@@ -120,13 +117,9 @@ private boolean versionCompatibilityCheckPre303(String requested )
Version requestedVersion = new Version(requested);
Objects.requireNonNull(databaseVersion.getMajor(), "Illegal database Version: " + databaseVersion.toString());
- if (
- databaseVersion.getMajor().equals(requestedVersion.getMajor())
- && (requestedVersion.getMinor() == null
- || requestedVersion.getMinor().equals(databaseVersion.getMinor())) )
- return true;
- else
- return false;
+ return databaseVersion.getMajor().equals(requestedVersion.getMajor())
+ && (requestedVersion.getMinor() == null
+ || requestedVersion.getMinor().equals(databaseVersion.getMinor()));
}
/** Checks if actual API-version is compatible with utPLSQL database version and throws a DatabaseNotCompatibleException if not
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/outputBuffer/NonOutputBuffer.java b/src/main/java/org/utplsql/api/outputBuffer/NonOutputBuffer.java
index e1cdeea..3e289e2 100644
--- a/src/main/java/org/utplsql/api/outputBuffer/NonOutputBuffer.java
+++ b/src/main/java/org/utplsql/api/outputBuffer/NonOutputBuffer.java
@@ -47,12 +47,12 @@ public void printAvailable(Connection conn, List printStreams) thro
}
@Override
- public void fetchAvailable(Connection conn, Consumer onLineFetched) throws SQLException {
+ public void fetchAvailable(Connection conn, Consumer onLineFetched) {
onLineFetched.accept(null);
}
@Override
- public List fetchAll(Connection conn) throws SQLException {
+ public List fetchAll(Connection conn) {
return new ArrayList<>();
}
}
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;
diff --git a/src/test/java/org/utplsql/api/OutputBufferIT.java b/src/test/java/org/utplsql/api/OutputBufferIT.java
index 5909d57..4298130 100644
--- a/src/test/java/org/utplsql/api/OutputBufferIT.java
+++ b/src/test/java/org/utplsql/api/OutputBufferIT.java
@@ -110,7 +110,7 @@ public void fetchAllLines() throws SQLException {
}
@Test
- public void getOutputFromSonarReporter() throws SQLException, InvalidVersionException {
+ public void getOutputFromSonarReporter() throws SQLException {
Reporter reporter = new DefaultReporter(CoreReporters.UT_SONAR_TEST_REPORTER.name(), null).init(newConnection());
new TestRunner()