The following document contains the results of FindBugs Report
FindBugs Version is 1.3.8
Threshold is Low
Effort is Default
| Classes | Bugs | Errors | Missing Classes |
|---|---|---|---|
| 2225 | 376 | 0 | 0 |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.sql.RowSetChangeEvent.getRow() may expose internal representation by returning RowSetChangeEvent.row | MALICIOUS_CODE | EI_EXPOSE_REP | 39 | Medium |
| new ca.sqlpower.sql.RowSetChangeEvent(CachedRowSet, Object[], int) may expose internal representation by storing an externally mutable object into RowSetChangeEvent.row | MALICIOUS_CODE | EI_EXPOSE_REP2 | 30 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.sqlobject.DuplicateColumnException implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 31-70 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked/unconfirmed cast from ca.sqlpower.sqlobject.SQLObject to ca.sqlpower.sqlobject.SQLCatalog in ca.sqlpower.sqlobject.SQLCatalog.updateToMatch(SQLObject) | STYLE | BC_UNCONFIRMED_CAST | 90 | Low |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 228 | Low |
| ca.sqlpower.sqlobject.SQLCatalog is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 38-260 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked/unconfirmed cast from ca.sqlpower.sqlobject.SQLObject to ca.sqlpower.sqlobject.SQLColumn in ca.sqlpower.sqlobject.SQLColumn.updateToMatch(SQLObject) | STYLE | BC_UNCONFIRMED_CAST | 325 | Low |
| Class ca.sqlpower.sqlobject.SQLColumn implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 36-1079 | Low |
| ca.sqlpower.sqlobject.SQLColumn is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 36-1079 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.sqlobject.SQLColumn$ColumnNameComparator implements Comparator but not Serializable | BAD_PRACTICE | SE_COMPARATOR_SHOULD_BE_SERIALIZABLE | 409-423 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Possible null pointer dereference of SQLColumn.primaryKeySeq on path that might be infeasible in ca.sqlpower.sqlobject.SQLColumn$CompareByPKSeq.compare(Object, Object) | STYLE | NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE | 1020 | Medium |
| ca.sqlpower.sqlobject.SQLColumn$CompareByPKSeq implements Comparator but not Serializable | BAD_PRACTICE | SE_COMPARATOR_SHOULD_BE_SERIALIZABLE | 1009-1020 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Inconsistent synchronization of ca.sqlpower.sqlobject.SQLDatabase.catalogTerm; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 656 | Medium |
| Inconsistent synchronization of ca.sqlpower.sqlobject.SQLDatabase.connectionPool; locked 57% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 582 | Medium |
| Inconsistent synchronization of ca.sqlpower.sqlobject.SQLDatabase.schemaTerm; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 660 | Medium |
| Redundant nullcheck of rs which is known to be null in ca.sqlpower.sqlobject.SQLDatabase.populateImpl() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE | 169 | Medium |
| Class ca.sqlpower.sqlobject.SQLDatabase implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 50-707 | Low |
| Class ca.sqlpower.sqlobject.SQLDatabase defines non-transient non-serializable instance field dataSource | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked/unconfirmed cast from ca.sqlpower.sqlobject.SQLObject to ca.sqlpower.sqlobject.SQLIndex in ca.sqlpower.sqlobject.SQLIndex.updateToMatch(SQLObject) | STYLE | BC_UNCONFIRMED_CAST | 378 | Low |
| Method ca.sqlpower.sqlobject.SQLIndex.fetchIndicesForTable(DatabaseMetaData, SQLTable) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 639 | Medium |
| Confusing to have methods ca.sqlpower.sqlobject.SQLIndex.cleanUp() and ca.sqlpower.swingui.db.DatabaseConnectionManager$ConnectionTableModel.cleanup() | BAD_PRACTICE | NM_CONFUSING | 525-533 | Low |
| ca.sqlpower.sqlobject.SQLIndex$1 stored into non-transient field SQLIndex.removeColumnListener | BAD_PRACTICE | SE_BAD_FIELD_STORE | 337 | Medium |
| ca.sqlpower.sqlobject.SQLIndex is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 39-862 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Uncallable method ca.sqlpower.sqlobject.SQLIndex$1.dbStructureChanged(SQLObjectEvent) defined in anonymous class | CORRECTNESS | UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS | 340 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.sqlobject.SQLIndex$Column defines non-transient non-serializable instance field targetColumnListener | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| ca.sqlpower.sqlobject.SQLIndex$Column is serializable and an inner class | BAD_PRACTICE | SE_INNER_CLASS | 73-283 | Low |
| ca.sqlpower.sqlobject.SQLIndex$Column is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 73-283 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Inconsistent synchronization of ca.sqlpower.sqlobject.SQLObject.magicDisableCount; locked 85% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 148 | Low |
| Method ca.sqlpower.sqlobject.SQLObject.fireDbChildrenPreRemove(int[], List) uses Collection.toArray() with zero-length array argument | PERFORMANCE | ITA_INEFFICIENT_TO_ARRAY | 610 | Low |
| Method ca.sqlpower.sqlobject.SQLObject.fireDbChildrenRemoved(int[], List) uses Collection.toArray() with zero-length array argument | PERFORMANCE | ITA_INEFFICIENT_TO_ARRAY | 511 | Low |
| Method ca.sqlpower.sqlobject.SQLObject.fireDbObjectChanged(String, Object, Object) uses Collection.toArray() with zero-length array argument | PERFORMANCE | ITA_INEFFICIENT_TO_ARRAY | 551 | Low |
| Method ca.sqlpower.sqlobject.SQLObject.fireUndoCompoundEvent(CompoundEvent) uses Collection.toArray() with zero-length array argument | PERFORMANCE | ITA_INEFFICIENT_TO_ARRAY | 661 | Low |
| Load of known null value in ca.sqlpower.sqlobject.SQLObject.fireDbObjectChanged(String, Object, Object) | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 530 | Medium |
| Redundant nullcheck of ?, which is known to be non-null in ca.sqlpower.sqlobject.SQLObject.isTableContainer() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 933 | Low |
| The field ca.sqlpower.sqlobject.SQLObject.sqlObjectListeners is transient but isn't set by deserialization | BAD_PRACTICE | SE_TRANSIENT_FIELD_NOT_RESTORED | Not available | Low |
| The field ca.sqlpower.sqlobject.SQLObject.sqlObjectPreEventListeners is transient but isn't set by deserialization | BAD_PRACTICE | SE_TRANSIENT_FIELD_NOT_RESTORED | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.sqlobject.SQLObjectEvent.getChangedIndices() may expose internal representation by returning SQLObjectEvent.changedIndices | MALICIOUS_CODE | EI_EXPOSE_REP | 90 | Medium |
| ca.sqlpower.sqlobject.SQLObjectEvent.getChildren() may expose internal representation by returning SQLObjectEvent.children | MALICIOUS_CODE | EI_EXPOSE_REP | 108 | Medium |
| new ca.sqlpower.sqlobject.SQLObjectEvent(SQLObject, int[], SQLObject[]) may expose internal representation by storing an externally mutable object into SQLObjectEvent.changedIndices | MALICIOUS_CODE | EI_EXPOSE_REP2 | 44 | Medium |
| new ca.sqlpower.sqlobject.SQLObjectEvent(SQLObject, int[], SQLObject[]) may expose internal representation by storing an externally mutable object into SQLObjectEvent.children | MALICIOUS_CODE | EI_EXPOSE_REP2 | 45 | Medium |
| ca.sqlpower.sqlobject.SQLObjectEvent.setChangedIndices(int[]) may expose internal representation by storing an externally mutable object into SQLObjectEvent.changedIndices | MALICIOUS_CODE | EI_EXPOSE_REP2 | 99 | Medium |
| ca.sqlpower.sqlobject.SQLObjectEvent.setChildren(SQLObject[]) may expose internal representation by storing an externally mutable object into SQLObjectEvent.children | MALICIOUS_CODE | EI_EXPOSE_REP2 | 117 | Medium |
| Class ca.sqlpower.sqlobject.SQLObjectEvent implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 43-180 | Low |
| ca.sqlpower.sqlobject.SQLObjectEvent is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 43-180 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.sqlobject.SQLObjectException implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 27-40 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.sqlobject.SQLObjectPreEvent.getChangeIndices() may expose internal representation by returning SQLObjectPreEvent.changeIndices | MALICIOUS_CODE | EI_EXPOSE_REP | 58 | Medium |
| ca.sqlpower.sqlobject.SQLObjectPreEvent.getChildren() may expose internal representation by returning SQLObjectPreEvent.children | MALICIOUS_CODE | EI_EXPOSE_REP | 66 | Medium |
| new ca.sqlpower.sqlobject.SQLObjectPreEvent(SQLObject, int[], SQLObject[]) may expose internal representation by storing an externally mutable object into SQLObjectPreEvent.changeIndices | MALICIOUS_CODE | EI_EXPOSE_REP2 | 49 | Medium |
| new ca.sqlpower.sqlobject.SQLObjectPreEvent(SQLObject, int[], SQLObject[]) may expose internal representation by storing an externally mutable object into SQLObjectPreEvent.children | MALICIOUS_CODE | EI_EXPOSE_REP2 | 50 | Medium |
| ca.sqlpower.sqlobject.SQLObjectPreEvent is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 47-100 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked/unconfirmed cast from ca.sqlpower.sqlobject.SQLObject to ca.sqlpower.sqlobject.SQLRelationship in ca.sqlpower.sqlobject.SQLRelationship.updateToMatch(SQLObject) | STYLE | BC_UNCONFIRMED_CAST | 299 | Low |
| Method ca.sqlpower.sqlobject.SQLRelationship.realizeMapping() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 498 | Medium |
| Method ca.sqlpower.sqlobject.SQLRelationship.setIdentifying(boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 1146 | Medium |
| Comparison of String objects using == or != in ca.sqlpower.sqlobject.SQLRelationship.equals(Object) | BAD_PRACTICE | ES_COMPARING_STRINGS_WITH_EQ | 1401 | Low |
| Redundant nullcheck of fkTable, which is known to be non-null in ca.sqlpower.sqlobject.SQLRelationship.attachRelationship(SQLTable, SQLTable, boolean) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 444 | Low |
| Class ca.sqlpower.sqlobject.SQLRelationship implements same interface as superclass | STYLE | RI_REDUNDANT_INTERFACES | 42-1457 | Low |
| Class ca.sqlpower.sqlobject.SQLRelationship defines non-transient non-serializable instance field fkColumnManager | BAD_PRACTICE | SE_BAD_FIELD | Not available | High |
| ca.sqlpower.sqlobject.SQLRelationship is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 42-1457 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.sqlobject.SQLRelationship$ColumnMapping is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 1198-1314 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.sqlobject.SQLRelationship$ColumnMappingFKColumnOrderComparator implements Comparator but not Serializable | BAD_PRACTICE | SE_COMPARATOR_SHOULD_BE_SERIALIZABLE | 47-56 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Method ca.sqlpower.sqlobject.SQLRelationship$RelationshipManager.ensureInMapping(SQLColumn) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 930 | Medium |
| Nullcheck of prop at line 864 of value previously dereferenced in ca.sqlpower.sqlobject.SQLRelationship$RelationshipManager.dbObjectChanged(SQLObjectEvent) | CORRECTNESS | RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE | 843 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked/unconfirmed cast from ca.sqlpower.sqlobject.SQLObject to ca.sqlpower.sqlobject.SQLSchema in ca.sqlpower.sqlobject.SQLSchema.updateToMatch(SQLObject) | STYLE | BC_UNCONFIRMED_CAST | 125 | Low |
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 250 | Low |
| Redundant nullcheck of rs which is known to be null in ca.sqlpower.sqlobject.SQLSchema.populateImpl() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE | 218 | Medium |
| ca.sqlpower.sqlobject.SQLSchema is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 39-257 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked/unconfirmed cast from ca.sqlpower.sqlobject.SQLObject to ca.sqlpower.sqlobject.SQLTable in ca.sqlpower.sqlobject.SQLTable.updateToMatch(SQLObject) | STYLE | BC_UNCONFIRMED_CAST | 158 | Low |
| Method ca.sqlpower.sqlobject.SQLTable.addColumnImpl(int, SQLColumn) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 644 | Medium |
| Method ca.sqlpower.sqlobject.SQLTable.changeColumnIndex(int, int, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 745 | Medium |
| Method ca.sqlpower.sqlobject.SQLTable.inherit(int, SQLColumn, boolean, SQLTable$TransferStyles, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 549 | Medium |
| Method ca.sqlpower.sqlobject.SQLTable.inherit(int, SQLTable, SQLTable$TransferStyles, boolean) invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 502 | Medium |
| Method ca.sqlpower.sqlobject.SQLTable.normalizePrimaryKey() invokes inefficient new Integer(int) constructor; use Integer.valueOf(int) instead | PERFORMANCE | DM_NUMBER_CTOR | 828 | Medium |
| Inconsistent synchronization of ca.sqlpower.sqlobject.SQLTable.indicesFolder; locked 71% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 1280 | Medium |
| ca.sqlpower.sqlobject.SQLTable is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 39-1681 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.sqlobject.SQLTable$Folder is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 964-1204 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.swingui.db.DatabaseConnectionManager$ConnectionTableModel$1 stored into non-transient field DatabaseConnectionManager$ConnectionTableModel.databaseListChangeListener | BAD_PRACTICE | SE_BAD_FIELD_STORE | 543 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.swingui.table.TableModelSortDecorator defines non-transient non-serializable instance field viewToModel | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| ca.sqlpower.swingui.table.TableModelSortDecorator$MouseHandler stored into non-transient field TableModelSortDecorator.mouseListener | BAD_PRACTICE | SE_BAD_FIELD_STORE | 148 | Medium |
| ca.sqlpower.swingui.table.TableModelSortDecorator$TableModelHandler stored into non-transient field TableModelSortDecorator.tableModelListener | BAD_PRACTICE | SE_BAD_FIELD_STORE | 149 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| int division result cast to double or float in ca.sqlpower.swingui.table.TableModelSortDecorator$Arrow.paintIcon(Component, Graphics, int, int) | STYLE | ICAST_IDIV_CAST_TO_DOUBLE | 503 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.swingui.table.TableModelSortDecorator$Row defines compareTo(Object) and uses Object.equals() | BAD_PRACTICE | EQ_COMPARETO_USE_OBJECT_EQUALS | 368-391 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Redundant nullcheck of rs which is known to be null in ca.sqlpower.wabit.QueryCache.executeStatement(boolean) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE | 277 | Medium |
| Method ca.sqlpower.wabit.QueryCache.executeStatement(boolean) passes a nonconstant String to an execute method on an SQL statement | SECURITY | SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE | 240 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 92 | Low |
| ca.sqlpower.wabit.WabitSessionContextImpl.close() invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 287 | Medium |
| ca.sqlpower.wabit.WabitSessionContextImpl.deregisterChildSession(WabitSession) invokes System.exit(...), which shuts down the entire virtual machine | BAD_PRACTICE | DM_EXIT | 237 | Medium |
| Method ca.sqlpower.wabit.WabitSessionContextImpl.getDataSources() may fail to clean up stream or resource of type java.io.InputStream | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 210 | Medium |
| Nullcheck of WabitSessionContextImpl.dataSources at line 215 of value previously dereferenced in ca.sqlpower.wabit.WabitSessionContextImpl.getDataSources() | CORRECTNESS | RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE | 210 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Method ca.sqlpower.wabit.WabitVersion.<static initializer>() may fail to clean up stream or resource of type java.io.InputStream | EXPERIMENTAL | OBL_UNSATISFIED_OBLIGATION | 36 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| instanceof will always return true in ca.sqlpower.wabit.WabitWorkspace.addDataSource(WabitDataSource), since all ca.sqlpower.wabit.WabitDataSource are instances of ca.sqlpower.wabit.WabitDataSource | STYLE | BC_VACUOUS_INSTANCEOF | 167 | Medium |
| instanceof will always return true in ca.sqlpower.wabit.WabitWorkspace.dsAlreadyAdded(SPDataSource), since all ca.sqlpower.wabit.WabitDataSource are instances of ca.sqlpower.wabit.WabitDataSource | STYLE | BC_VACUOUS_INSTANCEOF | 395 | Medium |
| instanceof will always return true in ca.sqlpower.wabit.WabitWorkspace.removeDataSource(WabitDataSource), since all ca.sqlpower.wabit.WabitDataSource are instances of ca.sqlpower.wabit.WabitDataSource | STYLE | BC_VACUOUS_INSTANCEOF | 178 | Medium |
| Method ca.sqlpower.wabit.WabitWorkspace.addDataSource(WabitDataSource) does an unnecessary type check using instanceof operator when it can be determined statically | CORRECTNESS | SIO_SUPERFLUOUS_INSTANCEOF | 167 | Low |
| Method ca.sqlpower.wabit.WabitWorkspace.dsAlreadyAdded(SPDataSource) does an unnecessary type check using instanceof operator when it can be determined statically | CORRECTNESS | SIO_SUPERFLUOUS_INSTANCEOF | 395 | Low |
| Method ca.sqlpower.wabit.WabitWorkspace.removeDataSource(WabitDataSource) does an unnecessary type check using instanceof operator when it can be determined statically | CORRECTNESS | SIO_SUPERFLUOUS_INSTANCEOF | 178 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.dao.OpenWorkspaceXMLDAO.addImportedWorkspaceContentToWorkspace(WabitSession) | STYLE | REC_CATCH_EXCEPTION | 251 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.dao.WabitObjectComparator implements Comparator but not Serializable | BAD_PRACTICE | SE_COMPARATOR_SHOULD_BE_SERIALIZABLE | 67-155 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Dead store to initialView in ca.sqlpower.wabit.dao.WorkspaceSAXHandler.endElement(String, String, String) | STYLE | DLS_DEAD_LOCAL_STORE | 1247 | Low |
| Useless control flow in ca.sqlpower.wabit.dao.WorkspaceSAXHandler.startElement(String, String, String, Attributes) | STYLE | UCF_USELESS_CONTROL_FLOW | 600 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.olap.MemberHierarchyComparator implements Comparator but not Serializable | BAD_PRACTICE | SE_COMPARATOR_SHOULD_BE_SERIALIZABLE | 29-69 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Inconsistent synchronization of ca.sqlpower.wabit.olap.OlapQuery.currentCube; locked 50% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 239 | High |
| Inconsistent synchronization of ca.sqlpower.wabit.olap.OlapQuery.mdxQuery; locked 90% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 134 | High |
| Inconsistent synchronization of ca.sqlpower.wabit.olap.OlapQuery.wasLoadedFromXml; locked 66% of time | MT_CORRECTNESS | IS2_INCONSISTENT_SYNC | 644 | High |
| OlapQuery.hierarchiesInUse not guarded against concurrent access; locked 80% of time | MT_CORRECTNESS | IS_FIELD_NOT_GUARDED | 136 | High |
| OlapQuery.slicerMember not guarded against concurrent access; locked 92% of time | MT_CORRECTNESS | IS_FIELD_NOT_GUARDED | 146 | High |
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.olap.OlapQuery.init() | STYLE | REC_CATCH_EXCEPTION | 566 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.olap.OlapResultSet is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 104-293 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.report.CellSetRenderer.init() | STYLE | REC_CATCH_EXCEPTION | 201 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| int division result cast to double or float in ca.sqlpower.wabit.report.ChartRenderer.renderError(Graphics2D, ContentBox, String[]) | STYLE | ICAST_IDIV_CAST_TO_DOUBLE | 130 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Test for floating point equality in ca.sqlpower.wabit.report.Guide.dragSnappedEdges(double, double) | STYLE | FE_FLOATING_POINT_EQUALITY | 107 | High |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Switch statement found in ca.sqlpower.wabit.report.ImageRenderer.renderReportContent(Graphics2D, ContentBox, double, int, boolean) where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 150-155 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked/unconfirmed cast from java.awt.Graphics to java.awt.Graphics2D in ca.sqlpower.wabit.report.Layout.print(Graphics, PageFormat, int) | STYLE | BC_UNCONFIRMED_CAST | 176 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Should ca.sqlpower.wabit.report.Layout$LayoutVarContext be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | 72-91 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| instanceof will always return true in new ca.sqlpower.wabit.report.ResultSetRenderer(QueryCache, List), since all ca.sqlpower.wabit.QueryCache are instances of ca.sqlpower.swingui.query.StatementExecutor | STYLE | BC_VACUOUS_INSTANCEOF | 290 | Medium |
| instanceof will always return true in new ca.sqlpower.wabit.report.ResultSetRenderer(ResultSetRenderer), since all ca.sqlpower.wabit.QueryCache are instances of ca.sqlpower.swingui.query.StatementExecutor | STYLE | BC_VACUOUS_INSTANCEOF | 321 | Medium |
| instanceof will always return true in ca.sqlpower.wabit.report.ResultSetRenderer.cleanup(), since all ca.sqlpower.wabit.QueryCache are instances of ca.sqlpower.swingui.query.StatementExecutor | STYLE | BC_VACUOUS_INSTANCEOF | 328 | Medium |
| instanceof will always return true in ca.sqlpower.wabit.report.ResultSetRenderer.executeQuery(), since all ca.sqlpower.sql.CachedRowSet are instances of ca.sqlpower.sql.CachedRowSet | STYLE | BC_VACUOUS_INSTANCEOF | 358 | Medium |
| Possible null pointer dereference of query in new ca.sqlpower.wabit.report.ResultSetRenderer(QueryCache, List) | CORRECTNESS | NP_NULL_ON_SOME_PATH | 293 | Medium |
| Possible null pointer dereference of ResultSetRenderer.query in ca.sqlpower.wabit.report.ResultSetRenderer.cleanup() | CORRECTNESS | NP_NULL_ON_SOME_PATH | 331 | Medium |
| Nullcheck of ResultSetRenderer.query at line 321 of value previously dereferenced in new ca.sqlpower.wabit.report.ResultSetRenderer(ResultSetRenderer) | CORRECTNESS | RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE | 320 | Medium |
| Method new ca.sqlpower.wabit.report.ResultSetRenderer(QueryCache, List) does an unnecessary type check using instanceof operator when it can be determined statically | CORRECTNESS | SIO_SUPERFLUOUS_INSTANCEOF | 290 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Redundant nullcheck of ca.sqlpower.wabit.report.chart.Chart.query, which is known to be non-null in ca.sqlpower.wabit.report.chart.Chart.defineQuery(WabitObject) | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 538 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.report.chart.ComparableCategoryRow defines compareTo(ComparableCategoryRow) and uses Object.equals() | BAD_PRACTICE | EQ_COMPARETO_USE_OBJECT_EQUALS | 48-74 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Method ca.sqlpower.wabit.report.chart.DatasetUtil.createCategoryDataset(List, ResultSet, List) uses Collection.toArray() with zero-length array argument | PERFORMANCE | ITA_INEFFICIENT_TO_ARRAY | 121 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Dead store to sectionTotals in ca.sqlpower.wabit.report.resultset.ReportPositionRenderer.createResultSetLayout(Graphics2D, ResultSet, List, ContentBox, boolean) | STYLE | DLS_DEAD_LOCAL_STORE | 150 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRLexer.mID() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 3962-3968 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRLexer.mQUOTEDSTRING() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 3667-3678 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRLexer.mQUOTEID() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 3813-3823 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRLexer.mSL_COMMENT() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 4136-4149 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRLexer.mTokens() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 6730-6737 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target() | STYLE | DLS_DEAD_LOCAL_STORE | 1342 | High |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.alias_clause() | STYLE | DLS_DEAD_LOCAL_STORE | 4077 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.from_clause() | STYLE | DLS_DEAD_LOCAL_STORE | 2548 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.func_expr() | STYLE | DLS_DEAD_LOCAL_STORE | 4495 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.groupby_clause() | STYLE | DLS_DEAD_LOCAL_STORE | 6805 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.having_clause() | STYLE | DLS_DEAD_LOCAL_STORE | 6913 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.indirection() | STYLE | DLS_DEAD_LOCAL_STORE | 2407 | Medium |
| Dead store to listTokens in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.main(String[]) | STYLE | DLS_DEAD_LOCAL_STORE | 126 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.qualified_name() | STYLE | DLS_DEAD_LOCAL_STORE | 2148 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.simple_select() | STYLE | DLS_DEAD_LOCAL_STORE | 492 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.table_join() | STYLE | DLS_DEAD_LOCAL_STORE | 3277 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.table_ref() | STYLE | DLS_DEAD_LOCAL_STORE | 3009 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target() | STYLE | DLS_DEAD_LOCAL_STORE | 1385 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target_alias() | STYLE | DLS_DEAD_LOCAL_STORE | 1487 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.where_clause() | STYLE | DLS_DEAD_LOCAL_STORE | 6691 | Medium |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.a_expr() | STYLE | DLS_DEAD_LOCAL_STORE | 4776 | Low |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.b_expr() | STYLE | DLS_DEAD_LOCAL_STORE | 4912 | Low |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.expr_list() | STYLE | DLS_DEAD_LOCAL_STORE | 1106 | Low |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.name_list() | STYLE | DLS_DEAD_LOCAL_STORE | 4232 | Low |
| Dead store to stream_retval in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target_list() | STYLE | DLS_DEAD_LOCAL_STORE | 1216 | Low |
| ca.sqlpower.wabit.sql.parser.SQLANTLRParser.getTokenNames() may expose internal representation by returning SQLANTLRParser.tokenNames | MALICIOUS_CODE | EI_EXPOSE_REP | 119 | Medium |
| ca.sqlpower.wabit.sql.parser.SQLANTLRParser.tokenNames should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 16 | Medium |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.a_expr() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 4775 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.alias_clause() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 4076 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.b_expr() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 4911 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.expr_list() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 1105 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.from_clause() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 2547 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.func_expr() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 4494 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.groupby_clause() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 6804 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.having_clause() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 6912 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.indirection() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 2406 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.name_list() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 4231 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.qualified_name() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 2147 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.simple_select() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 491 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.table_join() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 3276 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.table_ref() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 3008 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 1341 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target_alias() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 1486 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target_list() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 1215 | Low |
| Load of known null value in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.where_clause() | STYLE | NP_LOAD_OF_KNOWN_NULL_VALUE | 6690 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.a_expr() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 4776 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.alias_clause() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 4077 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.b_expr() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 4912 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.expr_list() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 1106 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.from_clause() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 2548 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.func_expr() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 4495 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.groupby_clause() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 6805 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.having_clause() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 6913 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.indirection() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 2407 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.name_list() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 4232 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.qualified_name() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 2148 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.simple_select() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 492 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.table_join() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 3277 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.table_ref() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 3009 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 1342 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target_alias() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 1487 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target_list() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 1216 | Low |
| Redundant nullcheck of retval, which is known to be non-null in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.where_clause() | STYLE | RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE | 6691 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.alias_clause() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 4131-4142 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.e_expr() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 5222-5230 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.f_expr() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 5381-5389 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.from_clause() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 2572-2578 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.from_list() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 2641-2647 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.func_args() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 4625-4632 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.groupby_clause() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 6830-6836 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.h_expr() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 5577-5583 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.having_clause() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 6937-6943 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.i_expr() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 5762-5770 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.indirection() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 2460-2471 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.into_clause() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 1625-1631 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.j_expr() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 5913-5921 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.join_outer() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 3803-3809 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.join_qual() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 3918-3924 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.join_type() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 3726-3733 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.joined_table() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 3575-3581 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.l_expr() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 6375-6382 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.limit() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 7272-7282 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.opt_alias() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 3996-4002 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.opt_distinct() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 1004-1010 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.opt_limit() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 7128-7134 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.opt_table() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 2058-2064 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.opt_temp_table_name() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 1982-1988 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.orderby_clause() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 7053-7059 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.relation_expr() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 4358-4368 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.relation_name() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 2252-2258 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.simple_select() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 529-535 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.stmtmulti() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 282-293 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.table_join() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 3324-3330 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.table_joins() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 2798-2806 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.table_ref() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 2993-3007 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 1326-1340 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.target_alias() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 1537-1548 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.unary_op() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 6548-6558 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.values_expr() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 832-839 | Low |
| Switch statement found in ca.sqlpower.wabit.sql.parser.SQLANTLRParser.where_clause() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 6715-6721 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Should ca.sqlpower.wabit.sql.parser.SQLANTLRParser$DFA20 be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | 7827-7839 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.InsertVariableButton$1 stored into non-transient field InsertVariableButton.clickHandler | BAD_PRACTICE | SE_BAD_FIELD_STORE | 57 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| int division result cast to double or float in ca.sqlpower.wabit.swingui.NewWorkspaceScreen.showFrame() | STYLE | ICAST_IDIV_CAST_TO_DOUBLE | 164 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.NewWorkspaceScreen$2.windowClosed(WindowEvent) | STYLE | REC_CATCH_EXCEPTION | 131 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.OpenOnServerMenu.refresh() | STYLE | REC_CATCH_EXCEPTION | 78 | Low |
| Class ca.sqlpower.wabit.swingui.OpenOnServerMenu defines non-transient non-serializable instance field serviceInfo | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Comparison of String objects using == or != in ca.sqlpower.wabit.swingui.QueryPanel$1.propertyChangeEvent(PropertyChangeEvent) | BAD_PRACTICE | ES_COMPARING_STRINGS_WITH_EQ | 426 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Check for sign of bitwise operation in ca.sqlpower.wabit.swingui.QueryPanel$13.hierarchyChanged(HierarchyEvent) | BAD_PRACTICE | BIT_SIGNED_CHECK | 913 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.QueryPanel$3 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 538-542 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Dead store to db in ca.sqlpower.wabit.swingui.QueryPanel$8.doStuff() | STYLE | DLS_DEAD_LOCAL_STORE | 674 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Dead store to name in ca.sqlpower.wabit.swingui.QueryPanel$9.dragGestureRecognized(DragGestureEvent) | STYLE | DLS_DEAD_LOCAL_STORE | 720 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Should ca.sqlpower.wabit.swingui.QueryPanel$RowListModel be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | 239-246 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.ServerListMenu$3 stored into non-transient field ServerListMenu.refillMenu | BAD_PRACTICE | SE_BAD_FIELD_STORE | 158 | Medium |
| ca.sqlpower.wabit.swingui.ServerListMenu$4 stored into non-transient field ServerListMenu.serviceListener | BAD_PRACTICE | SE_BAD_FIELD_STORE | 176 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.StackedTabComponent defines non-transient non-serializable instance field selectedTab | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.StackedTabComponent$StackedTab$1 defines non-transient non-serializable instance field this$1 | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.StackedTabComponent$StackedTab$2 defines non-transient non-serializable instance field this$1 | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.WabitImagePanel$3.drop(DropTargetDropEvent) may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 146 | Medium |
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.WabitImagePanel$3.drop(DropTargetDropEvent) | STYLE | REC_CATCH_EXCEPTION | 157 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| instanceof will always return true in ca.sqlpower.wabit.swingui.WabitSwingSessionContextImpl.createEditorPanel(WabitObject), since all ca.sqlpower.wabit.WabitObject are instances of ca.sqlpower.wabit.WabitObject | STYLE | BC_VACUOUS_INSTANCEOF | 1536 | Medium |
| Method ca.sqlpower.wabit.swingui.WabitSwingSessionContextImpl.getDatasourceDependencies(WabitObject) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 1183 | Medium |
| Method ca.sqlpower.wabit.swingui.WabitSwingSessionContextImpl.createEditorPanel(WabitObject) does an unnecessary type check using instanceof operator when it can be determined statically | CORRECTNESS | SIO_SUPERFLUOUS_INSTANCEOF | 1536 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.WabitSwingSessionContextImpl$17.createMenuEntry(WabitServerInfo, Component) | STYLE | REC_CATCH_EXCEPTION | 1400 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.WabitSwingSessionContextImpl$20.run() | STYLE | REC_CATCH_EXCEPTION | 1856 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Should ca.sqlpower.wabit.swingui.WabitSwingSessionContextImpl$SearchTreeCellRenderer be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | 741-753 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.WabitWelcomeScreen$4 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 181-184 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.WorkspacePanel.addJDBCDataSource(JDBCDataSource, WabitSwingSession) might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 327 | Low |
| ca.sqlpower.wabit.swingui.WorkspacePanel.addOlap4jDataSource(Olap4jDataSource, WabitSwingSession) might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 364 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.WorkspaceTreeListener$3 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 473-476 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.action.AboutAction$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 74-78 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.AddDataSourceAction defines non-transient non-serializable instance field workspace | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.CopyImageAction defines non-transient non-serializable instance field image | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.CopyOlapDatasource defines non-transient non-serializable instance field wds | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.CopyReportAction defines non-transient non-serializable instance field layout | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.CopyTemplateAction defines non-transient non-serializable instance field layout | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| int division result cast to double or float in ca.sqlpower.wabit.swingui.action.CreateLayoutFromQueryAction.createDefaultLayout(WabitWorkspace, ReportContentRenderer, String) | STYLE | ICAST_IDIV_CAST_TO_DOUBLE | 118 | Medium |
| Class ca.sqlpower.wabit.swingui.action.CreateLayoutFromQueryAction defines non-transient non-serializable instance field workspace | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.action.ExportSQLScriptAction.actionPerformed(ActionEvent) may fail to close stream on exception | BAD_PRACTICE | OS_OPEN_STREAM_EXCEPTION_PATH | 85 | Low |
| Class ca.sqlpower.wabit.swingui.action.ExportSQLScriptAction defines non-transient non-serializable instance field query | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.action.HelpAction.actionPerformed(ActionEvent) | STYLE | REC_CATCH_EXCEPTION | 61 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.action.ImportWorkspaceAction$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 87-142 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.action.NewChartAction.actionPerformed(ActionEvent) | STYLE | REC_CATCH_EXCEPTION | 87 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.NewOLAPQueryAction defines non-transient non-serializable instance field ds | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.NewQueryAction defines non-transient non-serializable instance field ds | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Class ca.sqlpower.wabit.swingui.action.NewQueryAction defines non-transient non-serializable instance field workspace | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.NewServerWorkspaceAction defines non-transient non-serializable instance field si | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.OpenServerWorkspaceAction defines non-transient non-serializable instance field serviceInfo | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.action.OpenWorkspaceAction.loadFiles(WabitSwingSessionContext, URI[]) | STYLE | REC_CATCH_EXCEPTION | 127 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.ReportFromTemplateAction defines non-transient non-serializable instance field template | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.action.SaveServerWorkspaceAction.actionPerformed(ActionEvent) | STYLE | REC_CATCH_EXCEPTION | 85 | Low |
| Class ca.sqlpower.wabit.swingui.action.SaveServerWorkspaceAction defines non-transient non-serializable instance field si | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Class ca.sqlpower.wabit.swingui.action.SaveServerWorkspaceAction defines non-transient non-serializable instance field workspace | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Method new ca.sqlpower.wabit.swingui.action.SaveServerWorkspaceAction$SaveOnServerPanel(SaveServerWorkspaceAction) uses Collection.toArray() with zero-length array argument | PERFORMANCE | ITA_INEFFICIENT_TO_ARRAY | 104 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.SaveWorkspaceAsAction$SaveAsPrompt$1$1 defines non-transient non-serializable instance field this$1 | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.ShowEditorAction defines non-transient non-serializable instance field workspace | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.action.ShowQueryPropertiesAction defines non-transient non-serializable instance field query | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.chart.ChartPanel.updateChartFromGUI() | STYLE | REC_CATCH_EXCEPTION | 677 | Low |
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.chart.ChartPanel.updateChartPreview() | STYLE | REC_CATCH_EXCEPTION | 509 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.chart.ChartTableCellRenderer defines non-transient non-serializable instance field chart | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.chart.RefreshDataAction defines non-transient non-serializable instance field chart | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.chart.RevertToDefaultsAction defines non-transient non-serializable instance field chartPanel | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.chart.WabitDrawingSupplier.SERIES_COLOURS should be package protected | MALICIOUS_CODE | MS_PKGPROTECT | 41 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked/unconfirmed cast from java.awt.Graphics to java.awt.Graphics2D in ca.sqlpower.wabit.swingui.chart.WabitJFreeChartPanel.paintComponent(Graphics) | STYLE | BC_UNCONFIRMED_CAST | 47 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.enterprise.ServerInfoManager$5 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 154-156 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.olap.CellSetTableHeaderComponent defines non-transient non-serializable instance field dropTargetListener | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Class ca.sqlpower.wabit.swingui.olap.CellSetTableHeaderComponent defines non-transient non-serializable instance field query | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.olap.CellSetTableHeaderComponent$1 defines non-transient non-serializable instance field DASHED_STROKE | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.olap.CellSetTableHeaderComponent$CellSetTableHeaderDropTargetListener.importData(JComponent, Transferable, Point) | STYLE | REC_CATCH_EXCEPTION | 344 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.olap.CellSetTableHeaderComponent$HierarchyComponent$MouseHandler.mousePressed(MouseEvent) | STYLE | REC_CATCH_EXCEPTION | 748 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.olap.CellSetViewer.updateCellSetViewer(OlapQuery, CellSet) | STYLE | REC_CATCH_EXCEPTION | 302 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.olap.CellSetViewer$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 113-122 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.olap.CellSetViewer$2 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 186-193 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.olap.CellSetViewer$3 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 196-204 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.olap.Olap4JTreeCellRenderer.configureJLabel(JLabel, Object) | STYLE | REC_CATCH_EXCEPTION | 109 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Should ca.sqlpower.wabit.swingui.olap.Olap4jTreeModel$OlapTreeRoot be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | 74-92 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.olap.OlapMetadataTransferable.getTransferData(DataFlavor) may expose internal representation by returning OlapMetadataTransferable.transferData | MALICIOUS_CODE | EI_EXPOSE_REP | 53 | Medium |
| new ca.sqlpower.wabit.swingui.olap.OlapMetadataTransferable(Object[]) may expose internal representation by storing an externally mutable object into OlapMetadataTransferable.transferData | MALICIOUS_CODE | EI_EXPOSE_REP2 | 45 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.olap.OlapQueryPanel$12.actionPerformed(ActionEvent) | STYLE | REC_CATCH_EXCEPTION | 535 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.olap.OlapQueryPanel$6 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 337-345 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.olap.OlapQueryPanel$8.actionPerformed(ActionEvent) | STYLE | REC_CATCH_EXCEPTION | 391 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.olap.OlapQueryPanel$CubeTreeDragGestureListener$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 132 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| instanceof will always return true in ca.sqlpower.wabit.swingui.olap.SlicerPanel.updatePanel(), since all org.olap4j.metadata.Measure are instances of org.olap4j.metadata.Measure | STYLE | BC_VACUOUS_INSTANCEOF | 116 | Medium |
| Class ca.sqlpower.wabit.swingui.olap.SlicerPanel defines non-transient non-serializable instance field mouseHandler | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Class ca.sqlpower.wabit.swingui.olap.SlicerPanel defines non-transient non-serializable instance field olapQuery | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Class ca.sqlpower.wabit.swingui.olap.SlicerPanel defines non-transient non-serializable instance field slicerPanelDropTargetListener | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.olap.SlicerPanel$SlicerPanelDropTargetListener.importData(Transferable, Point) | STYLE | REC_CATCH_EXCEPTION | 250 | Medium |
| Exception is caught when Exception is not thrown in ca.sqlpower.wabit.swingui.olap.SlicerPanel$SlicerPanelDropTargetListener.importData(Transferable, Point) | STYLE | REC_CATCH_EXCEPTION | 250 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.CellSetSwingRenderer$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 63-72 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.ChartSwingRenderer$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 51-58 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.report.ContentBoxNode defines non-transient non-serializable instance field contentBox | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class ca.sqlpower.wabit.swingui.report.ContentBoxNode defines non-transient non-serializable instance field parentPanel | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class ca.sqlpower.wabit.swingui.report.ContentBoxNode defines non-transient non-serializable instance field workspace | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class ca.sqlpower.wabit.swingui.report.ContentBoxNode defines non-transient non-serializable instance field contentRendererListener | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Class ca.sqlpower.wabit.swingui.report.ContentBoxNode defines non-transient non-serializable instance field inputHandler | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Class ca.sqlpower.wabit.swingui.report.ContentBoxNode defines non-transient non-serializable instance field swingRenderer | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| ca.sqlpower.wabit.swingui.report.ContentBoxNode$3 stored into non-transient field ContentBoxNode.contentRendererListener | BAD_PRACTICE | SE_BAD_FIELD_STORE | 208 | Medium |
| ca.sqlpower.wabit.swingui.report.ContentBoxNode$1 stored into non-transient field ContentBoxNode.inputHandler | BAD_PRACTICE | SE_BAD_FIELD_STORE | 86 | Medium |
| ca.sqlpower.wabit.swingui.report.ContentBoxNode$2 stored into non-transient field ContentBoxNode.modelChangeHandler | BAD_PRACTICE | SE_BAD_FIELD_STORE | 187 | Medium |
| ca.sqlpower.wabit.swingui.report.CellSetSwingRenderer stored into non-transient field ContentBoxNode.swingRenderer | BAD_PRACTICE | SE_BAD_FIELD_STORE | 232 | Low |
| ca.sqlpower.wabit.swingui.report.ChartSwingRenderer stored into non-transient field ContentBoxNode.swingRenderer | BAD_PRACTICE | SE_BAD_FIELD_STORE | 238 | Low |
| ca.sqlpower.wabit.swingui.report.ImageSwingRenderer stored into non-transient field ContentBoxNode.swingRenderer | BAD_PRACTICE | SE_BAD_FIELD_STORE | 236 | Low |
| ca.sqlpower.wabit.swingui.report.ResultSetSwingRenderer stored into non-transient field ContentBoxNode.swingRenderer | BAD_PRACTICE | SE_BAD_FIELD_STORE | 234 | Low |
| ca.sqlpower.wabit.swingui.report.SwingLabel stored into non-transient field ContentBoxNode.swingRenderer | BAD_PRACTICE | SE_BAD_FIELD_STORE | 240 | Low |
| ca.sqlpower.wabit.swingui.report.ContentBoxNode is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 62-421 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.report.ContentBoxNode$1$1 defines non-transient non-serializable instance field this$1 | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.report.ContentBoxNode$1$2 defines non-transient non-serializable instance field this$1 | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.report.ContentBoxNode$1$3 defines non-transient non-serializable instance field this$1 | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.report.GuideAwareBoundsHandle is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 43-98 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.report.GuideNode defines non-transient non-serializable instance field inputEventHandler | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class ca.sqlpower.wabit.swingui.report.GuideNode defines non-transient non-serializable instance field marginStroke | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| Class ca.sqlpower.wabit.swingui.report.GuideNode defines non-transient non-serializable instance field model | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| ca.sqlpower.wabit.swingui.report.GuideNode$2 stored into non-transient field GuideNode.modelChangeHandler | BAD_PRACTICE | SE_BAD_FIELD_STORE | 217 | Medium |
| ca.sqlpower.wabit.swingui.report.GuideNode$1 stored into non-transient field GuideNode.parentChangeHandler | BAD_PRACTICE | SE_BAD_FIELD_STORE | 132 | Medium |
| ca.sqlpower.wabit.swingui.report.GuideNode is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 54-284 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.report.GuideNode$GuideMouseEventHandler$1 defines non-transient non-serializable instance field this$1 | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Switch statement found in new ca.sqlpower.wabit.swingui.report.ImageSwingRenderer$ImageEntryPanel(WabitWorkspace, ImageRenderer) where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 91-95 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| int division result cast to double or float in ca.sqlpower.wabit.swingui.report.LayoutPanel.zoomToFit() | STYLE | ICAST_IDIV_CAST_TO_DOUBLE | 604 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.LayoutPanel$10 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 474-480 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Use of non-localized String.toUpperCase() or String.toLowerCase | I18N | DM_CONVERT_CASE | 100 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.PDFAction$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 126-135 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.PDFAction$2 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 138-153 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.PDFAction$3 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 156-162 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.report.PageFormatAction defines non-transient non-serializable instance field page | BAD_PRACTICE | SE_BAD_FIELD | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Class ca.sqlpower.wabit.swingui.report.PageNode defines non-transient non-serializable instance field page | BAD_PRACTICE | SE_BAD_FIELD | Not available | Medium |
| ca.sqlpower.wabit.swingui.report.PageNode$1 stored into non-transient field PageNode.pageChangeHandler | BAD_PRACTICE | SE_BAD_FIELD_STORE | 43 | Medium |
| ca.sqlpower.wabit.swingui.report.PageNode is Serializable; consider declaring a serialVersionUID | BAD_PRACTICE | SE_NO_SERIALVERSIONID | 37-111 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.PrintAction$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 118-127 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.PrintAction$2 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 130-145 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.PrintAction$3 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 148-154 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Should ca.sqlpower.wabit.swingui.report.PrintAction$PrintWorker be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | 55-83 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.report.PrintPreviewAction$5 stored into non-transient field PrintPreviewAction.closeListener | BAD_PRACTICE | SE_BAD_FIELD_STORE | 207 | Medium |
| ca.sqlpower.wabit.swingui.report.PrintPreviewAction$2 stored into non-transient field PrintPreviewAction.keyListener | BAD_PRACTICE | SE_BAD_FIELD_STORE | 80 | Medium |
| ca.sqlpower.wabit.swingui.report.PrintPreviewAction$1 stored into non-transient field PrintPreviewAction.pageIndexListener | BAD_PRACTICE | SE_BAD_FIELD_STORE | 66 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.report.PrintPreviewAction$2.keyReleased(KeyEvent) might ignore java.lang.Exception | BAD_PRACTICE | DE_MIGHT_IGNORE | 90 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.report.ReportQueryTransferable.getTransferData(DataFlavor) may expose internal representation by returning ReportQueryTransferable.queries | MALICIOUS_CODE | EI_EXPOSE_REP | 59 | Medium |
| new ca.sqlpower.wabit.swingui.report.ReportQueryTransferable(WabitObject[]) may expose internal representation by storing an externally mutable object into ReportQueryTransferable.queries | MALICIOUS_CODE | EI_EXPOSE_REP2 | 49 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.ResultSetSwingRenderer$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 137-141 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.SwingLabel$1 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 119-123 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| The class ca.sqlpower.wabit.swingui.report.SwingLabel$2 could be refactored into a named _static_ inner class | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC_ANON | 137-141 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked/unconfirmed cast from java.awt.Graphics to java.awt.Graphics2D in ca.sqlpower.wabit.swingui.report.TemplatePreviewIcon.paintIcon(Component, Graphics, int, int) | STYLE | BC_UNCONFIRMED_CAST | 67 | Low |
| int division result cast to double or float in ca.sqlpower.wabit.swingui.report.TemplatePreviewIcon.paintIcon(Component, Graphics, int, int) | STYLE | ICAST_IDIV_CAST_TO_DOUBLE | 90 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.tree.FolderNode.toString() may return null | BAD_PRACTICE | NP_TOSTRING_COULD_RETURN_NULL | 148 | Medium |
| Switch statement found in ca.sqlpower.wabit.swingui.tree.FolderNode.getChildren() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 119-122 | Low |
| Switch statement found in ca.sqlpower.wabit.swingui.tree.FolderNode.toString() where default case is missing | STYLE | SF_SWITCH_NO_DEFAULT | 145-148 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| ca.sqlpower.wabit.swingui.tree.SmartTreeTransferable.getTransferData(DataFlavor) ignores exceptional return value of java.io.File.mkdir() | BAD_PRACTICE | RV_RETURN_VALUE_IGNORED_BAD_PRACTICE | 174 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| WorkspaceTreeCellEditor.textField not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Unchecked argument of type Object provided where type ca.sqlpower.wabit.WabitObject is expected in ca.sqlpower.wabit.swingui.tree.WorkspaceTreeModel.getIndexOfChild(Object, Object) | BAD_PRACTICE | GC_UNCHECKED_TYPE_IN_GENERIC_CALL | 301 | Low |
| Unchecked argument of type Object provided where type FolderNode is expected in ca.sqlpower.wabit.swingui.tree.WorkspaceTreeModel.getIndexOfChild(Object, Object) | BAD_PRACTICE | GC_UNCHECKED_TYPE_IN_GENERIC_CALL | 285 | Low |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| Should ca.sqlpower.wabit.swingui.tree.WorkspaceTreeModel$Olap4jTreeObject be a _static_ inner class? | PERFORMANCE | SIC_INNER_SHOULD_BE_STATIC | 354-372 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| org.jfree.chart.plot.PiePlot3DGradient doesn't override PiePlot3D.equals(Object) | STYLE | EQ_DOESNT_OVERRIDE_EQUALS | 1014-1027 | Medium |
| Bug | Category | Details | Line | Priority |
|---|---|---|---|---|
| PiePlot3DGradient.faceGradient not initialized in constructor | STYLE | UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR | Not available | Low |