Jawk 3.3.05
-
Home
- Project Documentation Project Reports 10
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
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 |
Search Results for {{siteSearch | truncate:'50'}}
{{resultArray.length}}
No results.