Consistency Checking between Java Equals and hashCode Methods Using Software Analysis Workbench

Kozo OKANO  Satoshi HARAUCHI  Toshifusa SEKIZAWA  Shinpei OGATA  Shin NAKAJIMA  

IEICE TRANSACTIONS on Information and Systems   Vol.E102-D   No.8   pp.1498-1505
Publication Date: 2019/08/01
Publicized: 2019/05/14
Online ISSN: 1745-1361
DOI: 10.1587/transinf.2018EDP7254
Type of Manuscript: PAPER
Category: Software System
software verification,  Java,  hash code,  equivalence,  

Full Text: PDF>>
Buy this Article

Java is one of important program language today. In Java, in order to build sound software, we have to carefully implement two fundamental methods hashCode and equals. This requirement, however, is not easy to follow in real software development. Some existing studies for ensuring the correctness of these two methods rely on static analysis, which are limited to loop-free programs. This paper proposes a new solution to this important problem, using software analysis workbench (SAW), an open source tool. The efficiency is evaluated through experiments. We also provide a useful situation where cost of regression testing is reduced when program refactoring is conducted.