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

ClassLoader problem with SymbolLookup

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Not A Defect
    • Component/s: structs-plugin
    • Labels:
      None
    • Environment:
      Jenkins 1.609
      Struts plugin 1.1
    • Similar Issues:

      Description

      I added a symbol to a plugin and added the org.jenkins-ci:symbol-annotation:1.1 lib to the plugin's dependencies as recommended.

      When testing the symbol lookup in Script Console, the lookup fails:

      import hudson.triggers.TriggerDescriptor
      import com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger
      import org.jenkinsci.plugins.structs.SymbolLookup
      import org.jenkinsci.Symbol
      
      println SymbolLookup.get().find(TriggerDescriptor, 'gerrit')
      println SymbolLookup.get().find(Object, 'gerrit')
      println GerritTrigger.DescriptorImpl.annotations
      println GerritTrigger.DescriptorImpl.isAnnotationPresent(Symbol)
      println GerritTrigger.DescriptorImpl.isAnnotationPresent(GerritTrigger.classLoader.loadClass(Symbol.name))
      println GerritTrigger.DescriptorImpl.isAnnotationPresent(Jenkins.instance.pluginManager.uberClassLoader.loadClass(Symbol.name))
      println Symbol.classLoader
      
      null
      null
      [@org.jenkinsci.Symbol(value=[gerrit]), @hudson.Extension(dynamicLoadable=MAYBE, ordinal=0.0, optional=false)]
      false
      true
      false
      AntClassLoader[/var/lib/jenkins/plugins/structs/WEB-INF/lib/structs.jar:/var/lib/jenkins/plugins/structs/WEB-INF/lib/annotation-indexer-1.9.jar:/var/lib/jenkins/plugins/structs/WEB-INF/lib/symbol-annotation-1.1.jar]
      

      If change the dependency to org.jenkins-ci.plugins:struct-plugin:1.1 instead of org.jenkins-ci:symbol-annotation:1.1, everything works as expected:

      com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger$DescriptorImpl@314d1fa3
      com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger$DescriptorImpl@314d1fa3
      [@org.jenkinsci.Symbol(value=[gerrit]), @hudson.Extension(dynamicLoadable=MAYBE, ordinal=0.0, optional=false)]
      true
      true
      true
      AntClassLoader[/var/lib/jenkins/plugins/structs/WEB-INF/lib/structs.jar:/var/lib/jenkins/plugins/structs/WEB-INF/lib/annotation-indexer-1.9.jar:/var/lib/jenkins/plugins/structs/WEB-INF/lib/symbol-annotation-1.1.jar]
      

        Attachments

          Activity

          There are no comments yet on this issue.

            People

            • Assignee:
              kohsuke Kohsuke Kawaguchi
              Reporter:
              daspilker Daniel Spilker
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: