SpotBugs Bug Detector Report

The following document contains the results of SpotBugs[1]

SpotBugs Version is 4.9.2

Threshold is medium

Effort is default

Summary

Classes Bugs Errors Missing Classes
125 61 0 0

Files

Class Bugs
org.metricshub.jawk.Awk 1
org.metricshub.jawk.Main 2
org.metricshub.jawk.backend.AVM 9
org.metricshub.jawk.ext.AbstractExtension 3
org.metricshub.jawk.ext.CoreExtension 4
org.metricshub.jawk.ext.StdinExtension$1 1
org.metricshub.jawk.ext.StdinExtension$2 3
org.metricshub.jawk.frontend.AwkParser 8
org.metricshub.jawk.intermediate.AwkTuples 3
org.metricshub.jawk.jrt.AssocArray 1
org.metricshub.jawk.jrt.BlockManager 1
org.metricshub.jawk.jrt.BlockManager$BlockThread 1
org.metricshub.jawk.jrt.BlockObject 1
org.metricshub.jawk.jrt.DataPump 2
org.metricshub.jawk.jrt.JRT 11
org.metricshub.jawk.util.AwkSettings 8
org.metricshub.jawk.util.DestDirClassLoader 1
org.metricshub.jawk.util.ScriptFileSource 1

org.metricshub.jawk.Awk

Bug Category Details Line Priority
Found reliance on default encoding in org.metricshub.jawk.Awk.invoke(AwkSettings): new java.io.PrintStream(OutputStream) I18N DM_DEFAULT_ENCODING[2] 151[3] High

org.metricshub.jawk.Main

Bug Category Details Line Priority
Exception thrown in class org.metricshub.jawk.Main at new org.metricshub.jawk.Main(String[], InputStream, PrintStream, PrintStream) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW[4] 67[5] Medium
Format string should use %n rather than \n in org.metricshub.jawk.Main.main(String[]) BAD_PRACTICE VA_FORMAT_STRING_USES_NEWLINE[6] 92[7] Medium

org.metricshub.jawk.backend.AVM

Bug Category Details Line Priority
Exception thrown in class org.metricshub.jawk.backend.AVM at new org.metricshub.jawk.backend.AVM(AwkSettings, Map) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW[4] 158[8] Medium
Random object created and used only once in org.metricshub.jawk.backend.AVM.interpret(AwkTuples) BAD_PRACTICE DMI_RANDOM_USED_ONLY_ONCE[9] 946[10] High
Found reliance on default encoding in org.metricshub.jawk.backend.AVM.interpret(AwkTuples): new java.io.PrintStream(OutputStream, boolean) I18N DM_DEFAULT_ENCODING[2] 334[11] High
Found reliance on default encoding in org.metricshub.jawk.backend.AVM.interpret(AwkTuples): new String(byte[]) I18N DM_DEFAULT_ENCODING[2] 1604[12] High
new org.metricshub.jawk.backend.AVM(AwkSettings, Map) may expose internal representation by storing an externally mutable object into AVM.extensions MALICIOUS_CODE EI_EXPOSE_REP2[13] 168[14] Medium
new org.metricshub.jawk.backend.AVM(AwkSettings, Map) may expose internal representation by storing an externally mutable object into AVM.settings MALICIOUS_CODE EI_EXPOSE_REP2[13] 160[15] Medium
Test for floating point equality in org.metricshub.jawk.backend.AVM.interpret(AwkTuples) STYLE FE_FLOATING_POINT_EQUALITY[16] 641[17] High
org.metricshub.jawk.backend.AVM.avmDump(AssocArray[]) makes inefficient use of keySet iterator instead of entrySet iterator PERFORMANCE WMI_WRONG_MAP_ITERATOR[18] 2051[19] Medium
org.metricshub.jawk.backend.AVM.interpret(AwkTuples) makes inefficient use of keySet iterator instead of entrySet iterator PERFORMANCE WMI_WRONG_MAP_ITERATOR[18] 1748[20] Medium

org.metricshub.jawk.ext.AbstractExtension

