Abstract
We describe how contract violations in JavaTM hashCode methods can be repaired using novel combination of semantics-preserving and generative methods, the latter being achieved via Automatic Improvement Programming. The method described is universally applicable. When applied to the Hadoop platform, it was established that it produces hashCode functions that are at least as good as the original, broken method as well as those produced by a widely-used alternative method from the ‘Apache Commons’ library.
An Erratum for this chapter can be found at http://dx.doi.org/10.1007/978-3-319-09940-8_23
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Arcuri, A., Briand, L.: A practical guide for using statistical tests to assess randomized algorithms in software engineering. In: Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, pp. 1–10 (2011)
Bahi, J.M., Guyeux, C.: Hash Functions Using Chaotic Iterations. Journal of Algorithms & Computational Technology 4(2), 167–182 (2010)
Grech, N., Rathke, J., Fischer, B.: JEqualityGen: Generating equality and hashing methods. In: The Ninth International Conference on Generative Programming and Component Engineering, pp. 177–186 (2011)
Hoosand, H.H., Stützle, T.: Stochastic Local Search: Foundations & Applications. Elsevier / Morgan Kaufmann (2004)
Kong, W., Li, W.J.: Isotropic Hashing. Technical report (2012)
Koza, J.R.: Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge (1994)
Langdon, W.B., Harman, M.: Optimising Existing Software with Genetic Programming. IEEE Transactions on Evolutionary Computation PP(99), 1–18 (2014)
Meyer, B.: Applying ‘design by contract’. Computer 25(10), 40–51 (1992)
Oracle. Java Platform Standard Ed. 7 (2013)
Rayside, D., Benjamin, Z., Singh, R., Near, J.P., Milicevic, A., Jackson, D.: Equality and hashing for (almost) free. In: ICSE 2009 Proceedings of the 31st International Conference on Software Engineering, pp. 342–352 (2009)
Swan, J., Epitropakis, M.G., Woodward, J.R.: Gen-O-Fix: An embeddable framework for Dynamic Adaptive Genetic Improvement Programming. Technical Report January, Department of Computing Science and Mathematics, University of Stirling, Stirling, UK (2014)
Vaziri, M., Tip, F., Fink, S.J., Dolby, J.: Declarative object identity using relation types. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 54–78. Springer, Heidelberg (2007)
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
Kocsis, Z.A. et al. (2014). Repairing and Optimizing Hadoop hashCode Implementations. In: Le Goues, C., Yoo, S. (eds) Search-Based Software Engineering. SSBSE 2014. Lecture Notes in Computer Science, vol 8636. Springer, Cham. https://doi.org/10.1007/978-3-319-09940-8_22
Download citation
DOI: https://doi.org/10.1007/978-3-319-09940-8_22
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-09939-2
Online ISBN: 978-3-319-09940-8
eBook Packages: Computer ScienceComputer Science (R0)