diff --git a/before/.gitignore b/before/.gitignore index c30f980..c9b169e 100644 --- a/before/.gitignore +++ b/before/.gitignore @@ -18,3 +18,11 @@ site-content .project .externalToolBuilders .checkstyle + +# Maven repository cache for docker container +.m2/ + +# infer tmp folder +infer-out/tmp/ +infer-out/bugs.txt +infer-out/logs diff --git a/before/docker-infer.sh b/before/docker-infer.sh new file mode 100755 index 0000000..cf48148 --- /dev/null +++ b/before/docker-infer.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +mkdir -pv "${SCRIPT_DIR}/.m2" + +# Cache .m2 directory in local bind mount +# I am on an ICE right now. German Wi-Fi is the wurst +docker run --rm -it \ + -v "${SCRIPT_DIR}:/tools/home" \ + -v "${SCRIPT_DIR}/.m2:/root/.m2" \ + bugcounting/satools:y23 \ + /tools/home/entrypoint.sh + diff --git a/before/docker-start.sh b/before/docker-start.sh new file mode 100755 index 0000000..20d4721 --- /dev/null +++ b/before/docker-start.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +mkdir -pv "${SCRIPT_DIR}/.m2" + +# Cache .m2 directory in local bind mount +# I am on an ICE right now. German Wi-Fi is the wurst +docker run --rm -it \ + -v "${SCRIPT_DIR}:/tools/home" \ + -v "${SCRIPT_DIR}/.m2:/root/.m2" \ + bugcounting/satools:y23 + diff --git a/before/entrypoint.sh b/before/entrypoint.sh new file mode 100755 index 0000000..2d20dcb --- /dev/null +++ b/before/entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -e + +cd /tools/home +/tools/infer/bin/infer -- mvn compile -Drat.skip=true diff --git a/before/infer-out/.global.tenv b/before/infer-out/.global.tenv new file mode 100644 index 0000000..f2eb2de Binary files /dev/null and b/before/infer-out/.global.tenv differ diff --git a/before/infer-out/.infer_runstate.json b/before/infer-out/.infer_runstate.json new file mode 100644 index 0000000..5dc8b3a --- /dev/null +++ b/before/infer-out/.infer_runstate.json @@ -0,0 +1 @@ +{"run_sequence":[{"date":"2023-04-11 09:38:59.468025+02:00","command":"run","infer_version":{"major":1,"minor":1,"patch":0,"commit":"f9b6f2b"}}],"results_dir_format":"db_filename: infer-out/results.db\ndb_schema: \n CREATE TABLE IF NOT EXISTS procedures\n ( proc_uid TEXT PRIMARY KEY NOT NULL\n , proc_name BLOB NOT NULL\n , attr_kind INTEGER NOT NULL\n , source_file TEXT NOT NULL\n , proc_attributes BLOB NOT NULL\n , cfg BLOB\n , callees BLOB NOT NULL\n )\n ;\n\n CREATE TABLE IF NOT EXISTS source_files\n ( source_file TEXT PRIMARY KEY\n , type_environment BLOB NOT NULL\n , integer_type_widths BLOB\n , procedure_names BLOB NOT NULL\n , freshly_captured INT NOT NULL )\n ;\n\n CREATE TABLE IF NOT EXISTS specs\n ( proc_uid TEXT PRIMARY KEY NOT NULL\n , proc_name BLOB NOT NULL\n , analysis_summary BLOB NOT NULL\n , report_summary BLOB NOT NULL\n )\n ;\n\n CREATE TABLE IF NOT EXISTS model_specs\n ( proc_uid TEXT PRIMARY KEY NOT NULL\n , proc_name BLOB NOT NULL\n , analysis_summary BLOB NOT NULL\n , report_summary BLOB NOT NULL\n )\n ","should_merge_capture":false} \ No newline at end of file diff --git a/before/infer-out/config-impact-report.json b/before/infer-out/config-impact-report.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/before/infer-out/config-impact-report.json @@ -0,0 +1 @@ +[] diff --git a/before/infer-out/costs-report.json b/before/infer-out/costs-report.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/before/infer-out/costs-report.json @@ -0,0 +1 @@ +[] diff --git a/before/infer-out/racerd/MultiBackgroundInitializer.java.3c5ea2a404a5c4f06e9ee03799aa696b.issue b/before/infer-out/racerd/MultiBackgroundInitializer.java.3c5ea2a404a5c4f06e9ee03799aa696b.issue new file mode 100644 index 0000000..1cc2800 Binary files /dev/null and b/before/infer-out/racerd/MultiBackgroundInitializer.java.3c5ea2a404a5c4f06e9ee03799aa696b.issue differ diff --git a/before/infer-out/report.json b/before/infer-out/report.json new file mode 100644 index 0000000..6dae3d0 --- /dev/null +++ b/before/infer-out/report.json @@ -0,0 +1 @@ +[{"bug_type":"NULL_DEREFERENCE","qualifier":"object returned by `getAllInterfaces(cls)` could be null and is dereferenced at line 72.","severity":"ERROR","line":72,"column":-1,"procedure":"org.apache.commons.lang3.AnnotationUtils$1.getShortClassName(java.lang.Class):java.lang.String","procedure_start_line":71,"file":"src/main/java/org/apache/commons/lang3/AnnotationUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/AnnotationUtils.java","line_number":71,"column_number":-1,"description":"start of procedure getShortClassName(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/AnnotationUtils.java","line_number":72,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":593,"column_number":-1,"description":"start of procedure getAllInterfaces(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":594,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":595,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":601,"column_number":-1,"description":"return from a call to List ClassUtils.getAllInterfaces(Class)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/AnnotationUtils.java","line_number":72,"column_number":-1,"description":""}],"key":"AnnotationUtils.java|getShortClassName|NULL_DEREFERENCE","node_key":"75a3105ef036e14d28c2a0df35d92164","hash":"a08533ab61d2fb9215626d7b14af646c","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object returned by `getAllInterfaces(cls)` could be null and is dereferenced at line 126.","severity":"ERROR","line":126,"column":-1,"procedure":"org.apache.commons.lang3.reflect.FieldUtils.getField(java.lang.Class,java.lang.CharSequence,boolean):java.lang.reflect.Field","procedure_start_line":87,"file":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":87,"column_number":-1,"description":"start of procedure getField(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":88,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":89,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3718,"column_number":-1,"description":"start of procedure isNotBlank(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"return from a call to boolean StringUtils.isNotBlank(CharSequence)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":89,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":156,"column_number":-1,"description":"start of procedure isTrue(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":157,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":160,"column_number":-1,"description":"return from a call to void Validate.isTrue(boolean,String,Object[])"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":105,"column_number":-1,"description":"Taking false branch"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":125,"column_number":-1,"description":""},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":126,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":593,"column_number":-1,"description":"start of procedure getAllInterfaces(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":594,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":595,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":601,"column_number":-1,"description":"return from a call to List ClassUtils.getAllInterfaces(Class)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":126,"column_number":-1,"description":""}],"key":"FieldUtils.java|getField|NULL_DEREFERENCE","node_key":"75a3105ef036e14d28c2a0df35d92164","hash":"26ade70057d66fd8a78cf3be90aa9efd","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object `null` is dereferenced by call to `toString(...)` at line 131.","severity":"ERROR","line":131,"column":-1,"procedure":"org.apache.commons.lang3.builder.ReflectionToStringBuilder.toString(java.lang.Object):java.lang.String","procedure_start_line":131,"file":"src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java","line_number":131,"column_number":-1,"description":"start of procedure toString(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java","line_number":309,"column_number":-1,"description":"start of procedure toString(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java","line_number":312,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java","line_number":554,"column_number":-1,"description":"start of procedure ReflectionToStringBuilder(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java","line_number":437,"column_number":-1,"description":"start of procedure checkNotNull(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java","line_number":438,"column_number":-1,"description":""},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java","line_number":438,"column_number":-1,"description":"return from a call to Object ReflectionToStringBuilder.checkNotNull(Object)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java","line_number":554,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":249,"column_number":-1,"description":"start of procedure ToStringBuilder(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":250,"column_number":-1,"description":"Taking false branch"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":253,"column_number":-1,"description":"Taking true branch"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":254,"column_number":-1,"description":"Skipping StringBuffer(...): unknown method"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":256,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":257,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":258,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":260,"column_number":-1,"description":""},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":408,"column_number":-1,"description":"start of procedure appendStart(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":409,"column_number":-1,"description":"Taking true branch"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":410,"column_number":-1,"description":""},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1475,"column_number":-1,"description":"start of procedure appendClassName(...)"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1476,"column_number":-1,"description":"Taking true branch"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1476,"column_number":-1,"description":"Taking true branch"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1477,"column_number":-1,"description":""},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":219,"column_number":-1,"description":"start of procedure register(...)"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":220,"column_number":-1,"description":"Taking true branch"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":221,"column_number":-1,"description":""},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":190,"column_number":-1,"description":"start of procedure getRegistry()"},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":191,"column_number":-1,"description":"return from a call to Map ToStringStyle.getRegistry()"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":222,"column_number":-1,"description":"Taking false branch"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":225,"column_number":-1,"description":""},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":190,"column_number":-1,"description":"start of procedure getRegistry()"},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":191,"column_number":-1,"description":"return from a call to Map ToStringStyle.getRegistry()"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":225,"column_number":-1,"description":"Skipping put(...): unknown method"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":227,"column_number":-1,"description":"return from a call to void ToStringStyle.register(Object)"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1478,"column_number":-1,"description":"Taking true branch"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1479,"column_number":-1,"description":""},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1613,"column_number":-1,"description":"start of procedure getShortClassName(...)"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1614,"column_number":-1,"description":""},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":197,"column_number":-1,"description":"start of procedure getShortClassName(...)"},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":198,"column_number":-1,"description":"Taking false branch"},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":201,"column_number":-1,"description":"Skipping getShortClassName(...): empty list of specs"},{"level":8,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":229,"column_number":-1,"description":"Definition of getShortClassName(...)"},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":201,"column_number":-1,"description":"return from a call to String ClassUtils.getShortClassName(Class)"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1614,"column_number":-1,"description":"return from a call to String ToStringStyle.getShortClassName(Class)"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1479,"column_number":-1,"description":"Skipping append(...): unknown method"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1484,"column_number":-1,"description":"return from a call to void ToStringStyle.appendClassName(StringBuffer,Object)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":411,"column_number":-1,"description":""},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1492,"column_number":-1,"description":"start of procedure appendIdentityHashCode(...)"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1493,"column_number":-1,"description":""},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1669,"column_number":-1,"description":"start of procedure isUseIdentityHashCode()"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1670,"column_number":-1,"description":"return from a call to boolean ToStringStyle.isUseIdentityHashCode()"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1493,"column_number":-1,"description":"Taking true branch"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1493,"column_number":-1,"description":"Taking true branch"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1494,"column_number":-1,"description":""},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":219,"column_number":-1,"description":"start of procedure register(...)"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":220,"column_number":-1,"description":"Taking true branch"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":221,"column_number":-1,"description":""},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":190,"column_number":-1,"description":"start of procedure getRegistry()"},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":191,"column_number":-1,"description":"return from a call to Map ToStringStyle.getRegistry()"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":222,"column_number":-1,"description":"Taking false branch"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":225,"column_number":-1,"description":""},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":190,"column_number":-1,"description":"start of procedure getRegistry()"},{"level":7,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":191,"column_number":-1,"description":"return from a call to Map ToStringStyle.getRegistry()"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":225,"column_number":-1,"description":"Skipping put(...): unknown method"},{"level":6,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":227,"column_number":-1,"description":"return from a call to void ToStringStyle.register(Object)"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1495,"column_number":-1,"description":"Skipping append(...): unknown method"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1496,"column_number":-1,"description":"Skipping append(...): unknown method"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1498,"column_number":-1,"description":"return from a call to void ToStringStyle.appendIdentityHashCode(StringBuffer,Object)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":412,"column_number":-1,"description":""},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1505,"column_number":-1,"description":"start of procedure appendContentStart(...)"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1506,"column_number":-1,"description":"Skipping append(...): unknown method"}],"key":"ReflectionToStringBuilder.java|toString|NULL_DEREFERENCE","node_key":"b891320c3f80cf32f82e24e6e38f8d8b","hash":"68c5cd0bcb5dafd56fe43082e56d8c25","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object returned by `org.apache.commons.lang3.time.DurationUtils.LONG_TO_INT_RANGE.fit(valueOf(duration.toMillis()))` could be null and is dereferenced at line 142.","severity":"ERROR","line":142,"column":-1,"procedure":"org.apache.commons.lang3.time.DurationUtils.toMillisInt(java.time.Duration):int","procedure_start_line":139,"file":"src/main/java/org/apache/commons/lang3/time/DurationUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/time/DurationUtils.java","line_number":139,"column_number":-1,"description":"start of procedure toMillisInt(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/time/DurationUtils.java","line_number":140,"column_number":-1,"description":"Skipping requireNonNull(...): unknown method"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/time/DurationUtils.java","line_number":142,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":469,"column_number":-1,"description":"start of procedure fit(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":471,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":472,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":337,"column_number":-1,"description":"start of procedure isAfter(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":338,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":339,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":341,"column_number":-1,"description":"return from a call to boolean Range.isAfter(Object)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":472,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":474,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":366,"column_number":-1,"description":"start of procedure isBefore(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":367,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":368,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":370,"column_number":-1,"description":"return from a call to boolean Range.isBefore(Object)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":474,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Range.java","line_number":477,"column_number":-1,"description":"return from a call to Object Range.fit(Object)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/time/DurationUtils.java","line_number":142,"column_number":-1,"description":""}],"key":"DurationUtils.java|toMillisInt|NULL_DEREFERENCE","node_key":"bfbfa1a82447adb1fa12916066fec94d","hash":"f2ac400c043669366dd89608e233049a","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object `chars` last assigned on line 177 could be null and is dereferenced at line 181.","severity":"ERROR","line":181,"column":-1,"procedure":"org.apache.commons.lang3.CharSetUtils.modify(java.lang.String,java.lang.String[],boolean):java.lang.String","procedure_start_line":176,"file":"src/main/java/org/apache/commons/lang3/CharSetUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/CharSetUtils.java","line_number":176,"column_number":-1,"description":"start of procedure modify(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/CharSetUtils.java","line_number":177,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/CharSet.java","line_number":155,"column_number":-1,"description":"start of procedure getInstance(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/CharSet.java","line_number":156,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/CharSet.java","line_number":157,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/CharSet.java","line_number":165,"column_number":-1,"description":"return from a call to CharSet CharSet.getInstance(String[])"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/CharSetUtils.java","line_number":178,"column_number":-1,"description":"Skipping StringBuilder(...): unknown method"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/CharSetUtils.java","line_number":179,"column_number":-1,"description":"Skipping toCharArray(): unknown method"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/CharSetUtils.java","line_number":180,"column_number":-1,"description":"Taking true branch"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/CharSetUtils.java","line_number":181,"column_number":-1,"description":""}],"key":"CharSetUtils.java|modify|NULL_DEREFERENCE","node_key":"b4e36bdef71c9740469c08083ca60d1d","hash":"dfd85b815d94a1dcd43ebcf7e6796784","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object `null` is dereferenced by call to `ToStringBuilder(...)` at line 223.","severity":"ERROR","line":223,"column":-1,"procedure":"org.apache.commons.lang3.builder.ToStringBuilder.(java.lang.Object)","procedure_start_line":223,"file":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":223,"column_number":-1,"description":"start of procedure ToStringBuilder(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":249,"column_number":-1,"description":"start of procedure ToStringBuilder(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":250,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":253,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":256,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":257,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":258,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java","line_number":260,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":408,"column_number":-1,"description":"start of procedure appendStart(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":409,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":410,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1475,"column_number":-1,"description":"start of procedure appendClassName(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1476,"column_number":-1,"description":"Taking false branch"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1484,"column_number":-1,"description":"return from a call to void ToStringStyle.appendClassName(StringBuffer,Object)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":411,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1492,"column_number":-1,"description":"start of procedure appendIdentityHashCode(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1493,"column_number":-1,"description":""},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1669,"column_number":-1,"description":"start of procedure isUseIdentityHashCode()"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1670,"column_number":-1,"description":"return from a call to boolean ToStringStyle.isUseIdentityHashCode()"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1493,"column_number":-1,"description":"Taking true branch"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1493,"column_number":-1,"description":"Taking true branch"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1494,"column_number":-1,"description":""},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":219,"column_number":-1,"description":"start of procedure register(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":220,"column_number":-1,"description":"Taking true branch"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":221,"column_number":-1,"description":""},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":190,"column_number":-1,"description":"start of procedure getRegistry()"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":191,"column_number":-1,"description":"return from a call to Map ToStringStyle.getRegistry()"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":222,"column_number":-1,"description":"Taking false branch"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":225,"column_number":-1,"description":""},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":190,"column_number":-1,"description":"start of procedure getRegistry()"},{"level":5,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":191,"column_number":-1,"description":"return from a call to Map ToStringStyle.getRegistry()"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":225,"column_number":-1,"description":"Skipping put(...): unknown method"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":227,"column_number":-1,"description":"return from a call to void ToStringStyle.register(Object)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java","line_number":1495,"column_number":-1,"description":"Skipping append(...): unknown method"}],"key":"ToStringBuilder.java||NULL_DEREFERENCE","node_key":"873ce38868811a59e7b77550b94ee768","hash":"c33b1be7a981b70a3dd03e70f87a0d64","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object `field` last assigned on line 338 could be null and is dereferenced by call to `readStaticField(...)` at line 341.","severity":"ERROR","line":341,"column":-1,"procedure":"org.apache.commons.lang3.reflect.FieldUtils.readStaticField(java.lang.Class,java.lang.CharSequence,boolean):java.lang.Object","procedure_start_line":337,"file":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":337,"column_number":-1,"description":"start of procedure readStaticField(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":338,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":87,"column_number":-1,"description":"start of procedure getField(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":88,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Class,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":89,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3718,"column_number":-1,"description":"start of procedure isNotBlank(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"return from a call to boolean StringUtils.isNotBlank(CharSequence)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":89,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":156,"column_number":-1,"description":"start of procedure isTrue(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":157,"column_number":-1,"description":"Taking false branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":160,"column_number":-1,"description":"return from a call to void Validate.isTrue(boolean,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":105,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":107,"column_number":-1,"description":"Skipping getDeclaredField(...): unknown method"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":110,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":111,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":105,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":125,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":126,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":593,"column_number":-1,"description":"start of procedure getAllInterfaces(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":594,"column_number":-1,"description":"Taking false branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":598,"column_number":-1,"description":"Skipping LinkedHashSet(): unknown method"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":599,"column_number":-1,"description":"Skipping getAllInterfaces(...): empty list of specs"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":610,"column_number":-1,"description":"Definition of getAllInterfaces(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":601,"column_number":-1,"description":"return from a call to List ClassUtils.getAllInterfaces(Class)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":126,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":136,"column_number":-1,"description":"return from a call to Field FieldUtils.getField(Class,String,boolean)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":339,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":341,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":295,"column_number":-1,"description":"start of procedure readStaticField(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":296,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Field,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":297,"column_number":-1,"description":"Skipping getModifiers(): unknown method"}],"key":"FieldUtils.java|readStaticField|NULL_DEREFERENCE","node_key":"265ba86214678cae77b0c9ab2eedcb6d","hash":"4a6851ca490c7078176fc1511ed64532","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object `field` last assigned on line 382 could be null and is dereferenced by call to `readStaticField(...)` at line 385.","severity":"ERROR","line":385,"column":-1,"procedure":"org.apache.commons.lang3.reflect.FieldUtils.readDeclaredStaticField(java.lang.Class,java.lang.String,boolean):java.lang.Object","procedure_start_line":381,"file":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":381,"column_number":-1,"description":"start of procedure readDeclaredStaticField(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":382,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":170,"column_number":-1,"description":"start of procedure getDeclaredField(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":171,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":172,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3718,"column_number":-1,"description":"start of procedure isNotBlank(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"return from a call to boolean StringUtils.isNotBlank(CharSequence)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":172,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":156,"column_number":-1,"description":"start of procedure isTrue(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":157,"column_number":-1,"description":"Taking false branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":160,"column_number":-1,"description":"return from a call to void Validate.isTrue(boolean,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":175,"column_number":-1,"description":"Skipping getDeclaredField(...): unknown method"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":176,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":85,"column_number":-1,"description":"start of procedure isAccessible(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":86,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":86,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":86,"column_number":-1,"description":"Taking false branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":86,"column_number":-1,"description":"return from a call to boolean MemberUtils.isAccessible(Member)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":176,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":177,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":180,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":187,"column_number":-1,"description":"return from a call to Field FieldUtils.getDeclaredField(Class,String,boolean)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":383,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":385,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":295,"column_number":-1,"description":"start of procedure readStaticField(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":296,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Field,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":297,"column_number":-1,"description":"Skipping getModifiers(): unknown method"}],"key":"FieldUtils.java|readDeclaredStaticField|NULL_DEREFERENCE","node_key":"265ba86214678cae77b0c9ab2eedcb6d","hash":"01c619e497c6ce88168fb559f30d2359","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object returned by `primitiveToWrapper(varArgComponentType)` could be null and is dereferenced by call to `newInstance(...)` at line 486.","severity":"ERROR","line":486,"column":-1,"procedure":"org.apache.commons.lang3.reflect.MethodUtils.getVarArgs(java.lang.Object[],java.lang.Class[]):java.lang.Object[]","procedure_start_line":469,"file":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":469,"column_number":-1,"description":"start of procedure getVarArgs(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":470,"column_number":-1,"description":"Taking false branch"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":477,"column_number":-1,"description":""},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":480,"column_number":-1,"description":"Skipping arraycopy(...): unknown method"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":483,"column_number":-1,"description":"Skipping getComponentType(): unknown method"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":484,"column_number":-1,"description":""},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":486,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":950,"column_number":-1,"description":"start of procedure primitiveToWrapper(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":951,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":952,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":955,"column_number":-1,"description":"return from a call to Class ClassUtils.primitiveToWrapper(Class)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":486,"column_number":-1,"description":""}],"key":"MethodUtils.java|getVarArgs|NULL_DEREFERENCE","node_key":"22104a214f27e4c1b8cb15bc1875b6bf","hash":"422a75b0b6d9ace02897252f7005da12","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object `field` last assigned on line 596 could be null and is dereferenced by call to `writeStaticField(...)` at line 599.","severity":"ERROR","line":599,"column":-1,"procedure":"org.apache.commons.lang3.reflect.FieldUtils.writeStaticField(java.lang.Class,java.lang.CharSequence,java.lang.Object,boolean):void","procedure_start_line":594,"file":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":594,"column_number":-1,"description":"start of procedure writeStaticField(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":596,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":87,"column_number":-1,"description":"start of procedure getField(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":88,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Class,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":89,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3718,"column_number":-1,"description":"start of procedure isNotBlank(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"return from a call to boolean StringUtils.isNotBlank(CharSequence)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":89,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":156,"column_number":-1,"description":"start of procedure isTrue(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":157,"column_number":-1,"description":"Taking false branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":160,"column_number":-1,"description":"return from a call to void Validate.isTrue(boolean,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":105,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":107,"column_number":-1,"description":"Skipping getDeclaredField(...): unknown method"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":110,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":111,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":105,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":125,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":126,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":593,"column_number":-1,"description":"start of procedure getAllInterfaces(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":594,"column_number":-1,"description":"Taking false branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":598,"column_number":-1,"description":"Skipping LinkedHashSet(): unknown method"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":599,"column_number":-1,"description":"Skipping getAllInterfaces(...): empty list of specs"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":610,"column_number":-1,"description":"Definition of getAllInterfaces(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/ClassUtils.java","line_number":601,"column_number":-1,"description":"return from a call to List ClassUtils.getAllInterfaces(Class)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":126,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":136,"column_number":-1,"description":"return from a call to Field FieldUtils.getField(Class,String,boolean)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":597,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":599,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":549,"column_number":-1,"description":"start of procedure writeStaticField(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":550,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Field,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":551,"column_number":-1,"description":"Skipping getModifiers(): unknown method"}],"key":"FieldUtils.java|writeStaticField|NULL_DEREFERENCE","node_key":"de2d9a76245ad9462bfe064598214247","hash":"3a0df1472de26afb639a96cc7a964a56","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object `field` last assigned on line 641 could be null and is dereferenced by call to `writeField(...)` at line 644.","severity":"ERROR","line":644,"column":-1,"procedure":"org.apache.commons.lang3.reflect.FieldUtils.writeDeclaredStaticField(java.lang.Class,java.lang.String,java.lang.Object,boolean):void","procedure_start_line":639,"file":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":639,"column_number":-1,"description":"start of procedure writeDeclaredStaticField(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":641,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":170,"column_number":-1,"description":"start of procedure getDeclaredField(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":171,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":172,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3718,"column_number":-1,"description":"start of procedure isNotBlank(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/StringUtils.java","line_number":3719,"column_number":-1,"description":"return from a call to boolean StringUtils.isNotBlank(CharSequence)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":172,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":156,"column_number":-1,"description":"start of procedure isTrue(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":157,"column_number":-1,"description":"Taking false branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":160,"column_number":-1,"description":"return from a call to void Validate.isTrue(boolean,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":175,"column_number":-1,"description":"Skipping getDeclaredField(...): unknown method"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":176,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":85,"column_number":-1,"description":"start of procedure isAccessible(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":86,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":86,"column_number":-1,"description":"Taking true branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":86,"column_number":-1,"description":"Taking false branch"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/reflect/MemberUtils.java","line_number":86,"column_number":-1,"description":"return from a call to boolean MemberUtils.isAccessible(Member)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":176,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":177,"column_number":-1,"description":"Taking false branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":180,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":187,"column_number":-1,"description":"return from a call to Field FieldUtils.getDeclaredField(Class,String,boolean)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":642,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":644,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":682,"column_number":-1,"description":"start of procedure writeField(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":684,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":4,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Member,String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java","line_number":685,"column_number":-1,"description":"Taking true branch"}],"key":"FieldUtils.java|writeDeclaredStaticField|NULL_DEREFERENCE","node_key":"de2d9a76245ad9462bfe064598214247","hash":"0758984e6ec9244726192dfb6c39e168","bug_type_hum":"Null Dereference"},{"bug_type":"NULL_DEREFERENCE","qualifier":"object `classes` last assigned on line 986 could be null and is dereferenced at line 987.","severity":"ERROR","line":987,"column":-1,"procedure":"org.apache.commons.lang3.reflect.MethodUtils.getAnnotation(java.lang.reflect.Method,java.lang.Class,boolean,boolean):java.lang.annotation.Annotation","procedure_start_line":973,"file":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":973,"column_number":-1,"description":"start of procedure getAnnotation(...)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":976,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":977,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":223,"column_number":-1,"description":"start of procedure notNull(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":""},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"start of procedure Validate$Lambda$_49_3(...)"},{"level":3,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Validate$Lambda$_49_3.(String,Object[])"},{"level":2,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Supplier Validate.callsite_org.apache.commons.lang3.Validate$Lambda$_49_3(String,Object[])"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/Validate.java","line_number":224,"column_number":-1,"description":"return from a call to Object Validate.notNull(Object,String,Object[])"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":978,"column_number":-1,"description":"Taking false branch"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":982,"column_number":-1,"description":"Skipping getAnnotation(...): unknown method"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":984,"column_number":-1,"description":"Taking true branch"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":984,"column_number":-1,"description":"Taking true branch"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":985,"column_number":-1,"description":"Skipping getDeclaringClass(): unknown method"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":986,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":1012,"column_number":-1,"description":"start of procedure getAllSuperclassesAndInterfaces(...)"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":1013,"column_number":-1,"description":"Taking true branch"},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":1014,"column_number":-1,"description":""},{"level":1,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":1034,"column_number":-1,"description":"return from a call to List MethodUtils.getAllSuperclassesAndInterfaces(Class)"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java","line_number":987,"column_number":-1,"description":""}],"key":"MethodUtils.java|getAnnotation|NULL_DEREFERENCE","node_key":"75a3105ef036e14d28c2a0df35d92164","hash":"86b319231c71a4e6dd8d4304c3a4141d","bug_type_hum":"Null Dereference"},{"bug_type":"THREAD_SAFETY_VIOLATION","qualifier":"Read/Write race. Non-private method `MultiBackgroundInitializer.getTaskCount()` reads without synchronization from container `this.childInitializers` via call to `Map.values()`. Potentially races with write in method `MultiBackgroundInitializer.addInitializer(...)`.\n Reporting because another access to the same memory occurs on a background thread, although this access may not.","severity":"WARNING","line":160,"column":-1,"procedure":"org.apache.commons.lang3.concurrent.MultiBackgroundInitializer.getTaskCount():int","procedure_start_line":0,"file":"src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java","bug_trace":[{"level":0,"filename":"src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java","line_number":160,"column_number":-1,"description":""},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java","line_number":160,"column_number":-1,"description":"Read of container `this.childInitializers` via call to `values`"},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java","line_number":142,"column_number":-1,"description":""},{"level":0,"filename":"src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java","line_number":142,"column_number":-1,"description":"Write to container `this.childInitializers` via call to `put`"}],"key":"MultiBackgroundInitializer.java|getTaskCount|THREAD_SAFETY_VIOLATION","hash":"851f0ff7931bb774dadc2c77cb1fe087","bug_type_hum":"Thread Safety Violation","access":"hJWmvgAAALcAAAAIAAAAPgAAACqgsAEAoAD/kglRc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2NvbW1vbnMvbGFuZzMvY29uY3VycmVudC9NdWx0aUJhY2tncm91bmRJbml0aWFsaXplci5qYXZhoLABAI4A/5IJUXNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9jb21tb25zL2xhbmczL2NvbmN1cnJlbnQvTXVsdGlCYWNrZ3JvdW5kSW5pdGlhbGl6ZXIuamF2YUA="}] diff --git a/before/infer-out/report.txt b/before/infer-out/report.txt new file mode 100644 index 0000000..d48929c --- /dev/null +++ b/before/infer-out/report.txt @@ -0,0 +1,122 @@ +#0 +src/main/java/org/apache/commons/lang3/AnnotationUtils.java:72: error: Null Dereference + object returned by `getAllInterfaces(cls)` could be null and is dereferenced at line 72. + 70. @Override + 71. protected String getShortClassName(final Class cls) { + 72. > for (final Class iface : ClassUtils.getAllInterfaces(cls)) { + 73. if (Annotation.class.isAssignableFrom(iface)) { + 74. return "@" + iface.getName(); + +#1 +src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java:126: error: Null Dereference + object returned by `getAllInterfaces(cls)` could be null and is dereferenced at line 126. + 124. // superclass field. + 125. Field match = null; + 126. > for (final Class class1 : ClassUtils.getAllInterfaces(cls)) { + 127. try { + 128. final Field test = class1.getField(fieldName); + +#2 +src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java:131: error: Null Dereference + object `null` is dereferenced by call to `toString(...)` at line 131. + 129. */ + 130. public static String toString(final Object object) { + 131. > return toString(object, null, false, false, null); + 132. } + 133. + +#3 +src/main/java/org/apache/commons/lang3/time/DurationUtils.java:142: error: Null Dereference + object returned by `org.apache.commons.lang3.time.DurationUtils.LONG_TO_INT_RANGE.fit(valueOf(duration.toMillis()))` could be null and is dereferenced at line 142. + 140. Objects.requireNonNull(duration, "duration"); + 141. // intValue() does not do a narrowing conversion here + 142. > return LONG_TO_INT_RANGE.fit(Long.valueOf(duration.toMillis())).intValue(); + 143. } + 144. + +#4 +src/main/java/org/apache/commons/lang3/CharSetUtils.java:181: error: Null Dereference + object `chars` last assigned on line 177 could be null and is dereferenced at line 181. + 179. final char[] chrs = str.toCharArray(); + 180. for (final char chr : chrs) { + 181. > if (chars.contains(chr) == expect) { + 182. buffer.append(chr); + 183. } + +#5 +src/main/java/org/apache/commons/lang3/builder/ToStringBuilder.java:223: error: Null Dereference + object `null` is dereferenced by call to `ToStringBuilder(...)` at line 223. + 221. */ + 222. public ToStringBuilder(final Object object) { + 223. > this(object, null, null); + 224. } + 225. + +#6 +src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java:341: error: Null Dereference + object `field` last assigned on line 338 could be null and is dereferenced by call to `readStaticField(...)` at line 341. + 339. Validate.notNull(field, "Cannot locate field '%s' on %s", fieldName, cls); + 340. // already forced access above, don't repeat it here: + 341. > return readStaticField(field, false); + 342. } + 343. + +#7 +src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java:385: error: Null Dereference + object `field` last assigned on line 382 could be null and is dereferenced by call to `readStaticField(...)` at line 385. + 383. Validate.notNull(field, "Cannot locate declared field %s.%s", cls.getName(), fieldName); + 384. // already forced access above, don't repeat it here: + 385. > return readStaticField(field, false); + 386. } + 387. + +#8 +src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java:486: error: Null Dereference + object returned by `primitiveToWrapper(varArgComponentType)` could be null and is dereferenced by call to `newInstance(...)` at line 486. + 484. final int varArgLength = args.length - methodParameterTypes.length + 1; + 485. + 486. > Object varArgsArray = Array.newInstance(ClassUtils.primitiveToWrapper(varArgComponentType), varArgLength); + 487. // Copy the variadic arguments into the varargs array. + 488. System.arraycopy(args, methodParameterTypes.length - 1, varArgsArray, 0, varArgLength); + +#9 +src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java:599: error: Null Dereference + object `field` last assigned on line 596 could be null and is dereferenced by call to `writeStaticField(...)` at line 599. + 597. Validate.notNull(field, "Cannot locate field %s on %s", fieldName, cls); + 598. // already forced access above, don't repeat it here: + 599. > writeStaticField(field, value, false); + 600. } + 601. + +#10 +src/main/java/org/apache/commons/lang3/reflect/FieldUtils.java:644: error: Null Dereference + object `field` last assigned on line 641 could be null and is dereferenced by call to `writeField(...)` at line 644. + 642. Validate.notNull(field, "Cannot locate declared field %s.%s", cls.getName(), fieldName); + 643. // already forced access above, don't repeat it here: + 644. > writeField(field, (Object) null, value, false); + 645. } + 646. + +#11 +src/main/java/org/apache/commons/lang3/reflect/MethodUtils.java:987: error: Null Dereference + object `classes` last assigned on line 986 could be null and is dereferenced at line 987. + 985. final Class mcls = method.getDeclaringClass(); + 986. final List> classes = getAllSuperclassesAndInterfaces(mcls); + 987. > for (final Class acls : classes) { + 988. final Method equivalentMethod = (ignoreAccess ? MethodUtils.getMatchingMethod(acls, method.getName(), method.getParameterTypes()) + 989. : MethodUtils.getMatchingAccessibleMethod(acls, method.getName(), method.getParameterTypes())); + +#12 +src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java:160: warning: Thread Safety Violation + Read/Write race. Non-private method `MultiBackgroundInitializer.getTaskCount()` reads without synchronization from container `this.childInitializers` via call to `Map.values()`. Potentially races with write in method `MultiBackgroundInitializer.addInitializer(...)`. + Reporting because another access to the same memory occurs on a background thread, although this access may not. + 158. int result = 1; + 159. + 160. > for (final BackgroundInitializer bi : childInitializers.values()) { + 161. result += bi.getTaskCount(); + 162. } + +Found 13 issues + Issue Type(ISSUED_TYPE_ID): # + Null Dereference(NULL_DEREFERENCE): 12 + Thread Safety Violation(THREAD_SAFETY_VIOLATION): 1 diff --git a/before/infer-out/results.db b/before/infer-out/results.db new file mode 100644 index 0000000..5008c55 Binary files /dev/null and b/before/infer-out/results.db differ diff --git a/before/infer-out/results.db-shm b/before/infer-out/results.db-shm new file mode 100644 index 0000000..7f7726d Binary files /dev/null and b/before/infer-out/results.db-shm differ diff --git a/before/infer-out/results.db-wal b/before/infer-out/results.db-wal new file mode 100644 index 0000000..6105161 Binary files /dev/null and b/before/infer-out/results.db-wal differ