SpotBugs Bug Detector Report

The following document contains the results of SpotBugs

SpotBugs Version is 3.1.12

Threshold is medium

Effort is default

Summary

Classes Bugs Errors Missing Classes
1215 100 0 0

Files

Class Bugs
nz.co.gregs.dbvolution.DBMigration 1
nz.co.gregs.dbvolution.DBQuery 1
nz.co.gregs.dbvolution.DBQueryInsert 1
nz.co.gregs.dbvolution.DBReport 1
nz.co.gregs.dbvolution.DBRow 4
nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects 8
nz.co.gregs.dbvolution.columns.LineSegment2DColumn 1
nz.co.gregs.dbvolution.columns.MultiPoint2DColumn 1
nz.co.gregs.dbvolution.columns.Point2DColumn 1
nz.co.gregs.dbvolution.databases.DBDatabase 7
nz.co.gregs.dbvolution.databases.DBDatabase$ResponseToException 1
nz.co.gregs.dbvolution.databases.DBDatabase$StopDatabase 1
nz.co.gregs.dbvolution.databases.DBDatabaseCluster 2
nz.co.gregs.dbvolution.databases.DatabaseConnectionSettings 2
nz.co.gregs.dbvolution.databases.H2MemoryDB 3
nz.co.gregs.dbvolution.databases.H2SharedDB 1
nz.co.gregs.dbvolution.databases.MSSQLServerDB 2
nz.co.gregs.dbvolution.databases.definitions.DBDefinition 1
nz.co.gregs.dbvolution.databases.definitions.H2DBDefinition 1
nz.co.gregs.dbvolution.databases.definitions.MSSQLServerDBDefinition 3
nz.co.gregs.dbvolution.datatypes.DBInstant 1
nz.co.gregs.dbvolution.datatypes.DBLargeBinary 1
nz.co.gregs.dbvolution.datatypes.DBLargeText 1
nz.co.gregs.dbvolution.datatypes.DBLocalDate 1
nz.co.gregs.dbvolution.datatypes.DBLocalDateTime 2
nz.co.gregs.dbvolution.datatypes.QueryableDatatype 2
nz.co.gregs.dbvolution.exceptions.DBRuntimeException 1
nz.co.gregs.dbvolution.expressions.BooleanExpression$NegateExpression 1
nz.co.gregs.dbvolution.expressions.InExpression 4
nz.co.gregs.dbvolution.expressions.LocalDateExpression 1
nz.co.gregs.dbvolution.expressions.SortProvider$NullsOrderer 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringAggregateWithOrderByExpression 2
nz.co.gregs.dbvolution.expressions.StringExpression$StringBracketExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringFirstIntegerAsSubstringExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringFirstNumberAsSubstringExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringLeftTrimExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringLowercaseExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringMaxExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringMinExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringRightTrimExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringTrimExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$StringUppercaseExpression 1
nz.co.gregs.dbvolution.expressions.StringExpression$Substring 1
nz.co.gregs.dbvolution.expressions.spatial2D.Polygon2DExpression$CreatePolygon2DFromCoordinateArrayExpression 1
nz.co.gregs.dbvolution.expressions.spatial2D.Polygon2DExpression$CreatePolygon2DFromPoint2DArrayExpression 1
nz.co.gregs.dbvolution.expressions.windows.WindowFunction 1
nz.co.gregs.dbvolution.expressions.windows.WindowFunctionFramable 1
nz.co.gregs.dbvolution.expressions.windows.WindowFunctionRequiresOrderBy 1
nz.co.gregs.dbvolution.generation.DBTableClassGenerator 1
nz.co.gregs.dbvolution.internal.database.ClusterDetails 2
nz.co.gregs.dbvolution.internal.properties.PropertyTypeHandler 2
nz.co.gregs.dbvolution.internal.properties.TableHandler 1
nz.co.gregs.dbvolution.internal.query.QueryCanceller 1
nz.co.gregs.dbvolution.internal.query.QueryDetails 4
nz.co.gregs.dbvolution.internal.query.QueryOptions 1
nz.co.gregs.dbvolution.utility.Encryption 1
nz.co.gregs.dbvolution.utility.ImageCompare 8
nz.co.gregs.dbvolution.utility.RegularProcess 2

nz.co.gregs.dbvolution.DBMigration

Bug Category Details Line Priority
Class nz.co.gregs.dbvolution.DBMigration defines non-transient non-serializable instance field sortColumns BAD_PRACTICE SE_BAD_FIELD Medium

nz.co.gregs.dbvolution.DBQuery

Bug Category Details Line Priority
Nullcheck of examples at line 238 of value previously dereferenced in nz.co.gregs.dbvolution.DBQuery.addOptional(DBRow[]) CORRECTNESS RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE 237 Medium

nz.co.gregs.dbvolution.DBQueryInsert

Bug Category Details Line Priority
Class nz.co.gregs.dbvolution.DBQueryInsert defines non-transient non-serializable instance field sortColumns BAD_PRACTICE SE_BAD_FIELD Medium

nz.co.gregs.dbvolution.DBReport

Bug Category Details Line Priority
Class nz.co.gregs.dbvolution.DBReport defines non-transient non-serializable instance field sortColumns BAD_PRACTICE SE_BAD_FIELD Medium

nz.co.gregs.dbvolution.DBRow

Bug Category Details Line Priority
instanceof will always return true for all non-null values in nz.co.gregs.dbvolution.DBRow.getQDTWhereClause(DBDefinition, ColumnProvider, QueryableDatatype), since all nz.co.gregs.dbvolution.columns.ColumnProvider are instances of nz.co.gregs.dbvolution.expressions.DBExpression STYLE BC_VACUOUS_INSTANCEOF 569 Medium
instanceof will always return true for all non-null values in nz.co.gregs.dbvolution.DBRow.getQDTWhereClauseExpression(DBDefinition, ColumnProvider, QueryableDatatype), since all nz.co.gregs.dbvolution.columns.ColumnProvider are instances of nz.co.gregs.dbvolution.expressions.DBExpression STYLE BC_VACUOUS_INSTANCEOF 630 Medium
nz.co.gregs.dbvolution.DBRow.setAutoFilledFields(DBQueryable) uses the same code for two branches STYLE DB_DUPLICATE_BRANCHES 1957 Medium
Load of known null value in nz.co.gregs.dbvolution.DBRow.ignoreForeignKey(PropertyWrapper) STYLE NP_LOAD_OF_KNOWN_NULL_VALUE 862 Medium

nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects

Bug Category Details Line Priority
nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects.setUsingBLOB(DBDefinition, DBRow, String, DBLargeObject, DBDatabase, DBStatement) may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 197 Medium
nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects.setUsingBase64String(DBDefinition, DBRow, String, DBLargeObject, DBDatabase, DBStatement) may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 231 Medium
nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects.setUsingBinaryStream(DBDefinition, DBRow, String, DBLargeObject, DBDatabase, DBStatement) may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 172 Medium
nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects.setUsingByteArray(DBDefinition, DBRow, String, DBLargeObject, DBDatabase, DBStatement) may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 372 Medium
nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects.setUsingCLOB(DBDefinition, DBRow, String, DBLargeObject, DBDatabase, DBStatement) may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 214 Medium
nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects.setUsingCharacterStream(DBDefinition, DBRow, String, DBLargeObject, DBDatabase, DBStatement) may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 272 Medium
nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects.setUsingJavaObject(DBDefinition, DBRow, String, DBLargeObject, DBDatabase, DBStatement) may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 355 Medium
nz.co.gregs.dbvolution.actions.DBUpdateLargeObjects.setUsingStringValue(DBDefinition, DBRow, String, DBLargeObject, DBDatabase, DBStatement) may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 138 Medium

nz.co.gregs.dbvolution.columns.LineSegment2DColumn

Bug Category Details Line Priority
nz.co.gregs.dbvolution.columns.LineSegment2DColumn overrides equals in nz.co.gregs.dbvolution.expressions.spatial2D.LineSegment2DExpression and may not be symmetric CORRECTNESS EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC 89 Medium

nz.co.gregs.dbvolution.columns.MultiPoint2DColumn

Bug Category Details Line Priority
nz.co.gregs.dbvolution.columns.MultiPoint2DColumn overrides equals in nz.co.gregs.dbvolution.expressions.spatial2D.MultiPoint2DExpression and may not be symmetric CORRECTNESS EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC 89 Medium

nz.co.gregs.dbvolution.columns.Point2DColumn

Bug Category Details Line Priority
nz.co.gregs.dbvolution.columns.Point2DColumn overrides equals in nz.co.gregs.dbvolution.expressions.spatial2D.Point2DExpression and may not be symmetric CORRECTNESS EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC 89 Medium

nz.co.gregs.dbvolution.databases.DBDatabase

Bug Category Details Line Priority
Dead store to $L6 in nz.co.gregs.dbvolution.databases.DBDatabase.alterTableAddColumn(DBRow, PropertyWrapper) STYLE DLS_DEAD_LOCAL_STORE 2543 Medium
Inconsistent synchronization of nz.co.gregs.dbvolution.databases.DBDatabase.driverName; locked 50% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 347 Medium
Inconsistent synchronization of nz.co.gregs.dbvolution.databases.DBDatabase.storedConnection; locked 75% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 141 Medium
nz.co.gregs.dbvolution.databases.DBDatabase.addMissingColumnsToTable(DBRow) may fail to clean up java.sql.ResultSet EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 2503 Medium
nz.co.gregs.dbvolution.databases.DBDatabase.getRawConnection() may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 514 Medium
Exception is caught when Exception is not thrown in nz.co.gregs.dbvolution.databases.DBDatabase.stop() STYLE REC_CATCH_EXCEPTION 2671 Medium
nz.co.gregs.dbvolution.databases.DBDatabase.getBatchSQLStatementsWhenPossible() is unsynchronized, nz.co.gregs.dbvolution.databases.DBDatabase.setBatchSQLStatementsWhenPossible(boolean) is synchronized MT_CORRECTNESS UG_SYNC_SET_UNSYNC_GET 2680 Medium
nz.co.gregs.dbvolution.databases.DBDatabase.getPrintSQLBeforeExecuting() is unsynchronized, nz.co.gregs.dbvolution.databases.DBDatabase.setPrintSQLBeforeExecuting(boolean) is synchronized MT_CORRECTNESS UG_SYNC_SET_UNSYNC_GET 2676 Medium

nz.co.gregs.dbvolution.databases.DBDatabase$ResponseToException

Bug Category Details Line Priority
Class nz.co.gregs.dbvolution.databases.DBDatabase$ResponseToException is not derived from an Exception, even though it is named as such BAD_PRACTICE NM_CLASS_NOT_EXCEPTION 2390 Medium

nz.co.gregs.dbvolution.databases.DBDatabase$StopDatabase

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.databases.DBDatabase$StopDatabase be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 2744 Medium

nz.co.gregs.dbvolution.databases.DBDatabaseCluster

Bug Category Details Line Priority
Exception is caught when Exception is not thrown in nz.co.gregs.dbvolution.databases.DBDatabaseCluster.doTransaction(DBTransaction, Boolean) STYLE REC_CATCH_EXCEPTION 841 Medium
Return value of DBDatabase.batchSQLStatementsWhenPossible() ignored, but method has no side effect STYLE RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT 487 Medium

nz.co.gregs.dbvolution.databases.DatabaseConnectionSettings

Bug Category Details Line Priority
nz.co.gregs.dbvolution.databases.DatabaseConnectionSettings defines equals(DatabaseConnectionSettings) method and uses Object.equals(Object) CORRECTNESS EQ_SELF_USE_OBJECT 196 Medium
nz.co.gregs.dbvolution.databases.DatabaseConnectionSettings defines equals and uses Object.hashCode() BAD_PRACTICE HE_EQUALS_USE_HASHCODE 196 Medium

nz.co.gregs.dbvolution.databases.H2MemoryDB

Bug Category Details Line Priority
nz.co.gregs.dbvolution.databases.H2MemoryDB.jamDatabaseConnectionOpen() may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 142 Medium
nz.co.gregs.dbvolution.databases.H2MemoryDB.jamDatabaseConnectionOpen() may fail to close Statement BAD_PRACTICE ODR_OPEN_DATABASE_RESOURCE 142 Medium

nz.co.gregs.dbvolution.databases.H2SharedDB

Bug Category Details Line Priority
Class nz.co.gregs.dbvolution.databases.H2SharedDB defines non-transient non-serializable instance field server BAD_PRACTICE SE_BAD_FIELD Medium

nz.co.gregs.dbvolution.databases.MSSQLServerDB

Bug Category Details Line Priority
nz.co.gregs.dbvolution.databases.MSSQLServerDB.addFeatureToFixException(Exception) may fail to clean up java.sql.Statement EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 245 Medium
nz.co.gregs.dbvolution.databases.MSSQLServerDB.addFeatureToFixException(Exception) may fail to close Statement BAD_PRACTICE ODR_OPEN_DATABASE_RESOURCE 245 Medium

nz.co.gregs.dbvolution.databases.definitions.DBDefinition

Bug Category Details Line Priority
Call to method of static java.text.DateFormat in nz.co.gregs.dbvolution.databases.definitions.DBDefinition.parseDateFromGetString(String) MT_CORRECTNESS STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE 2729 Medium

nz.co.gregs.dbvolution.databases.definitions.H2DBDefinition

Bug Category Details Line Priority
Call to method of static java.text.DateFormat in nz.co.gregs.dbvolution.databases.definitions.H2DBDefinition.getDateFormattedForQuery(Date) MT_CORRECTNESS STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE 65 Medium

nz.co.gregs.dbvolution.databases.definitions.MSSQLServerDBDefinition

Bug Category Details Line Priority
Self assignment of tz in nz.co.gregs.dbvolution.databases.definitions.MSSQLServerDBDefinition.getDateFormattedForQuery(Date) STYLE SA_LOCAL_SELF_ASSIGNMENT 80 Medium
Class nz.co.gregs.dbvolution.databases.definitions.MSSQLServerDBDefinition defines non-transient non-serializable instance field DATETIMEFORMATTER_WITHOUT_ZONE BAD_PRACTICE SE_BAD_FIELD Medium
Class nz.co.gregs.dbvolution.databases.definitions.MSSQLServerDBDefinition defines non-transient non-serializable instance field DATETIMEFORMATTER_WITH_ZONE BAD_PRACTICE SE_BAD_FIELD Medium

nz.co.gregs.dbvolution.datatypes.DBInstant

Bug Category Details Line Priority
Class nz.co.gregs.dbvolution.datatypes.DBInstant defines non-transient non-serializable instance field toStringFormat BAD_PRACTICE SE_BAD_FIELD Medium

nz.co.gregs.dbvolution.datatypes.DBLargeBinary

Bug Category Details Line Priority
Redundant nullcheck of bytes, which is known to be non-null in nz.co.gregs.dbvolution.datatypes.DBLargeBinary.getSize() STYLE RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE 536 Medium

nz.co.gregs.dbvolution.datatypes.DBLargeText

Bug Category Details Line Priority
Found reliance on default encoding in nz.co.gregs.dbvolution.datatypes.DBLargeText.setLiteralValue(byte[]): new String(byte[]) I18N DM_DEFAULT_ENCODING 630 High

nz.co.gregs.dbvolution.datatypes.DBLocalDate

Bug Category Details Line Priority
Class nz.co.gregs.dbvolution.datatypes.DBLocalDate defines non-transient non-serializable instance field toStringFormat BAD_PRACTICE SE_BAD_FIELD Medium

nz.co.gregs.dbvolution.datatypes.DBLocalDateTime

