The following document contains the results of SpotBugs
SpotBugs Version is 3.1.12
Threshold is medium
Effort is default
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |