Java open-source software (JOSS) generally has the problem of incompatible source code during version iterations, which brings many challenges to developers. This article deeply analyzes the incompatible changes between adjacent versions from Jedis 3.5.0 to 3.6.3, and proposes specific solutions for each type of incompatibility problem. By comparing changes in method signatures, variable assignments, method calls, control flow statements, and return values or output values, it is found that there are a large number of incompatibility issues between Jedis versions. Among them, there are 46 incompatible changes between Jedis 3.5.2–3.6.0 versions, and 25 and 23 incompatible changes between Jedis 3.6.0–3.6.1 versions and 3.6.1–3.6.2 versions respectively. These incompatibility issues bring a relatively high adaptation cost to developers using Jedis. For these incompatibility problems, this article provides specific solutions respectively. In general, the analysis results show that even for Minor and Patch version updates, Jedis still has many compatibility issues, and developers need to carefully evaluate the risks of version upgrades. The coping strategies proposed in this article provide theoretical guidance and practical reference for version management of JOSS.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

An Empirical Study for Source Code Incompatibility Between Versions of Java Open-Source Software

  • Hongwei Tao,
  • Xiaoxu Niu,
  • Tao Wang

摘要

Java open-source software (JOSS) generally has the problem of incompatible source code during version iterations, which brings many challenges to developers. This article deeply analyzes the incompatible changes between adjacent versions from Jedis 3.5.0 to 3.6.3, and proposes specific solutions for each type of incompatibility problem. By comparing changes in method signatures, variable assignments, method calls, control flow statements, and return values or output values, it is found that there are a large number of incompatibility issues between Jedis versions. Among them, there are 46 incompatible changes between Jedis 3.5.2–3.6.0 versions, and 25 and 23 incompatible changes between Jedis 3.6.0–3.6.1 versions and 3.6.1–3.6.2 versions respectively. These incompatibility issues bring a relatively high adaptation cost to developers using Jedis. For these incompatibility problems, this article provides specific solutions respectively. In general, the analysis results show that even for Minor and Patch version updates, Jedis still has many compatibility issues, and developers need to carefully evaluate the risks of version upgrades. The coping strategies proposed in this article provide theoretical guidance and practical reference for version management of JOSS.