Bug Category Details Line Priority
Dead store to date in nz.co.gregs.dbvolution.datatypes.DBLocalDateTime.setByGetDate(DBDefinition, ResultSet, String) STYLE DLS_DEAD_LOCAL_STORE 270 Medium
Class nz.co.gregs.dbvolution.datatypes.DBLocalDateTime defines non-transient non-serializable instance field toStringFormat BAD_PRACTICE SE_BAD_FIELD Medium

nz.co.gregs.dbvolution.datatypes.QueryableDatatype

Bug Category Details Line Priority
Inconsistent synchronization of nz.co.gregs.dbvolution.datatypes.QueryableDatatype.literalValue; locked 80% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 295 Medium
Inconsistent synchronization of nz.co.gregs.dbvolution.datatypes.QueryableDatatype.setValueHasBeenCalled; locked 60% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 300 Medium

nz.co.gregs.dbvolution.exceptions.DBRuntimeException

Bug Category Details Line Priority
Dead store to fillInStackTrace in new nz.co.gregs.dbvolution.exceptions.DBRuntimeException(String, Throwable) STYLE DLS_DEAD_LOCAL_STORE 59 Medium

nz.co.gregs.dbvolution.expressions.BooleanExpression$NegateExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.BooleanExpression$NegateExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 2307 Medium

nz.co.gregs.dbvolution.expressions.InExpression

Bug Category Details Line Priority
Impossible downcast of toArray() result to nz.co.gregs.dbvolution.results.InResult[] in nz.co.gregs.dbvolution.expressions.InExpression.isIn(Object[]) CORRECTNESS BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY 82 High
Impossible downcast of toArray() result to nz.co.gregs.dbvolution.results.InResult[] in nz.co.gregs.dbvolution.expressions.InExpression.isIn(QueryableDatatype[]) CORRECTNESS BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY 92 High
Impossible downcast of toArray() result to nz.co.gregs.dbvolution.results.InResult[] in nz.co.gregs.dbvolution.expressions.InExpression.isNotIn(Object[]) CORRECTNESS BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY 104 High
Impossible downcast of toArray() result to nz.co.gregs.dbvolution.results.InResult[] in nz.co.gregs.dbvolution.expressions.InExpression.isNotIn(QueryableDatatype[]) CORRECTNESS BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY 114 High

nz.co.gregs.dbvolution.expressions.LocalDateExpression

Bug Category Details Line Priority
There is an apparent infinite recursive loop in nz.co.gregs.dbvolution.expressions.LocalDateExpression.currentLocalDateTime() CORRECTNESS IL_INFINITE_RECURSIVE_LOOP 212 High

nz.co.gregs.dbvolution.expressions.SortProvider$NullsOrderer

Bug Category Details Line Priority

nz.co.gregs.dbvolution.expressions.StringExpression$StringAggregateWithOrderByExpression

Bug Category Details Line Priority
Null passed for non-null parameter of new StringExpression$StringAggregateWithOrderByExpression(StringExpression, StringExpression, StringExpression, SortProvider) in nz.co.gregs.dbvolution.expressions.StringExpression$StringAggregateWithOrderByExpression.copy() CORRECTNESS NP_NULL_PARAM_DEREF 3858 High
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringAggregateWithOrderByExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 3827 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringBracketExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringBracketExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 4219 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringFirstIntegerAsSubstringExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringFirstIntegerAsSubstringExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 4005 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringFirstNumberAsSubstringExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringFirstNumberAsSubstringExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 3985 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringLeftTrimExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringLeftTrimExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 4025 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringLowercaseExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringLowercaseExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 4061 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringMaxExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringMaxExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 4163 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringMinExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringMinExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 4191 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringRightTrimExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringRightTrimExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 4043 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringTrimExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringTrimExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 3965 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$StringUppercaseExpression

Bug Category Details Line Priority
Should nz.co.gregs.dbvolution.expressions.StringExpression$StringUppercaseExpression be a _static_ inner class? PERFORMANCE SIC_INNER_SHOULD_BE_STATIC 4079 Medium

