How do I deal with this particular jar hell issue?


(Nathan Trevivian) #1

We're upgrading to 6.2 from 2.3.4 (ikr?! big deal) I'm battling jar hell.
Previously I'd just overidden the JarHell class and snubbed all the errors. We never had any problems. Maven is pretty good at excluding duplicate jars/invalid versions, and we're sensible, mature programmers (snigger) who can manage our own dependency tree thank you very much.

However, I've decided to be a good ES citizen and toe (tow?) the line.
Someone please help:

Caused by: java.lang.IllegalStateException: jar hell!
class: org.apache.http.auth.AUTH
jar1: /Users/me/.m2/repository/org/apache/httpcomponents/httpclient/4.4/httpclient-4.4.jar
jar2: /Users/me/.m2/repository/org/apache/storm/flux-core/1.2.1/flux-core-1.2.1.jar

So it looks like apache flux has added their own AUTH class under the same package as apache's httpclient.

I don't think ES really gives a monkeys about this, but because militant JarHell does not discriminate, I am in hell. Jar hell. Which at the moment feels a lot like the eternal-damnation sort of hell.

How do I get over this particular hurdle?

Thanks in advance for the masses of help I will receive :smiley:

PS: If someone suggests that I should petition apache to remove that class, or make a contribution to that codebase that means it's no longer required, I will go ape. And I don't mean the high-climbing-funtimes go ape.


(David Pilato) #2

Can you explain what you are embedding in your application? Are you trying to start elasticsearch from your app or something?


(Nathan Trevivian) #3

This happens when I run an ESIntegTestCase test.
I’m integration testing a storm topology with elasticsearch 6. Previously we were just starting an “embedded elasticsearch” using NodeBuilder, but I was hoping to replace that with ESIntegTestCase type tests.


(David Pilato) #4

I think that ESIntegTestCase is meant to run Integration Tests when you are building a plugin or something like this.


(system) #5

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.