Bug Category Details Line Priority
org.metricshub.jawk.ext.AbstractExtension.init(VariableManager, JRT, AwkSettings) may expose internal representation by storing an externally mutable object into AbstractExtension.jrt MALICIOUS_CODE EI_EXPOSE_REP2[13] 49[21] Medium
org.metricshub.jawk.ext.AbstractExtension.init(VariableManager, JRT, AwkSettings) may expose internal representation by storing an externally mutable object into AbstractExtension.settings MALICIOUS_CODE EI_EXPOSE_REP2[13] 50[22] Medium
org.metricshub.jawk.ext.AbstractExtension.init(VariableManager, JRT, AwkSettings) may expose internal representation by storing an externally mutable object into AbstractExtension.vm MALICIOUS_CODE EI_EXPOSE_REP2[13] 48[23] Medium

org.metricshub.jawk.ext.CoreExtension

Bug Category Details Line Priority
Shared primitive variable "waitInt" in one thread may not yield the value of the most recent write from another thread MT_CORRECTNESS AT_STALE_THREAD_WRITE_OF_PRIMITIVE[24] 745[25] Medium
instanceof will always return true for all non-null values in org.metricshub.jawk.ext.CoreExtension.newReference(Object), since all org.metricshub.jawk.jrt.AssocArray are instances of org.metricshub.jawk.jrt.AssocArray STYLE BC_VACUOUS_INSTANCEOF[26] 422[27] Medium
Check for oddness that won't work for negative numbers in org.metricshub.jawk.ext.CoreExtension.getAssocArrayParameterPositions(String, int) STYLE IM_BAD_CHECK_FOR_ODD[28] 286[29] Medium
org.metricshub.jawk.ext.CoreExtension.inref(Object, VariableManager) makes inefficient use of keySet iterator instead of entrySet iterator PERFORMANCE WMI_WRONG_MAP_ITERATOR[18] 539[30] Medium

org.metricshub.jawk.ext.StdinExtension$1

Bug Category Details Line Priority
Wait not in loop in org.metricshub.jawk.ext.StdinExtension$1.block() MT_CORRECTNESS WA_NOT_IN_LOOP[31] 122[32] Medium

org.metricshub.jawk.ext.StdinExtension$2

Bug Category Details Line Priority
Found reliance on default encoding in org.metricshub.jawk.ext.StdinExtension$2.run(): new java.io.InputStreamReader(InputStream) I18N DM_DEFAULT_ENCODING[2] 140[33] High
org.metricshub.jawk.ext.StdinExtension$2.run() invokes System.exit(...), which shuts down the entire virtual machine BAD_PRACTICE DM_EXIT[34] 159[35] Medium
org.metricshub.jawk.ext.StdinExtension$2.run() may fail to close stream BAD_PRACTICE OS_OPEN_STREAM[36] 139[37] Medium

org.metricshub.jawk.frontend.AwkParser

Bug Category Details Line Priority
Exception thrown in class org.metricshub.jawk.frontend.AwkParser at new org.metricshub.jawk.frontend.AwkParser(boolean, boolean, Map) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. BAD_PRACTICE CT_CONSTRUCTOR_THROW[4] 289[38] Medium
new org.metricshub.jawk.frontend.AwkParser(boolean, boolean, Map) may expose internal representation by storing an externally mutable object into AwkParser.extensions MALICIOUS_CODE EI_EXPOSE_REP2[13] 310[39] Medium
org.metricshub.jawk.frontend.AwkParser.parse(List) may expose internal representation by storing an externally mutable object into AwkParser.scriptSources MALICIOUS_CODE EI_EXPOSE_REP2[13] 384[40] Medium
Load of known null value in org.metricshub.jawk.frontend.AwkParser.GETLINE_EXPRESSION(AwkParser$AST, boolean, boolean) STYLE NP_LOAD_OF_KNOWN_NULL_VALUE[41] 1952[42] Medium
Redundant nullcheck of expr1, which is known to be non-null in org.metricshub.jawk.frontend.AwkParser.FOR_STATEMENT() STYLE RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE[43] 1779[44] Medium
Redundant nullcheck of rule_or_function, which is known to be non-null in org.metricshub.jawk.frontend.AwkParser.RULE_LIST() STYLE RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE[43] 913[45] Medium
Write to static field org.metricshub.jawk.frontend.AwkParser.f_idx from instance method new org.metricshub.jawk.frontend.AwkParser(boolean, boolean, Map) STYLE ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD[46] 293[47] Medium
Write to static field org.metricshub.jawk.frontend.AwkParser.s_idx from instance method new org.metricshub.jawk.frontend.AwkParser(boolean, boolean, Map) STYLE ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD[46] 291[48] Medium

org.metricshub.jawk.intermediate.AwkTuples

Bug Category Details Line Priority
org.metricshub.jawk.intermediate.AwkTuples.getFunctionNameSet() may expose internal representation by returning AwkTuples.function_names MALICIOUS_CODE EI_EXPOSE_REP[49] 3152[50] Medium
org.metricshub.jawk.intermediate.AwkTuples.getGlobalVariableAarrayMap() may expose internal representation by returning AwkTuples.global_var_aarray_map MALICIOUS_CODE EI_EXPOSE_REP[49] 3142[51] Medium
org.metricshub.jawk.intermediate.AwkTuples.getGlobalVariableOffsetMap() may expose internal representation by returning AwkTuples.global_var_offset_map MALICIOUS_CODE EI_EXPOSE_REP[49] 3133[52] Medium

org.metricshub.jawk.jrt.AssocArray

Bug Category Details Line Priority
org.metricshub.jawk.jrt.AssocArray.mapString() makes inefficient use of keySet iterator instead of entrySet iterator PERFORMANCE WMI_WRONG_MAP_ITERATOR[18] 128[53] Medium

org.metricshub.jawk.jrt.BlockManager

Bug Category Details Line Priority
Wait not in loop in org.metricshub.jawk.jrt.BlockManager.block(BlockObject) MT_CORRECTNESS WA_NOT_IN_LOOP[31] 102[54] Medium

org.metricshub.jawk.jrt.BlockManager$BlockThread

Bug Category Details Line Priority
org.metricshub.jawk.jrt.BlockManager$BlockThread.run() invokes System.exit(...), which shuts down the entire virtual machine BAD_PRACTICE DM_EXIT[34] 144[55] Medium

org.metricshub.jawk.jrt.BlockObject

Bug Category Details Line Priority
org.metricshub.jawk.jrt.BlockObject.setNextBlockObject(BlockObject) may expose internal representation by storing an externally mutable object into BlockObject.nextBlockObject MALICIOUS_CODE EI_EXPOSE_REP2[13] 98[56] Medium

org.metricshub.jawk.jrt.DataPump

Bug Category Details Line Priority
org.metricshub.jawk.jrt.DataPump.run() might ignore java.io.IOException BAD_PRACTICE DE_MIGHT_IGNORE[57] 89[58] Medium
new org.metricshub.jawk.jrt.DataPump(InputStream, PrintStream) may expose internal representation by storing an externally mutable object into DataPump.os MALICIOUS_CODE EI_EXPOSE_REP2[13] 53[59] Medium

org.metricshub.jawk.jrt.JRT