nz.co.gregs.dbvolution.expressions.StringExpression$Substring

Bug Category Details Line Priority
Null passed for non-null parameter of new StringExpression$Substring(ExpressionHasStandardStringResult, IntegerResult, IntegerResult) in nz.co.gregs.dbvolution.expressions.StringExpression$Substring.copy() CORRECTNESS NP_NULL_PARAM_DEREF 3287 High

nz.co.gregs.dbvolution.expressions.spatial2D.Polygon2DExpression$CreatePolygon2DFromCoordinateArrayExpression

Bug Category Details Line Priority
Null passed for non-null parameter of new Polygon2DExpression$CreatePolygon2DFromCoordinateArrayExpression(NumberExpression[]) in nz.co.gregs.dbvolution.expressions.spatial2D.Polygon2DExpression$CreatePolygon2DFromCoordinateArrayExpression.copy() CORRECTNESS NP_NULL_PARAM_DEREF 1417 High

nz.co.gregs.dbvolution.expressions.spatial2D.Polygon2DExpression$CreatePolygon2DFromPoint2DArrayExpression

Bug Category Details Line Priority
Null passed for non-null parameter of new Polygon2DExpression$CreatePolygon2DFromPoint2DArrayExpression(Point2DExpression[]) in nz.co.gregs.dbvolution.expressions.spatial2D.Polygon2DExpression$CreatePolygon2DFromPoint2DArrayExpression.copy() CORRECTNESS NP_NULL_PARAM_DEREF 1369 High

nz.co.gregs.dbvolution.expressions.windows.WindowFunction

Bug Category Details Line Priority
The method name nz.co.gregs.dbvolution.expressions.windows.WindowFunction.AllRowsAndOrderBy(SortProvider[]) doesn't start with a lower case letter BAD_PRACTICE NM_METHOD_NAMING_CONVENTION 80 Medium

nz.co.gregs.dbvolution.expressions.windows.WindowFunctionFramable

Bug Category Details Line Priority
The method name nz.co.gregs.dbvolution.expressions.windows.WindowFunctionFramable.AllRowsAndOrderBy(SortProvider[]) doesn't start with a lower case letter BAD_PRACTICE NM_METHOD_NAMING_CONVENTION 81 Medium

nz.co.gregs.dbvolution.expressions.windows.WindowFunctionRequiresOrderBy

Bug Category Details Line Priority
The method name nz.co.gregs.dbvolution.expressions.windows.WindowFunctionRequiresOrderBy.AllRowsAndOrderBy(SortProvider, SortProvider[]) doesn't start with a lower case letter BAD_PRACTICE NM_METHOD_NAMING_CONVENTION 72 Medium

nz.co.gregs.dbvolution.generation.DBTableClassGenerator

Bug Category Details Line Priority

nz.co.gregs.dbvolution.internal.database.ClusterDetails

Bug Category Details Line Priority
Class nz.co.gregs.dbvolution.internal.database.ClusterDetails defines non-transient non-serializable instance field prefs BAD_PRACTICE SE_BAD_FIELD Medium
The field nz.co.gregs.dbvolution.internal.database.ClusterDetails.queuedActions is transient but isn't set by deserialization BAD_PRACTICE SE_TRANSIENT_FIELD_NOT_RESTORED Medium

nz.co.gregs.dbvolution.internal.properties.PropertyTypeHandler

Bug Category Details Line Priority
Possible null pointer dereference of type in new nz.co.gregs.dbvolution.internal.properties.PropertyTypeHandler(JavaProperty, boolean) CORRECTNESS NP_NULL_ON_SOME_PATH 247 Medium
Possible null pointer dereference of type in new nz.co.gregs.dbvolution.internal.properties.PropertyTypeHandler(JavaProperty, boolean) CORRECTNESS NP_NULL_ON_SOME_PATH 262 Medium

nz.co.gregs.dbvolution.internal.properties.TableHandler

