FindBugs Bug Detector Report
The following document contains the results of FindBugs
FindBugs Version is 3.0.1
Threshold is medium
Effort is
Summary
| Classes |
Bugs |
Errors |
Missing Classes |
| 138 |
31 |
0 |
0 |
jgloss.dictionary.BinarySearchIndexBuilder
| Bug |
Category |
Details |
Line |
Priority |
| jgloss.dictionary.BinarySearchIndexBuilder.random isn't final but should be |
MALICIOUS_CODE |
MS_SHOULD_BE_FINAL |
51 |
High |
jgloss.dictionary.Indexable$CharData
jgloss.dictionary.KanjiDic
| Bug |
Category |
Details |
Line |
Priority |
| new jgloss.dictionary.KanjiDic(String) may fail to close stream |
BAD_PRACTICE |
OS_OPEN_STREAM |
398 |
Medium |
jgloss.dictionary.KanjiDic$Entry
| Bug |
Category |
Details |
Line |
Priority |
| jgloss.dictionary.KanjiDic$Entry.getNanoriReadings() may expose internal representation by returning KanjiDic$Entry.nanoriReadings |
MALICIOUS_CODE |
EI_EXPOSE_REP |
357 |
Medium |
| jgloss.dictionary.KanjiDic$Entry.getReadings() may expose internal representation by returning KanjiDic$Entry.readings |
MALICIOUS_CODE |
EI_EXPOSE_REP |
352 |
Medium |
| jgloss.dictionary.KanjiDic$Entry.getTranslations() may expose internal representation by returning KanjiDic$Entry.translations |
MALICIOUS_CODE |
EI_EXPOSE_REP |
367 |
Medium |
| Switch statement found in new jgloss.dictionary.KanjiDic$Entry(KanjiDic, String, boolean) where default case is missing |
STYLE |
SF_SWITCH_NO_DEFAULT |
262 |
Medium |
| Should jgloss.dictionary.KanjiDic$Entry be a _static_ inner class? |
PERFORMANCE |
SIC_INNER_SHOULD_BE_STATIC |
218 |
Medium |
jgloss.dictionary.MultiWordEntry
| Bug |
Category |
Details |
Line |
Priority |
| Invocation of toString on MultiWordEntry.wordsA in jgloss.dictionary.MultiWordEntry.toString() |
CORRECTNESS |
DMI_INVOKING_TOSTRING_ON_ARRAY |
111 |
High |
| new jgloss.dictionary.MultiWordEntry(int, String[], String[], List, AttributeSet, AttributeSet, AttributeSet[], AttributeSet, AttributeSet[], AttributeSet, List, Dictionary) may expose internal representation by storing an externally mutable object into MultiWordEntry.readings |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
46 |
Medium |
| new jgloss.dictionary.MultiWordEntry(int, String[], String[], List, AttributeSet, AttributeSet, AttributeSet[], AttributeSet, AttributeSet[], AttributeSet, List, Dictionary) may expose internal representation by storing an externally mutable object into MultiWordEntry.words |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
44 |
Medium |
jgloss.dictionary.attribute.Attributes
| Bug |
Category |
Details |
Line |
Priority |
| new jgloss.dictionary.attribute.Attributes(String, String, boolean, Class, AttributeValue, DictionaryEntry$AttributeGroup[]) may expose internal representation by storing an externally mutable object into Attributes.groups |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
173 |
Medium |
jgloss.dictionary.attribute.IDAttributeValueFactory
| Bug |
Category |
Details |
Line |
Priority |
| jgloss.dictionary.attribute.IDAttributeValueFactory.getValueFor(String) invokes inefficient new String(String) constructor |
PERFORMANCE |
DM_STRING_CTOR |
42 |
Medium |
jgloss.dictionary.attribute.PriorityComparator
| Bug |
Category |
Details |
Line |
Priority |
| jgloss.dictionary.attribute.PriorityComparator implements Comparator but not Serializable |
BAD_PRACTICE |
SE_COMPARATOR_SHOULD_BE_SERIALIZABLE |
34 |
Medium |
jgloss.dictionary.attribute.ReferenceAttributeFormatter
| Bug |
Category |
Details |
Line |
Priority |
| Unread public/protected field: jgloss.dictionary.attribute.ReferenceAttributeFormatter.itemBuffer |
STYLE |
URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD |
30 |
Medium |
jgloss.dictionary.filebased.EDictEntryParser
| Bug |
Category |
Details |
Line |
Priority |
| Found reliance on default encoding in jgloss.dictionary.filebased.EDictEntryParser.initMapper(): new java.io.InputStreamReader(InputStream) |
I18N |
DM_DEFAULT_ENCODING |
111 |
High |
jgloss.dictionary.filebased.FileBasedDictionary
| Bug |
Category |
Details |
Line |
Priority |
| Exceptional return value of java.io.File.delete() ignored in jgloss.dictionary.filebased.FileBasedDictionary.loadIndex() |
BAD_PRACTICE |
RV_RETURN_VALUE_IGNORED_BAD_PRACTICE |
273 |
Medium |
jgloss.dictionary.filebased.FileBasedDictionary$ExpressionSearchIterator
| Bug |
Category |
Details |
Line |
Priority |
| instanceof will always return false in jgloss.dictionary.filebased.FileBasedDictionary$ExpressionSearchIterator.next(), since a jgloss.dictionary.SearchException can't be a jgloss.dictionary.MalformedEntryException |
CORRECTNESS |
BC_IMPOSSIBLE_INSTANCEOF |
785 |
Medium |
jgloss.parser.Chasen
| Bug |
Category |
Details |
Line |
Priority |
| Found reliance on default encoding in jgloss.parser.Chasen.isChasenExecutable(String): new java.io.InputStreamReader(InputStream) |
I18N |
DM_DEFAULT_ENCODING |
297 |
High |
| jgloss.parser.Chasen.getChasenPlatformEncoding(String) ignores result of java.io.InputStreamReader.read(char[]) |
BAD_PRACTICE |
RR_NOT_CHECKED |
477 |
Medium |
jgloss.parser.ChasenParser
| Bug |
Category |
Details |
Line |
Priority |
| Unwritten field: jgloss.parser.ChasenParser.lookupCache |
CORRECTNESS |
UWF_UNWRITTEN_FIELD |
210 |
Medium |
jgloss.parser.Conjugation
| Bug |
Category |
Details |
Line |
Priority |
| jgloss.parser.Conjugation.loadConjugations() may fail to close stream |
BAD_PRACTICE |
OS_OPEN_STREAM |
241 |
Medium |
jgloss.parser.KanjiParser
| Bug |
Category |
Details |
Line |
Priority |
| new jgloss.parser.KanjiParser(Dictionary[], Set, boolean, boolean, boolean) may expose internal representation by storing an externally mutable object into KanjiParser.dictionaries |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
113 |
Medium |
jgloss.parser.TextAnnotationCompleter
| Bug |
Category |
Details |
Line |
Priority |
| new jgloss.parser.TextAnnotationCompleter(Dictionary[]) may expose internal representation by storing an externally mutable object into TextAnnotationCompleter.dictionaries |
MALICIOUS_CODE |
EI_EXPOSE_REP2 |
48 |
Medium |
jgloss.util.AbstractEscaper
| Bug |
Category |
Details |
Line |
Priority |
| jgloss.util.AbstractEscaper.escapeChar(char) invokes inefficient new Character(char) constructor; use Character.valueOf(char) instead |
PERFORMANCE |
DM_NUMBER_CTOR |
40 |
Medium |
jgloss.util.CharacterEncodingDetector
| Bug |
Category |
Details |
Line |
Priority |
| jgloss.util.CharacterEncodingDetector.<static initializer for CharacterEncodingDetector>() might ignore java.io.UnsupportedEncodingException |
BAD_PRACTICE |
DE_MIGHT_IGNORE |
120 |
Medium |
| Found reliance on default encoding in jgloss.util.CharacterEncodingDetector.getReader(InputStream, String, int): new java.io.InputStreamReader(InputStream) |
I18N |
DM_DEFAULT_ENCODING |
176 |
High |
| Switch statement found in jgloss.util.CharacterEncodingDetector.guessEncoding(byte[]) where default case is missing |
STYLE |
SF_SWITCH_NO_DEFAULT |
314 |
Medium |
| Useless condition: it's known that c != 174 (0xae) at this point |
STYLE |
UC_USELESS_CONDITION |
320 |
Medium |
jgloss.util.LaTeXEscaper
| Bug |
Category |
Details |
Line |
Priority |
| jgloss.util.LaTeXEscaper.initEscapeMap() invokes inefficient new Character(char) constructor; use Character.valueOf(char) instead |
PERFORMANCE |
DM_NUMBER_CTOR |
40 |
Medium |