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

Reloading of lib/ext classloader causes LinkageError

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: tserver
    • Labels:
      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-classpath
          4 kB
          Josh Elser
        2. ACCUMULO-721-tserver.debug.log
          5 kB
          Josh Elser

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: