Accumulo
  1. Accumulo
  2. ACCUMULO-721

Reloading of lib/ext classloader causes LinkageError

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major 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`

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

        Activity

        No work has yet been logged on this issue.

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development