languagetool-org / languagetool

Style and Grammar Checker for 25+ Languages
https://languagetool.org
GNU Lesser General Public License v2.1
12.32k stars 1.39k forks source link

Warning during compile " Illegal reflective access by com.google.inject.internal.cglib.core" #1930

Open TiagoSantos81 opened 5 years ago

TiagoSantos81 commented 5 years ago
./build.sh languagetool-standalone package -DskipTests
Running: mvn --projects languagetool-standalone --also-make package -DskipTests
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 access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[WARNING] The project org.languagetool:languagetool-parent:pom:4.7-SNAPSHOT uses prerequisites which is only intended for maven-plugin projects but not for non maven-plugin projects. For such purposes you should use the maven-enforcer-plugin. See https://maven.apache.org/enforcer/enforcer-rules/requireMavenVersion.html
[INFO] ------------------------------
danielnaber commented 5 years ago

This happens even with just mvn compile very early after starting that command. I think this is in Maven and not in our code.

Also maybe see https://github.com/google/guice/issues/1133

TiagoSantos81 commented 5 years ago

This happens even with just mvn compile very early after starting that command. I think this is in Maven and not in our code.

I believe you know better than this. mvn compile compiles LanguageTool code. We use Google code, and that code is producing this. Whether it is because that code is malformed or because the ones that put it here did it incorrectly, it really doesn't matter. This is the places that should be looked at:

~/languagetool$ grep -r com\\.google\\.
Binary file languagetool-tools/target/languagetool-tools-4.7-SNAPSHOT-jar-with-dependencies.jar matches
languagetool-dev/src/main/java/org/languagetool/dev/archive/RuleSimplifier.java:import com.google.common.base.Strings;
languagetool-dev/src/main/java/org/languagetool/dev/archive/RuleSimplifier.java:import com.google.common.xml.XmlEscapers;
languagetool-dev/src/main/java/org/languagetool/dev/ExportGermanNouns.java:import com.google.common.base.Charsets;
languagetool-dev/src/test/java/org/languagetool/dev/eval/LanguageDetectionMinLengthEval.java:import com.google.common.io.CharStreams;
languagetool-dev/src/test/java/org/languagetool/dev/eval/LanguageDetectionEval.java:import com.google.common.io.CharStreams;
languagetool-language-modules/zh/pom.xml:            <groupId>com.google.code</groupId>
languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/SimpleReplaceDNVSecondaryRule.java:import com.google.common.cache.CacheBuilder;
languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/SimpleReplaceDNVSecondaryRule.java:import com.google.common.cache.CacheLoader;
languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/SimpleReplaceDNVSecondaryRule.java:import com.google.common.cache.LoadingCache;
languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/SimpleReplaceDNVRule.java:import com.google.common.cache.CacheBuilder;
languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/SimpleReplaceDNVRule.java:import com.google.common.cache.CacheLoader;
languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/SimpleReplaceDNVRule.java:import com.google.common.cache.LoadingCache;
languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/SimpleReplaceDNVColloquialRule.java:import com.google.common.cache.CacheBuilder;
languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/SimpleReplaceDNVColloquialRule.java:import com.google.common.cache.CacheLoader;
languagetool-language-modules/ca/src/main/java/org/languagetool/rules/ca/SimpleReplaceDNVColloquialRule.java:import com.google.common.cache.LoadingCache;
languagetool-language-modules/ru/src/test/java/org/languagetool/rules/ru/RussianVerbConjugationRuleTest.java:import com.google.common.collect.ImmutableSet;
languagetool-language-modules/en/src/main/java/org/languagetool/language/English.java:import com.google.common.cache.CacheBuilder;
languagetool-language-modules/en/src/main/java/org/languagetool/language/English.java:import com.google.common.cache.CacheLoader;
languagetool-language-modules/en/src/main/java/org/languagetool/language/English.java:import com.google.common.cache.LoadingCache;
languagetool-language-modules/de/pom.xml:                    <groupId>com.google.code.findbugs</groupId>
languagetool-language-modules/de/pom.xml:                    <groupId>com.google.guava</groupId>
languagetool-standalone/target/LanguageTool-4.7-SNAPSHOT/LanguageTool-4.7-SNAPSHOT/META-INF/maven/org.languagetool/language-zh/pom.xml:            <groupId>com.google.code</groupId>
languagetool-standalone/target/LanguageTool-4.7-SNAPSHOT/LanguageTool-4.7-SNAPSHOT/META-INF/maven/org.languagetool/language-de/pom.xml:                    <groupId>com.google.code.findbugs</groupId>
languagetool-standalone/target/LanguageTool-4.7-SNAPSHOT/LanguageTool-4.7-SNAPSHOT/META-INF/maven/org.languagetool/language-de/pom.xml:                    <groupId>com.google.guava</groupId>
Binary file languagetool-standalone/target/LanguageTool-4.7-SNAPSHOT/LanguageTool-4.7-SNAPSHOT/libs/guava.jar matches
languagetool-rpm-package/pom.xml:               <groupId>com.google.code.maven-replacer-plugin</groupId>
languagetool-core/src/main/java/org/languagetool/tools/StringTools.java:import com.google.common.xml.XmlEscapers;
languagetool-core/src/main/java/org/languagetool/ResultCache.java:import com.google.common.cache.Cache;
languagetool-core/src/main/java/org/languagetool/ResultCache.java:import com.google.common.cache.CacheBuilder;
languagetool-core/src/main/java/org/languagetool/ResultCache.java:import com.google.common.cache.Weigher;
languagetool-core/src/main/java/org/languagetool/rules/AbstractSimpleReplaceRule2.java:import com.google.common.cache.CacheBuilder;
languagetool-core/src/main/java/org/languagetool/rules/AbstractSimpleReplaceRule2.java:import com.google.common.cache.CacheLoader;
languagetool-core/src/main/java/org/languagetool/rules/AbstractSimpleReplaceRule2.java:import com.google.common.cache.LoadingCache;
languagetool-core/src/main/java/org/languagetool/rules/OpenNMTRule.java:import com.google.common.base.Charsets;
languagetool-core/src/main/java/org/languagetool/rules/OpenNMTRule.java:import com.google.common.io.CharStreams;
languagetool-core/src/main/java/org/languagetool/rules/spelling/hunspell/HunspellRule.java:import com.google.common.base.Charsets;
languagetool-core/src/main/java/org/languagetool/rules/spelling/hunspell/HunspellRule.java:import com.google.common.io.Resources;
languagetool-core/src/main/java/org/languagetool/rules/spelling/SymSpellRule.java:import com.google.common.cache.CacheBuilder;
languagetool-core/src/main/java/org/languagetool/rules/spelling/SymSpellRule.java:import com.google.common.cache.CacheLoader;
languagetool-core/src/main/java/org/languagetool/rules/spelling/SymSpellRule.java:import com.google.common.cache.LoadingCache;
languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikSpeller.java:import com.google.common.cache.CacheBuilder;
languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikSpeller.java:import com.google.common.cache.CacheLoader;
languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikSpeller.java:import com.google.common.cache.LoadingCache;
languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikMultiSpeller.java:import com.google.common.cache.CacheBuilder;
languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikMultiSpeller.java:import com.google.common.cache.CacheLoader;
languagetool-core/src/main/java/org/languagetool/rules/spelling/morfologik/MorfologikMultiSpeller.java:import com.google.common.cache.LoadingCache;
languagetool-core/src/main/java/org/languagetool/rules/spelling/CachingWordListLoader.java:import com.google.common.cache.CacheBuilder;
languagetool-core/src/main/java/org/languagetool/rules/spelling/CachingWordListLoader.java:import com.google.common.cache.CacheLoader;
languagetool-core/src/main/java/org/languagetool/rules/spelling/CachingWordListLoader.java:import com.google.common.cache.LoadingCache;
languagetool-core/src/main/java/org/languagetool/rules/WrongWordInContextRule.java:import com.google.common.cache.CacheBuilder;
languagetool-core/src/main/java/org/languagetool/rules/WrongWordInContextRule.java:import com.google.common.cache.CacheLoader;
languagetool-core/src/main/java/org/languagetool/rules/WrongWordInContextRule.java:import com.google.common.cache.LoadingCache;
languagetool-core/src/main/java/org/languagetool/rules/ngrams/ConfusionProbabilityRule.java:import com.google.common.cache.CacheBuilder;
languagetool-core/src/main/java/org/languagetool/rules/ngrams/ConfusionProbabilityRule.java:import com.google.common.cache.CacheLoader;
languagetool-core/src/main/java/org/languagetool/rules/ngrams/ConfusionProbabilityRule.java:import com.google.common.cache.LoadingCache;
languagetool-core/src/main/java/org/languagetool/ShortDescriptionProvider.java:import com.google.common.cache.CacheBuilder;
languagetool-core/src/main/java/org/languagetool/ShortDescriptionProvider.java:import com.google.common.cache.CacheLoader;
languagetool-core/src/main/java/org/languagetool/ShortDescriptionProvider.java:import com.google.common.cache.LoadingCache;
languagetool-core/pom.xml:            <groupId>com.google.guava</groupId>
languagetool-core/pom.xml:                    <groupId>com.google.guava</groupId>
languagetool-server/src/main/java/org/languagetool/server/UserLimits.java:import com.google.common.cache.CacheBuilder;
languagetool-server/src/main/java/org/languagetool/server/UserLimits.java:import com.google.common.cache.CacheLoader;
languagetool-server/src/main/java/org/languagetool/server/UserLimits.java:import com.google.common.cache.LoadingCache;
languagetool-server/src/main/java/org/languagetool/server/Server.java:import com.google.common.util.concurrent.ThreadFactoryBuilder;
languagetool-server/src/main/java/org/languagetool/server/TextChecker.java:import com.google.common.util.concurrent.ThreadFactoryBuilder;
languagetool-server/src/main/java/org/languagetool/server/PipelinePool.java:import com.google.common.cache.CacheBuilder;
languagetool-server/src/main/java/org/languagetool/server/PipelinePool.java:import com.google.common.cache.CacheLoader;
languagetool-server/src/main/java/org/languagetool/server/PipelinePool.java:import com.google.common.cache.LoadingCache;
languagetool-server/src/main/java/org/languagetool/server/ServerMetricsCollector.java:import com.google.common.cache.Cache;
languagetool-server/src/main/java/org/languagetool/server/DatabaseAccess.java:import com.google.common.cache.Cache;
languagetool-server/src/main/java/org/languagetool/server/DatabaseAccess.java:import com.google.common.cache.CacheBuilder;
languagetool-server/src/test/java/org/languagetool/rules/DictionaryMatchFilterTest.java:import com.google.common.collect.Sets;
languagetool-server/pom.xml:                    <groupId>com.google.guava</groupId>
danielnaber commented 5 years ago

We use Google code, and that code is producing this.

I just set up a completely fresh Maven project (Maven 3.3.9) and called mvn compile. I get the exact same error when using Java 12. No LT dependency, the code contained nothing other than the default App.java. Which version of Maven do you use?

TiagoSantos81 commented 5 years ago

Maven 3.6.0 with Java 11+ on Mint. According to what I have read, this type of thing started with Java 9, but I believe you switched to that long ago. I am still reading about that Maven thing.

TiagoSantos81 commented 5 years ago

I can confirm that in my setup it also throws the same warning on a 'clean' LanguageTool project (i.e. no files apart from the root folder, and pom.xml plugins and dependencies commented out). However this does not happen in every setup. Travis results using mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V don't have any flag to hide warnings and, yet, they do not appear.

srcmilena commented 2 years ago

Hello @TiagoSantos81

Is this issue solved? So we can update it.