Repairing and Optimizing Hadoop hashCode Implementations
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.
Unable to display preview. Download preview PDF.
- 1.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)Google Scholar
- 3.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)Google Scholar
- 4.Hoosand, H.H., Stützle, T.: Stochastic Local Search: Foundations & Applications. Elsevier / Morgan Kaufmann (2004)Google Scholar
- 5.Kong, W., Li, W.J.: Isotropic Hashing. Technical report (2012)Google Scholar
- 7.Langdon, W.B., Harman, M.: Optimising Existing Software with Genetic Programming. IEEE Transactions on Evolutionary Computation PP(99), 1–18 (2014)Google Scholar
- 9.Oracle. Java Platform Standard Ed. 7 (2013)Google Scholar
- 10.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)Google Scholar
- 11.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)Google Scholar