Uploaded image for project: 'Accumulo'
  1. Accumulo
  2. ACCUMULO-721

Reloading of lib/ext classloader causes LinkageError

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Cannot Reproduce
    • None
    • None
    • tserver
    • None

    Description

      I was writing an iterator that takes advantage of some classes in Google's guava-libraries. I placed my jar and the guava-13.0-rc2.jar into lib/ext.

      I then ran a simple Java class which opened a Scanner to a table with my customer Iterator in Eclipse. The first attempt succeeded. I then changed my iterator, recompiled the jar, and placed it in lib/ext. The AccumuloClassLoader message said it picked up the changes. Then, trying to run my class in the same manner, I got a java.lang.LinkageError relating to the classloader having two different Class objects for a class defined in the guava jar (which hadn't changed).

      Moving the guava jar from lib/ext to lib/ and retrying this experiment did not net the same LinkageError.

      I'll attach full stack traces and the output of `accumulo classpath`

      Attachments

        1. ACCUMULO-721-tserver.debug.log
          5 kB
          Josh Elser
        2. ACCUMULO-721-classpath
          4 kB
          Josh Elser

        Activity

          People

            kturner Keith Turner
            elserj Josh Elser
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: