Apologies as the bug report is not public.
When I added cross-platform support for compact profiles under
JDK-8038189. I had to add a check for an empty variable but added it in
the wrong place in CreateJars.gmk when creating the resource.jar:
ifneq ($(PROFILE), )
+ ifneq ($(strip $(PROFILE_INCLUDE_METAINF_SERVICES)), )
# Strip out all META-INF/services/ entries
$(GREP) -v -e 'META-INF/services/' [email protected] > [email protected]
# Add back the required services
for service in $(PROFILE_INCLUDE_METAINF_SERVICES) ; do \
$(ECHO) $$service >> [email protected]; \
done
$(MV) [email protected] [email protected]
+ endif
For compact1 the variable is empty which means we skipped stripping out
the META-INF/services entries from resource.jar. Consequently those
services would be found and the library code would then try to use a
service for which no implementation existed - and hence we get failures.
The fix is of course to move the if block so that it only surrounds the
for loop.
webrev: http://cr.openjdk.java.net/~dholmes/8129850/webrev/
Thanks,
David