Abstract
Multi-thread programs are likely to have bugs in mutual exclusion among threads. Data race is one of the problems that occur in wrong mutual exclusion. There are two kinds of methods of data race detection: dynamic analysis detection and static analysis detection. Dynamic analysis detection is to detect data race by analyzing the results or processes of program executions. Static analysis detection is to detect data race by analyzing source codes of programs. A method of static analysis detection of data race for Java programs has been proposed, but this method cannot handle dynamic class loading. This paper proposes a method of static analysis detection of data race for dynamic class loading and implements this method. This paper also evaluates the implementation by experiments using Java programs that have dynamic class loading. This experiment shows that the proposed method detects data races that cannot be found by the previous data race detection method. The result of experiment shows advantages of the proposed method.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Agarwal, R., Sasturkar, A., Wang, L., Stoller, S.: Optimized run-time race detection and atomicity checking using partial discovered types. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005), pp. 233–242 (2005)
Chord: A Versatile Program Analysis Plathome for Java, http://pag.gatech.edu/chord/ (October 01, 2011)
Engler, D., Ashcraft, K.: RacerX: Effective, static detection of race conditions and deadlocks. In: Proceedings of the 19th ACM Symposium on Operating Systems Principles, pp. 237–252 (2003)
Grove, D., DeFouw, G., Dean, J., Chambers, C.: Call graph construction in object-oriented languages. In: Proceedings of the ACM Conference on Object-oriented Programming, Systems, Languages, and Applications, pp. 108–124 (1997)
Liang, S., Bracha, G.: Dynamic Class Loading in the Java Virtual Machine. In: Proceedings of the 13th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, pp. 36–44 (1998)
Milanova, A., Rountev, A., Ryder, B.: Parameterized object sensitivity for points-to analysis for Java. ACM Transactions on Software Engineering Methodology 14(1), 1–41 (2005)
Naik, M., Aiken, A., Whaley, J.: Effective Static Race Detection for Java. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2006), pp. 20–29 (2006)
Pratikakis, P., Foster, J., Hicks, M.: LOCKSMITH: Context-sensitive correlation analysis for race detection. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2006), pp. 320–331 (2006)
Praun, C., Gross, T.: Static conflict analysis for multi-threaded object-oriented programs. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2003), pp. 115–128 (2003)
Praun, C., Gross, T.: Object race detection. In: Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications, pp. 70–82 (2003)
Ronsse, M., Bosschere, K.: RecPlay: A fully integrated practical record/replay system. ACM Transactions on Computer Systems 17(2), 133–152 (1999)
Schonberg, E.: On-the-fly detection of access anomalies. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 1989), pp. 285–297 (1989)
Vallee-Rai, R., Co, P., Gargnon, E., Hendren, L., Lam, P., Sundaresan, Y.: Soot - a Java optimization framework. In: Proceedings of the 1999 Conference of the Centre for Advanced Studies on Collaboratives Research, pp. 125–135 (1999)
Sawin, J., Rountev, A.: Improved Static Resolution of Dynamic Class Loading in Java. Automated Software Engineering 16(2), 357–381 (2009)
Christensen, A.S., Moller, A., Schwartzbach, M.: Precise Analysis of String Expressions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 1–18. Springer, Heidelberg (2003)
Chugh, R., Voung, W.J., Jhala, R., Lerner, S.: Dataflow analysis for concurrent programs using datarace detection. In: Proceedings of the 2008 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 316–326 (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Yoshiura, N., Wei, W. (2014). Static Data Race Detection for Java Programs with Dynamic Class Loading. In: Fortino, G., Di Fatta, G., Li, W., Ochoa, S., Cuzzocrea, A., Pathan, M. (eds) Internet and Distributed Computing Systems. IDCS 2014. Lecture Notes in Computer Science, vol 8729. Springer, Cham. https://doi.org/10.1007/978-3-319-11692-1_14
Download citation
DOI: https://doi.org/10.1007/978-3-319-11692-1_14
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-11691-4
Online ISBN: 978-3-319-11692-1
eBook Packages: Computer ScienceComputer Science (R0)