Bug#948309: guice: Package the no_aop jar

Emmanuel Bourg ebourg at apache.org
Mon Jan 6 23:02:57 GMT 2020


Source: guice
Version: 4.2.1-1
Severity: normal

The 'no_aop' variant of guice (without the embedded cglib) isn't installed
by the libguice-java package, instead a symlink to the 'aop' jar is
installed. This was mostly done to reduce the size of the package. Since the
aop variant is a superset of the no_aop one [1], that was fine.

Unfortunately the modules introduced in Java 9 don't play well with cglib [2],
and using the aop variant triggers a warning on the console. This is especially
annoying with Maven, the following warning is displayed on each invocation:

  WARNING: An illegal reflective access operation has occurred
  WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
  WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
  WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective 

Maven upstream depends on the 'no_aop' variant and isn't affected by this
warning.

Packaging the 'no_aop' variant could address this issue. It could be placed
into it's own libguice-noaop-java package, this would save ~400KB when
installing Maven.

Emmanuel Bourg


[1] https://github.com/google/guice/wiki/OptionalAOP
[2] https://github.com/cglib/cglib/issues/129



More information about the pkg-java-maintainers mailing list