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

Reply via email to