Plume is a code representation benchmarking library with options to extract the AST from Java bytecode and store the result in various graph databases.
Describe the bug and, if possible, what you should expect
When running Plume with a limited cache - an error can be expected when the unknown node is queried.
To Reproduce
Steps to reproduce the behavior:
Configure Benchmarks for guava on update benchmarks
Limit cache to 5000
Run benchmarks
See error
Screenshots and/or Stacktraces
[INFO ] 2021-09-24 14:04:51.424 [run-main-0] Main$ - ---------------------------------------------------------------------------
[INFO ] 2021-09-24 14:04:51.424 [run-main-0] Main$ - guava @ 37a7c77daae1f58bd31c262243ad3d2bb478a2f4
[INFO ] 2021-09-24 14:04:51.424 [run-main-0] Main$ - ---------------------------------------------------------------------------
[INFO ] 2021-09-24 14:04:51.663 [run-main-0] Extractor$logger$1 - Preparing 2056 class and 0 source file(s). Ignoring 3 unsupported file(s).
[INFO ] 2021-09-24 14:04:52.250 [run-main-0] Extractor$logger$1 - Loading all classes into Soot
[INFO ] 2021-09-24 14:05:05.357 [run-main-0] Extractor$logger$1 - Checking any classes already in the database require updates
[INFO ] 2021-09-24 14:05:11.250 [run-main-0] Extractor$logger$1 - Building internal program structure and type information
[INFO ] 2021-09-24 14:05:40.879 [run-main-0] Extractor$logger$1 - Building UnitGraphs
[INFO ] 2021-09-24 14:05:40.911 [run-main-0] Extractor$logger$1 - Obtaining class hierarchy
[INFO ] 2021-09-24 14:05:41.466 [run-main-0] Extractor$logger$1 - Building primitive type information
[ERROR] 2021-09-24 14:05:41.473 [run-main-0] Main$ - null
java.lang.NullPointerException: null
at io.github.plume.oss.passes.type.GlobalTypePass.runPass(GlobalTypePass.kt:51) ~[plume-0.6.1.jar:0.6.1]
at io.github.plume.oss.Extractor$project$16$1.invoke(Extractor.kt:292) ~[plume-0.6.1.jar:?]
at io.github.plume.oss.Extractor$project$16$1.invoke(Extractor.kt:88) ~[plume-0.6.1.jar:?]
at io.github.plume.oss.Extractor$pipeline$1.invoke(Extractor.kt:504) ~[plume-0.6.1.jar:?]
at io.github.plume.oss.Extractor$project$16.invoke(Extractor.kt:293) ~[plume-0.6.1.jar:?]
at io.github.plume.oss.Extractor$project$16.invoke(Extractor.kt:88) ~[plume-0.6.1.jar:?]
at io.github.plume.oss.metrics.PlumeTimer.measureFunctionTime(PlumeTimer.kt:32) ~[plume-0.6.1.jar:0.6.1]
at io.github.plume.oss.metrics.PlumeTimer.measure(PlumeTimer.kt:43) ~[plume-0.6.1.jar:0.6.1]
at io.github.plume.oss.Extractor.project(Extractor.kt:290) ~[plume-0.6.1.jar:?]
at io.github.plume.oss.Extractor.project$default(Extractor.kt:190) ~[plume-0.6.1.jar:?]
at io.github.plume.oss.Extractor.project(Extractor.kt) ~[plume-0.6.1.jar:?]
at io.github.plume.oss.Main$.runBenchmark(Main.scala:182) ~[classes/:?]
at io.github.plume.oss.RunBenchmark$.runInitBuild(RunBenchmark.scala:62) ~[classes/:?]
at io.github.plume.oss.RunBenchmark$.runLiveUpdates(RunBenchmark.scala:71) ~[classes/:?]
at io.github.plume.oss.Main$.runExperiment(Main.scala:86) ~[classes/:?]
at io.github.plume.oss.Main$.$anonfun$new$5(Main.scala:56) ~[classes/:?]
at scala.collection.immutable.List.foreach(List.scala:333) ~[scala-library-2.13.4.jar:?]
at io.github.plume.oss.Main$.$anonfun$new$3(Main.scala:54) ~[classes/:?]
at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:190) ~[scala-library-2.13.4.jar:?]
at io.github.plume.oss.Main$.$anonfun$new$2(Main.scala:51) ~[classes/:?]
at io.github.plume.oss.Main$.$anonfun$new$2$adapted(Main.scala:42) ~[classes/:?]
at scala.collection.immutable.List.foreach(List.scala:333) ~[scala-library-2.13.4.jar:?]
at io.github.plume.oss.Main$.delayedEndpoint$io$github$plume$oss$Main$1(Main.scala:42) ~[classes/:?]
at io.github.plume.oss.Main$delayedInit$body.apply(Main.scala:20) ~[classes/:?]
at scala.Function0.apply$mcV$sp(Function0.scala:39) ~[scala-library-2.13.4.jar:?]
at scala.Function0.apply$mcV$sp$(Function0.scala:39) ~[scala-library-2.13.4.jar:?]
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17) ~[scala-library-2.13.4.jar:?]
at scala.App.$anonfun$main$1(App.scala:76) ~[scala-library-2.13.4.jar:?]
at scala.App.$anonfun$main$1$adapted(App.scala:76) ~[scala-library-2.13.4.jar:?]
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:563) ~[scala-library-2.13.4.jar:?]
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:561) ~[scala-library-2.13.4.jar:?]
at scala.collection.AbstractIterable.foreach(Iterable.scala:919) ~[scala-library-2.13.4.jar:?]
at scala.App.main(App.scala:76) ~[scala-library-2.13.4.jar:?]
at scala.App.main$(App.scala:74) ~[scala-library-2.13.4.jar:?]
at io.github.plume.oss.Main$.main(Main.scala:20) ~[classes/:?]
at io.github.plume.oss.Main.main(Main.scala) ~[classes/:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at sbt.Run.invokeMain(Run.scala:133) ~[?:?]
at sbt.Run.execute$1(Run.scala:82) ~[?:?]
at sbt.Run.$anonfun$runWithLoader$5(Run.scala:110) ~[?:?]
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) [scala-library.jar:?]
at sbt.util.InterfaceUtil$$anon$1.get(InterfaceUtil.scala:17) [util-logging_2.12-1.4.7.jar:1.4.7]
at sbt.TrapExit$App.run(TrapExit.scala:258) [run_2.12-1.4.7.jar:1.4.7]
at java.lang.Thread.run(Thread.java:829) [?:?]
Desktop (please complete the following information):
Describe the bug and, if possible, what you should expect When running Plume with a limited cache - an error can be expected when the
unknown
node is queried.To Reproduce Steps to reproduce the behavior:
Screenshots and/or Stacktraces
Desktop (please complete the following information):