Bug Category Details Line Priority
Found reliance on default encoding in org.metricshub.jawk.jrt.JRT.jrtConsumeCommandInput(String): new java.io.InputStreamReader(InputStream) I18N DM_DEFAULT_ENCODING[2] 1010[60] High
Found reliance on default encoding in org.metricshub.jawk.jrt.JRT.jrtConsumeFileInput(String): new java.io.FileReader(String) I18N DM_DEFAULT_ENCODING[2] 958[61] High
Found reliance on default encoding in org.metricshub.jawk.jrt.JRT.jrtConsumeInput(InputStream, boolean, Locale): new java.io.FileReader(String) I18N DM_DEFAULT_ENCODING[2] 648[62] High
Found reliance on default encoding in org.metricshub.jawk.jrt.JRT.jrtConsumeInput(InputStream, boolean, Locale): new java.io.InputStreamReader(InputStream) I18N DM_DEFAULT_ENCODING[2] 655[63] High
Found reliance on default encoding in org.metricshub.jawk.jrt.JRT.jrtGetPrintStream(String, boolean): new java.io.PrintStream(OutputStream, boolean) I18N DM_DEFAULT_ENCODING[2] 938[64] High
Found reliance on default encoding in org.metricshub.jawk.jrt.JRT.jrtSpawnForOutput(String): new java.io.PrintStream(OutputStream, boolean) I18N DM_DEFAULT_ENCODING[2] 1055[65] High
org.metricshub.jawk.jrt.JRT.getOutputFiles() may expose internal representation by returning JRT.outputFiles MALICIOUS_CODE EI_EXPOSE_REP[49] 923[66] Medium
org.metricshub.jawk.jrt.JRT.getPartitioningReader() may expose internal representation by returning JRT.partitioningReader MALICIOUS_CODE EI_EXPOSE_REP[49] 566[67] Medium
new org.metricshub.jawk.jrt.JRT(VariableManager) may expose internal representation by storing an externally mutable object into JRT.vm MALICIOUS_CODE EI_EXPOSE_REP2[13] 130[68] Medium
Test for floating point equality in org.metricshub.jawk.jrt.JRT.dec(Object) STYLE FE_FLOATING_POINT_EQUALITY[16] 461[69] High
Test for floating point equality in org.metricshub.jawk.jrt.JRT.inc(Object) STYLE FE_FLOATING_POINT_EQUALITY[16] 429[70] High

org.metricshub.jawk.util.AwkSettings

Bug Category Details Line Priority
org.metricshub.jawk.util.AwkSettings.getNameValueOrFileNames() may expose internal representation by returning AwkSettings.nameValueOrFileNames MALICIOUS_CODE EI_EXPOSE_REP[49] 350[71] Medium
org.metricshub.jawk.util.AwkSettings.getOutputStream() may expose internal representation by returning AwkSettings.outputStream MALICIOUS_CODE EI_EXPOSE_REP[49] 567[72] Medium
org.metricshub.jawk.util.AwkSettings.getScriptSources() may expose internal representation by returning AwkSettings.scriptSources MALICIOUS_CODE EI_EXPOSE_REP[49] 286[73] Medium
org.metricshub.jawk.util.AwkSettings.getVariables() may expose internal representation by returning AwkSettings.variables MALICIOUS_CODE EI_EXPOSE_REP[49] 327[74] Medium
org.metricshub.jawk.util.AwkSettings.setNameValueOrFileNames(List) may expose internal representation by storing an externally mutable object into AwkSettings.nameValueOrFileNames MALICIOUS_CODE EI_EXPOSE_REP2[13] 361[75] Medium
org.metricshub.jawk.util.AwkSettings.setOutputStream(PrintStream) may expose internal representation by storing an externally mutable object into AwkSettings.outputStream MALICIOUS_CODE EI_EXPOSE_REP2[13] 576[76] Medium
org.metricshub.jawk.util.AwkSettings.setScriptSources(List) may expose internal representation by storing an externally mutable object into AwkSettings.scriptSources MALICIOUS_CODE EI_EXPOSE_REP2[13] 374[77] Medium
org.metricshub.jawk.util.AwkSettings.setVariables(Map) may expose internal representation by storing an externally mutable object into AwkSettings.variables MALICIOUS_CODE EI_EXPOSE_REP2[13] 339[78] Medium

org.metricshub.jawk.util.DestDirClassLoader

Bug Category Details Line Priority
org.metricshub.jawk.util.DestDirClassLoader.loadClassData(String) may fail to clean up java.io.InputStream on checked exception EXPERIMENTAL OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE[79] 71[80] Medium

org.metricshub.jawk.util.ScriptFileSource

Bug Category Details Line Priority
Found reliance on default encoding in org.metricshub.jawk.util.ScriptFileSource.getReader(): new java.io.FileReader(String) I18N DM_DEFAULT_ENCODING[2] 73[81] High
No results.