2018 · 81 citations · 32 references
ComputingComputer ScienceFault ToleranceMalware AnalysisSoftware EngineeringDependency ManagementInterdependency AnalysisAutomated Detection SystemsBuild AutomationBuild SystemsDependency Conflict ResolutionEmpirical EvaluationOpen Source Dependency Analysis
Intensive dependencies of a Java project on third-party libraries can easily lead to the presence of multiple library or class versions on its classpath. When this happens, JVM will load one version and shadows the others. Dependency conflict (DC) issues occur when the loaded version fails to cover a required feature (e.g., method) referenced by the project, thus causing runtime exceptions. However, the warnings of duplicate classes or libraries detected by existing build tools such as Maven can be benign since not all instances of duplication will induce runtime exceptions, and hence are often ignored by developers. In this paper, we conducted an empirical study on real-world DC issues collected from large open source projects. We studied the manifestation and fixing patterns of DC issues. Based on our findings, we designed Decca, an automated detection tool that assesses DC issues' severity and filters out the benign ones. Our evaluation results on 30 projects show that Decca achieves a precision of 0.923 and recall of 0.766 in detecting high-severity DC issues. Decca also detected new DC issues in these projects. Subsequently, 20 DC bug reports were filed, and 11 of them were confirmed by developers. Issues in 6 reports were fixed with our suggested patches.
32
Nicolas Bettenburg, Sascha Just, Adrian Schröter et al. · 2008 · 603 citations
Rongxin Wu, Hongyu Zhang, Sunghun Kim et al. · 2011 · 386 citations
Dynamic class loading in the Java virtual machine
Gilad Bracha · 1998 · 385 citations · Full text
Context-aware patch generation for better automated program repair
Ming Wen, Junjie Chen, Rongxin Wu et al. · 2018 · 332 citations · Full text