SpotBugs Bug Detector Report
The following document contains the results of SpotBugs
SpotBugs Version is 4.8.6
Threshold is medium
Effort is default
Summary
Classes |
Bugs |
Errors |
Missing Classes |
234 |
66 |
0 |
0 |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.Alarm
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class edu.jiangxin.apktoolbox.android.dumpsys.alarm.Alarm at new edu.jiangxin.apktoolbox.android.dumpsys.alarm.Alarm(String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
31 |
Medium |
Boxing/unboxing to parse a primitive new edu.jiangxin.apktoolbox.android.dumpsys.alarm.Alarm(String) |
PERFORMANCE |
DM_BOXED_PRIMITIVE_FOR_PARSING |
31 |
High |
Boxing/unboxing to parse a primitive new edu.jiangxin.apktoolbox.android.dumpsys.alarm.Alarm(String) |
PERFORMANCE |
DM_BOXED_PRIMITIVE_FOR_PARSING |
56 |
High |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.Alarm.getParentBatch() may expose internal representation by returning Alarm.parentBatch |
MALICIOUS_CODE |
EI_EXPOSE_REP |
85 |
Medium |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.Alarm.setParentBatch(AlarmBatch) may expose internal representation by storing an externally mutable object into Alarm.parentBatch |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
20 |
Medium |
Switch statement found in new edu.jiangxin.apktoolbox.android.dumpsys.alarm.Alarm(String) where default case is missing |
STYLE |
SF_SWITCH_NO_DEFAULT |
40-51 |
Medium |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmBatch
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmBatch at new edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmBatch(String[]) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
37 |
Medium |
Boxing/unboxing to parse a primitive edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmBatch.setParameter(String) |
PERFORMANCE |
DM_BOXED_PRIMITIVE_FOR_PARSING |
49 |
High |
Boxing/unboxing to parse a primitive edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmBatch.setParameter(String) |
PERFORMANCE |
DM_BOXED_PRIMITIVE_FOR_PARSING |
57 |
High |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmBatch.getListAlarms() may expose internal representation by returning AlarmBatch.listAlarms |
MALICIOUS_CODE |
EI_EXPOSE_REP |
94 |
Medium |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmTreeTableDataModel
Bug |
Category |
Details |
Line |
Priority |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmTreeTableDataModel.columnNames should be both final and package protected |
MALICIOUS_CODE |
MS_FINAL_PKGPROTECT |
7 |
Medium |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmTreeTableDataModel.columnTypes should be both final and package protected |
MALICIOUS_CODE |
MS_FINAL_PKGPROTECT |
9 |
Medium |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmTreeTableDataNode
Bug |
Category |
Details |
Line |
Priority |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmTreeTableDataNode.getChildren() may expose internal representation by returning AlarmTreeTableDataNode.children |
MALICIOUS_CODE |
EI_EXPOSE_REP |
49 |
Medium |
new edu.jiangxin.apktoolbox.android.dumpsys.alarm.AlarmTreeTableDataNode(String, String, String, String, String, List) may expose internal representation by storing an externally mutable object into AlarmTreeTableDataNode.children |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
21 |
Medium |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.DumpsysAlarmPanel
Bug |
Category |
Details |
Line |
Priority |
Boxing/unboxing to parse a primitive edu.jiangxin.apktoolbox.android.dumpsys.alarm.DumpsysAlarmPanel.updateUIFromString() |
PERFORMANCE |
DM_BOXED_PRIMITIVE_FOR_PARSING |
263 |
High |
Boxing/unboxing to parse a primitive edu.jiangxin.apktoolbox.android.dumpsys.alarm.DumpsysAlarmPanel.updateUIFromString() |
PERFORMANCE |
DM_BOXED_PRIMITIVE_FOR_PARSING |
249 |
High |
Return value of String.replace(CharSequence, CharSequence) ignored in edu.jiangxin.apktoolbox.android.dumpsys.alarm.DumpsysAlarmPanel.updateUIFromString() |
CORRECTNESS |
RV_RETURN_VALUE_IGNORED |
277 |
High |
edu.jiangxin.apktoolbox.android.dumpsys.alarm.SharedData
Bug |
Category |
Details |
Line |
Priority |
Public static edu.jiangxin.apktoolbox.android.dumpsys.alarm.SharedData.getInstance() may expose internal representation by returning SharedData.instance |
MALICIOUS_CODE |
MS_EXPOSE_REP |
17 |
Medium |
Instance-getter method of class using singleton design pattern (edu.jiangxin.apktoolbox.android.dumpsys.alarm.SharedData) is not synchronized. |
CORRECTNESS |
SING_SINGLETON_GETTER_NOT_SYNCHRONIZED |
14-17 |
Medium |
edu.jiangxin.apktoolbox.android.monkey.MonkeyPanel$MyDialog
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class edu.jiangxin.apktoolbox.android.monkey.MonkeyPanel$MyDialog at new edu.jiangxin.apktoolbox.android.monkey.MonkeyPanel$MyDialog(String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
761 |
Medium |
edu.jiangxin.apktoolbox.android.screenshot.ScreenShotPanel$GetExistButtonActionListener
Bug |
Category |
Details |
Line |
Priority |
Should edu.jiangxin.apktoolbox.android.screenshot.ScreenShotPanel$GetExistButtonActionListener be a _static_ inner class? |
PERFORMANCE |
SIC_INNER_SHOULD_BE_STATIC |
131-135 |
Medium |
edu.jiangxin.apktoolbox.convert.color.ColorConvertPanel$ColorDefaultTableModel
Bug |
Category |
Details |
Line |
Priority |
Should edu.jiangxin.apktoolbox.convert.color.ColorConvertPanel$ColorDefaultTableModel be a _static_ inner class? |
PERFORMANCE |
SIC_INNER_SHOULD_BE_STATIC |
365-371 |
Medium |
edu.jiangxin.apktoolbox.convert.color.ColorPickerPanel
Bug |
Category |
Details |
Line |
Priority |
Boxing/unboxing to parse a primitive edu.jiangxin.apktoolbox.convert.color.ColorPickerPanel.lambda$initThirdColumn$2(JComboBox, ActionEvent) |
PERFORMANCE |
DM_BOXED_PRIMITIVE_FOR_PARSING |
188 |
High |
java.awt.image.BufferedImage stored into non-transient field ColorPickerPanel.areaImage |
BAD_PRACTICE |
SE_BAD_FIELD_STORE |
336 |
Medium |
edu.jiangxin.apktoolbox.convert.color.colortable.OrdinaryColorTable
Bug |
Category |
Details |
Line |
Priority |
edu.jiangxin.apktoolbox.convert.color.colortable.OrdinaryColorTable.COLUMN_NAMES should be package protected |
MALICIOUS_CODE |
MS_PKGPROTECT |
30 |
Medium |
edu.jiangxin.apktoolbox.convert.color.colortable.OrdinaryColorTable.TABLE_ROW_DATA should be package protected |
MALICIOUS_CODE |
MS_PKGPROTECT |
34 |
Medium |
edu.jiangxin.apktoolbox.convert.color.colortable.RalColorTable
Bug |
Category |
Details |
Line |
Priority |
edu.jiangxin.apktoolbox.convert.color.colortable.RalColorTable.COLUMN_NAMES should be package protected |
MALICIOUS_CODE |
MS_PKGPROTECT |
30 |
Medium |
edu.jiangxin.apktoolbox.convert.color.colortable.RalColorTable.TABLE_ROW_DATA should be package protected |
MALICIOUS_CODE |
MS_PKGPROTECT |
34 |
Medium |
edu.jiangxin.apktoolbox.convert.protobuf.supervised.ProtoToJson
Bug |
Category |
Details |
Line |
Priority |
edu.jiangxin.apktoolbox.convert.protobuf.supervised.ProtoToJson.getCache() may expose internal representation by returning ProtoToJson.cache |
MALICIOUS_CODE |
EI_EXPOSE_REP |
117 |
Medium |
edu.jiangxin.apktoolbox.convert.protobuf.unsupervised.BufferReader
Bug |
Category |
Details |
Line |
Priority |
new edu.jiangxin.apktoolbox.convert.protobuf.unsupervised.BufferReader(byte[]) may expose internal representation by storing an externally mutable object into BufferReader.buffer |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
16 |
Medium |
edu.jiangxin.apktoolbox.convert.protobuf.unsupervised.DecoderResult
Bug |
Category |
Details |
Line |
Priority |
edu.jiangxin.apktoolbox.convert.protobuf.unsupervised.DecoderResult.getByteRange() may expose internal representation by returning DecoderResult.byteRange |
MALICIOUS_CODE |
EI_EXPOSE_REP |
33 |
Medium |
edu.jiangxin.apktoolbox.convert.protobuf.unsupervised.DecoderResult.getSubResults() may expose internal representation by returning DecoderResult.subResults |
MALICIOUS_CODE |
EI_EXPOSE_REP |
65 |
Medium |
edu.jiangxin.apktoolbox.convert.protobuf.unsupervised.DecoderResult.setByteRange(List) may expose internal representation by storing an externally mutable object into DecoderResult.byteRange |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
37 |
Medium |
edu.jiangxin.apktoolbox.convert.protobuf.unsupervised.DecoderResult.setSubResults(List) may expose internal representation by storing an externally mutable object into DecoderResult.subResults |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
69 |
Medium |
edu.jiangxin.apktoolbox.file.batchrename.BatchRenamePanel
Bug |
Category |
Details |
Line |
Priority |
Switch statement found in edu.jiangxin.apktoolbox.file.batchrename.BatchRenamePanel.getNewFileNameWhen4Selected(File) where default case is missing |
STYLE |
SF_SWITCH_NO_DEFAULT |
432-440 |
Medium |
edu.jiangxin.apktoolbox.file.checksum.panel.FileChecksumPanel
Bug |
Category |
Details |
Line |
Priority |
Redundant nullcheck of file, which is known to be non-null in edu.jiangxin.apktoolbox.file.checksum.panel.FileChecksumPanel.lambda$createOperationPanel$1(ActionEvent) |
STYLE |
RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE |
166 |
Medium |
edu.jiangxin.apktoolbox.file.checksum.panel.StringHashPanel
Bug |
Category |
Details |
Line |
Priority |
Found reliance on default encoding in edu.jiangxin.apktoolbox.file.checksum.panel.StringHashPanel.calculate(CalculateType, String): String.getBytes() |
I18N |
DM_DEFAULT_ENCODING |
264 |
High |
edu.jiangxin.apktoolbox.file.core.FileFilterWrapper
Bug |
Category |
Details |
Line |
Priority |
Hard coded reference to an absolute pathname in edu.jiangxin.apktoolbox.file.core.FileFilterWrapper.main(String[]) |
STYLE |
DMI_HARDCODED_ABSOLUTE_FILENAME |
49 |
Medium |
edu.jiangxin.apktoolbox.file.password.recovery.RecoveryPanel
Bug |
Category |
Details |
Line |
Priority |
Class edu.jiangxin.apktoolbox.file.password.recovery.RecoveryPanel defines non-transient non-serializable instance field currentFileChecker |
BAD_PRACTICE |
SE_BAD_FIELD |
Not available |
Medium |
edu.jiangxin.apktoolbox.file.password.recovery.category.bruteforce.BruteForceFuture
Bug |
Category |
Details |
Line |
Priority |
edu.jiangxin.apktoolbox.file.password.recovery.category.bruteforce.BruteForceFuture.get() does not release lock on all exception paths |
MT_CORRECTNESS |
UL_UNRELEASED_LOCK_EXCEPTION_PATH |
54 |
Medium |
edu.jiangxin.apktoolbox.file.password.recovery.category.bruteforce.BruteForceFuture.set(String) does not release lock on all exception paths |
MT_CORRECTNESS |
UL_UNRELEASED_LOCK_EXCEPTION_PATH |
30 |
Medium |
Condition.await() not in loop in edu.jiangxin.apktoolbox.file.password.recovery.category.bruteforce.BruteForceFuture.get() |
MT_CORRECTNESS |
WA_AWAIT_NOT_IN_LOOP |
57 |
Medium |
edu.jiangxin.apktoolbox.file.password.recovery.category.bruteforce.BruteForceRunnable
Bug |
Category |
Details |
Line |
Priority |
new edu.jiangxin.apktoolbox.file.password.recovery.category.bruteforce.BruteForceRunnable(int, BruteForceTaskParam, BruteForceFuture, RecoveryPanel) may expose internal representation by storing an externally mutable object into BruteForceRunnable.bruteForceFuture |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
20 |
Medium |
new edu.jiangxin.apktoolbox.file.password.recovery.category.bruteforce.BruteForceRunnable(int, BruteForceTaskParam, BruteForceFuture, RecoveryPanel) may expose internal representation by storing an externally mutable object into BruteForceRunnable.panel |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
21 |
Medium |
edu.jiangxin.apktoolbox.file.password.recovery.category.dictionary.multithread.BigFileReader
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class edu.jiangxin.apktoolbox.file.password.recovery.category.dictionary.multithread.BigFileReader at new edu.jiangxin.apktoolbox.file.password.recovery.category.dictionary.multithread.BigFileReader(CompleteCallback, RecoveryPanel) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
45 |
Medium |
Found reliance on default encoding in edu.jiangxin.apktoolbox.file.password.recovery.category.dictionary.multithread.BigFileReader.handle(byte[]): new String(byte[]) |
I18N |
DM_DEFAULT_ENCODING |
130 |
High |
new edu.jiangxin.apktoolbox.file.password.recovery.category.dictionary.multithread.BigFileReader(CompleteCallback, RecoveryPanel) may expose internal representation by storing an externally mutable object into BigFileReader.panel |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
42 |
Medium |
edu.jiangxin.apktoolbox.file.password.recovery.category.dictionary.multithread.DictionaryMultiThreadProxy
Bug |
Category |
Details |
Line |
Priority |
Unconditional wait in edu.jiangxin.apktoolbox.file.password.recovery.category.dictionary.multithread.DictionaryMultiThreadProxy.startAndGet(RecoveryPanel) |
MT_CORRECTNESS |
UW_UNCOND_WAIT |
43 |
Medium |
Wait not in loop in edu.jiangxin.apktoolbox.file.password.recovery.category.dictionary.multithread.DictionaryMultiThreadProxy.startAndGet(RecoveryPanel) |
MT_CORRECTNESS |
WA_NOT_IN_LOOP |
43 |
Medium |
edu.jiangxin.apktoolbox.file.zhconvert.ZHConverterUtils
Bug |
Category |
Details |
Line |
Priority |
Found reliance on default encoding in edu.jiangxin.apktoolbox.file.zhconvert.ZHConverterUtils.initProperties(String, Properties): new java.io.InputStreamReader(InputStream) |
I18N |
DM_DEFAULT_ENCODING |
37 |
High |
edu.jiangxin.apktoolbox.file.zhconvert.ZHConverterUtils.getCharMap() may expose internal representation by returning ZHConverterUtils.charMap |
MALICIOUS_CODE |
EI_EXPOSE_REP |
105 |
Medium |
edu.jiangxin.apktoolbox.file.zhconvert.ZhConvertPanel$ConvertBtnActionListener
edu.jiangxin.apktoolbox.help.CheckUpdateActionListener
Bug |
Category |
Details |
Line |
Priority |
new edu.jiangxin.apktoolbox.help.CheckUpdateActionListener(Component) may expose internal representation by storing an externally mutable object into CheckUpdateActionListener.parent |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
48 |
Medium |
edu.jiangxin.apktoolbox.main.MainFrame$ChangeMenuToPanelListener
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class edu.jiangxin.apktoolbox.main.MainFrame$ChangeMenuToPanelListener at new edu.jiangxin.apktoolbox.main.MainFrame$ChangeMenuToPanelListener(MainFrame, Class, String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
339 |
Medium |
edu.jiangxin.apktoolbox.swing.extend.autocomplete.AutoCompleter
Bug |
Category |
Details |
Line |
Priority |
Exception thrown in class edu.jiangxin.apktoolbox.swing.extend.autocomplete.AutoCompleter at new edu.jiangxin.apktoolbox.swing.extend.autocomplete.AutoCompleter(JComboBox) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. |
BAD_PRACTICE |
CT_CONSTRUCTOR_THROW |
19 |
Medium |
edu.jiangxin.apktoolbox.swing.extend.filepanel.FilePanel
Bug |
Category |
Details |
Line |
Priority |
edu.jiangxin.apktoolbox.swing.extend.filepanel.FilePanel.setDescriptionAndFileExtensions(String, String[]) may expose internal representation by storing an externally mutable object into FilePanel.extensions |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
61 |
Medium |
edu.jiangxin.apktoolbox.swing.extend.listener.SelectDirectoryListener
Bug |
Category |
Details |
Line |
Priority |
new edu.jiangxin.apktoolbox.swing.extend.listener.SelectDirectoryListener(String, JTextField) may expose internal representation by storing an externally mutable object into SelectDirectoryListener.pathTextField |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
17 |
Medium |
edu.jiangxin.apktoolbox.swing.extend.listener.SelectFileListener
Bug |
Category |
Details |
Line |
Priority |
new edu.jiangxin.apktoolbox.swing.extend.listener.SelectFileListener(String, JTextField) may expose internal representation by storing an externally mutable object into SelectFileListener.pathTextField |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
21 |
Medium |
new edu.jiangxin.apktoolbox.swing.extend.listener.SelectFileListener(String, JTextField, FileFilter) may expose internal representation by storing an externally mutable object into SelectFileListener.pathTextField |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
27 |
Medium |
edu.jiangxin.apktoolbox.swing.treetable.MyTreeTableCellEditor
Bug |
Category |
Details |
Line |
Priority |
edu.jiangxin.apktoolbox.swing.treetable.MyTreeTableCellEditor.getTableCellEditorComponent(JTable, Object, boolean, int, int) may expose internal representation by returning MyTreeTableCellEditor.tree |
MALICIOUS_CODE |
EI_EXPOSE_REP |
23 |
Medium |
new edu.jiangxin.apktoolbox.swing.treetable.MyTreeTableCellEditor(JTree, JTable) may expose internal representation by storing an externally mutable object into MyTreeTableCellEditor.table |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
19 |
Medium |
new edu.jiangxin.apktoolbox.swing.treetable.MyTreeTableCellEditor(JTree, JTable) may expose internal representation by storing an externally mutable object into MyTreeTableCellEditor.tree |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
18 |
Medium |
edu.jiangxin.apktoolbox.swing.treetable.MyTreeTableCellRenderer
Bug |
Category |
Details |
Line |
Priority |
new edu.jiangxin.apktoolbox.swing.treetable.MyTreeTableCellRenderer(MyTreeTable, TreeModel) may expose internal representation by storing an externally mutable object into MyTreeTableCellRenderer.treeTable |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
20 |
Medium |
edu.jiangxin.apktoolbox.swing.treetable.MyTreeTableModelAdapter
Bug |
Category |
Details |
Line |
Priority |
new edu.jiangxin.apktoolbox.swing.treetable.MyTreeTableModelAdapter(MyAbstractTreeTableModel, JTree) may expose internal representation by storing an externally mutable object into MyTreeTableModelAdapter.tree |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
17 |
Medium |
new edu.jiangxin.apktoolbox.swing.treetable.MyTreeTableModelAdapter(MyAbstractTreeTableModel, JTree) may expose internal representation by storing an externally mutable object into MyTreeTableModelAdapter.treeTableModel |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
18 |
Medium |
edu.jiangxin.apktoolbox.utils.Utils
Bug |
Category |
Details |
Line |
Priority |
Found reliance on default encoding in edu.jiangxin.apktoolbox.utils.Utils.getFileLineCount(File): new java.io.FileReader(File) |
I18N |
DM_DEFAULT_ENCODING |
217 |
High |