Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-46620

[JDK9] Illegal reflective access from guice 4.0

      While exploring Jenkins 2.60.3 on Oracle Java 9 build 181 (pre-release), it reports illegal access exceptions and warns that a future release of Java 9 will forbid illegal access.

      A partial stack trace shows:

      WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/var/jenkins_home/war/WEB-INF/lib/guice-4.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
              at com.google.inject.internal.cglib.core.$ReflectUtils$2.run(ReflectUtils.java:56)
              at java.base/java.security.AccessController.doPrivileged(Native Method)
              at com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:46)
              at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java:67)
              at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java:72)
              at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
              at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:216)
              at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:64)
              at com.google.inject.internal.BytecodeGen.newFastClass(BytecodeGen.java:204)
              at com.google.inject.internal.DefaultConstructionProxyFactory.create(DefaultConstructionProxyFactory.java:54)
              at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java:159)
              at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:90)
              at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:29)
              at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:37)
              at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:33)
              at com.google.inject.internal.FailableCache$1.load(FailableCache.java:37)
              at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)
              at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)
              at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313)
              at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)
              at com.google.common.cache.LocalCache.get(LocalCache.java:3965)
              at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3969)
              at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4829)
              at com.google.common.cache.LocalCache$LocalManualCache.getUnchecked(LocalCache.java:4834)
              at com.google.inject.internal.FailableCache.get(FailableCache.java:48)
              at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50)
              at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:136)
              at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:547)
              at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:884)
              at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:805)
              at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:282)
              at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:214)
      

          [JENKINS-46620] [JDK9] Illegal reflective access from guice 4.0

          Mark Waite created issue -
          Mark Waite made changes -
          Epic Link New: JENKINS-40689 [ 177392 ]
          Mark Waite made changes -
          Description Original: While exploring Jenkins 2.60.3 on Oracle Java 9 build 181 (pre-release), it reports illegal access exceptions and warns that a future release of Java 9 will forbid illegal access.

          A partial stack trace shows:

          {noformat}
          WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper (file:/var/jenkins_home/war/WEB-INF/lib/jnr-posix-3.0.1.jar) to field java.io.FileDescriptor.fd
                  at jnr.posix.JavaLibCHelper.<clinit>(JavaLibCHelper.java:118)
                  at jnr.posix.BaseNativePOSIX.<init>(BaseNativePOSIX.java:38)
                  at jnr.posix.LinuxPOSIX.<init>(LinuxPOSIX.java:20)
                  at jnr.posix.POSIXFactory.loadLinuxPOSIX(POSIXFactory.java:95)
                  at jnr.posix.POSIXFactory.loadNativePOSIX(POSIXFactory.java:69)
                  at jnr.posix.POSIXFactory.loadPOSIX(POSIXFactory.java:38)
                  at jnr.posix.LazyPOSIX.loadPOSIX(LazyPOSIX.java:33)
                  at jnr.posix.LazyPOSIX.posix(LazyPOSIX.java:29)
                  at jnr.posix.LazyPOSIX.chmod(LazyPOSIX.java:55)
                  at hudson.FilePath._chmod(FilePath.java:1611)
                  at hudson.FilePath.access$1500(FilePath.java:197)
                  at hudson.FilePath$29.invoke(FilePath.java:1596)
                  at hudson.FilePath$29.invoke(FilePath.java:1592)
                  at hudson.FilePath.act(FilePath.java:998)
                  at hudson.FilePath.act(FilePath.java:976)
                  at hudson.FilePath.chmod(FilePath.java:1592)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.createSshKeyFile(CliGitAPIImpl.java:1662)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1578)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1561)
                  at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1552) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getHeadRev(CliGitAPIImpl.java:2676)
                  at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:640) at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:599)
                  at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:391) at hudson.scm.SCM.poll(SCM.java:408)
                  at hudson.model.AbstractProject._poll(AbstractProject.java:1458) at hudson.model.AbstractProject.poll(AbstractProject.java:1361)
                  at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:594) at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:640)
                  at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:119) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:514)
                  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) {noformat}

          Appears to be the FilePath call to LazyPOSIX.chmod().
          New: While exploring Jenkins 2.60.3 on Oracle Java 9 build 181 (pre-release), it reports illegal access exceptions and warns that a future release of Java 9 will forbid illegal access.

          A partial stack trace shows:

          {noformat}
          WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/var/jenkins_home/war/WEB-INF/lib/guice-4.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
                  at com.google.inject.internal.cglib.core.$ReflectUtils$2.run(ReflectUtils.java:56)
                  at java.base/java.security.AccessController.doPrivileged(Native Method)
                  at com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:46)
                  at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java:67)
                  at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java:72)
                  at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
                  at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:216)
                  at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:64)
                  at com.google.inject.internal.BytecodeGen.newFastClass(BytecodeGen.java:204)
                  at com.google.inject.internal.DefaultConstructionProxyFactory.create(DefaultConstructionProxyFactory.java:54)
                  at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java:159)
                  at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:90)
                  at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:29)
                  at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:37)
                  at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:33)
                  at com.google.inject.internal.FailableCache$1.load(FailableCache.java:37)
                  at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)
                  at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)
                  at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313)
                  at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)
                  at com.google.common.cache.LocalCache.get(LocalCache.java:3965)
                  at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3969)
                  at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4829)
                  at com.google.common.cache.LocalCache$LocalManualCache.getUnchecked(LocalCache.java:4834)
                  at com.google.inject.internal.FailableCache.get(FailableCache.java:48)
                  at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50)
                  at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:136)
                  at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:547)
                  at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:884)
                  at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:805)
                  at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:282)
                  at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:214)
          {noformat}
          Oleg Nenashev made changes -
          Labels New: java11
          Baptiste Mathus made changes -
          Labels Original: java11 New: illegalReflectiveAccess java11
          Baptiste Mathus made changes -
          Labels Original: illegalReflectiveAccess java11 New: illegalReflectiveAccess java11 triaged
          Basil Crow made changes -
          Labels Original: illegalReflectiveAccess java11 triaged New: illegalReflectiveAccess java11 java11-compatibility triaged
          Ronny Perinke made changes -
          Labels Original: illegalReflectiveAccess java11 java11-compatibility triaged New: illegalReflectiveAccess java11 java11-compatibility java17 java17-compatibility triaged
          Tim Jacomb made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          Mark Waite made changes -
          Status Original: Resolved [ 5 ] New: Closed [ 6 ]

            Unassigned Unassigned
            markewaite Mark Waite
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: