When we were preparing ICU4J 56.1 release, we observed some javadoc compatibility issues in JDK 8. One of the issues was the difference in constructor name of a nested classe returned from javadoc API. With JDK 7 or before, the constructor name has enclosing class name - such as Collator.CollatorFactory(). With JDK 8, the name does not include the enclosing class name - such as CollatorFactory().
When we generated API change report, it contained a lot of false removal/addition because of such differences. We did not have time to fix the issue, so we shipped ICU4J 56.1 with docs/report generated with JDK 7.
Now, we're preparing ICU4J 57m1. I tried to generate the API change report with JDK 7, because we did not fix any JDK 8 javadoc compatibility issues yet. It produced a lot of false changes in the report.
I found the 56.1 API signature data file (tools/build/icu4j56.api3.gz) is not compatible with JDK 8. I guess we forgot to regenerate the file with JDK 7, when we decided to go back to JDK 7.
In longer term, we should move to JDK 8+. If we cannot generate API signature data file with previous versions using JDK 8 javadoc, we should change the file extension, and regenerate the signature file with new format for older versions.
For now, we should regenerate the signature data file with JDK 7, and merge it to trunk and maint-56 stream.