John Blum created GEODE-9657: -------------------------------- Summary: Javadoc errors occur on Java 17 due to split packages in Geode Key: GEODE-9657 URL: https://issues.apache.org/jira/browse/GEODE-9657 Project: Geode Issue Type: Bug Components: core Affects Versions: 1.14.0, 1.13.4 Reporter: John Blum
When trying to build any library, framework (e.g. _Spring Data for Apache Geode_ (SDG)) or application with Apache Geode on Java 17, Javadoc errors occur. For example: {code} 22:36:52 [ERROR] /opt/jenkins/data/workspace/spring-data-geode_3.0.x/spring-data-geode/src/main/java/org/springframework/data/gemfire/function/PojoFunctionWrapper.java:53: error: cannot access Identifiable 22:36:52 [ERROR] public class PojoFunctionWrapper implements Function { 22:36:52 [ERROR] ^ 22:36:52 [ERROR] class file for org.apache.geode.lang.Identifiable not found {code} As it turns out, in Java 17, the _Javadoc_ tool now uses _Java_ modules. _Javadoc_ is started with: {code} javadoc … --add-modules ALL-MODULE-PATH --module-path --patch-module … {code} {{geode-core-1.14.0.jar}} ships {{org.apache.geode.lang.AttachAPINotFoundException}} and {{geode-common-1.14.0.jar}} ships {{org.apache.geode.lang.Identifiable}}. Due to this split-package arrangement, _Javadoc_ isn’t discovering {{Identifiable}} because it has found the package {{org.apache.geode.lang}} in {{geode-core-1.14.0.jar}}. The best course of action is to make sure all {{org.apache.geode.lang}} sub-packages and class are in 1 JAR (e.g. {{geode-common}}) or the other (i.e. {{geode-core}}). -- This message was sent by Atlassian Jira (v8.3.4#803005)