Bug Category Details Line Priority
The field nz.co.gregs.dbvolution.internal.properties.TableHandler.requiredTableAnnotation is transient but isn't set by deserialization BAD_PRACTICE SE_TRANSIENT_FIELD_NOT_RESTORED Medium

nz.co.gregs.dbvolution.internal.query.QueryCanceller

Bug Category Details Line Priority
Incorrect lazy initialization of static field nz.co.gregs.dbvolution.internal.query.QueryCanceller.standardCancelOffset in nz.co.gregs.dbvolution.internal.query.QueryCanceller.getStandardCancelOffset() MT_CORRECTNESS LI_LAZY_INIT_STATIC 72 Medium

nz.co.gregs.dbvolution.internal.query.QueryDetails

Bug Category Details Line Priority
Boxed value is unboxed and then immediately reboxed in nz.co.gregs.dbvolution.internal.query.QueryDetails.setTimeoutInMilliseconds(Long) PERFORMANCE BX_UNBOXING_IMMEDIATELY_REBOXED 1427 Medium
nz.co.gregs.dbvolution.internal.query.QueryDetails.getResultSetCount(DBDatabase, QueryDetails) may fail to clean up java.sql.ResultSet EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 372 Medium
Nullcheck of timeoutTime at line 1228 of value previously dereferenced in nz.co.gregs.dbvolution.internal.query.QueryDetails.getResultSetForSQL(DBStatement, String) CORRECTNESS RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE 1228 Medium
Class nz.co.gregs.dbvolution.internal.query.QueryDetails defines non-transient non-serializable instance field sortOrderColumns BAD_PRACTICE SE_BAD_FIELD High

nz.co.gregs.dbvolution.internal.query.QueryOptions

Bug Category Details Line Priority
Class nz.co.gregs.dbvolution.internal.query.QueryOptions defines non-transient non-serializable instance field sortColumns BAD_PRACTICE SE_BAD_FIELD High

nz.co.gregs.dbvolution.utility.Encryption

Bug Category Details Line Priority
Found reliance on default encoding in nz.co.gregs.dbvolution.utility.Encryption.encrypt(String): new String(byte[]) I18N DM_DEFAULT_ENCODING 89 High

nz.co.gregs.dbvolution.utility.ImageCompare

Bug Category Details Line Priority
Dead store to in in nz.co.gregs.dbvolution.utility.ImageCompare.loadJPG(String) STYLE DLS_DEAD_LOCAL_STORE 162 High
Inconsistent synchronization of nz.co.gregs.dbvolution.utility.ImageCompare.compared; locked 50% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 138 Medium
Inconsistent synchronization of nz.co.gregs.dbvolution.utility.ImageCompare.comparey; locked 50% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 88 Medium
Inconsistent synchronization of nz.co.gregs.dbvolution.utility.ImageCompare.factorA; locked 50% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 100 Medium
Inconsistent synchronization of nz.co.gregs.dbvolution.utility.ImageCompare.factorD; locked 50% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 133 Medium
Inconsistent synchronization of nz.co.gregs.dbvolution.utility.ImageCompare.imageDiff; locked 50% of time MT_CORRECTNESS IS2_INCONSISTENT_SYNC 80 Medium
nz.co.gregs.dbvolution.utility.ImageCompare.loadJPG(String) may fail to clean up java.io.InputStream EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION 162 Medium
nz.co.gregs.dbvolution.utility.ImageCompare.loadJPG(String) may fail to close stream BAD_PRACTICE OS_OPEN_STREAM 162 Medium

nz.co.gregs.dbvolution.utility.RegularProcess

Bug Category Details Line Priority
nz.co.gregs.dbvolution.utility.RegularProcess.getLastRuntime() may expose internal representation by returning RegularProcess.lastRunTime MALICIOUS_CODE EI_EXPOSE_REP 202 Medium
nz.co.gregs.dbvolution.utility.RegularProcess.getNextRuntime() may expose internal representation by returning RegularProcess.nextRun MALICIOUS_CODE EI_EXPOSE_REP 206 Medium