Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
when i fix PIG-5197 and run TestGrunt, the exception is thrown
[ERROR] Terminal initialization failed; falling back to unsupported$ 4220 java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected$ 4221 ^Iat jline.TerminalFactory.create(TerminalFactory.java:101)$ 4222 ^Iat jline.TerminalFactory.get(TerminalFactory.java:159)$ 4223 ^Iat jline.console.ConsoleReader.<init>(ConsoleReader.java:227)$ 4224 ^Iat jline.console.ConsoleReader.<init>(ConsoleReader.java:219)$ 4225 ^Iat jline.console.ConsoleReader.<init>(ConsoleReader.java:211)$ 4226 ^Iat org.apache.pig.Main.run(Main.java:554)$ 4227 ^Iat org.apache.pig.PigRunner.run(PigRunner.java:49)$ 4228 ^Iat org.apache.pig.test.TestGrunt.testGruntUtf8(TestGrunt.java:1579)$ 4229 ^Iat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)$ 4230 ^Iat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)$ 4231 ^Iat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)$ 4232 ^Iat java.lang.reflect.Method.invoke(Method.java:498)$ 4233 ^Iat org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)$ 4234 ^Iat org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)$ 4235 ^Iat org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)$ 4236 ^Iat org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)$ 4237 ^Iat org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)$ 4238 ^Iat org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)$ 4239 ^Iat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)$ 4240 ^Iat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)$ 4241 ^Iat org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)$ 4242 ^Iat org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)$ 4243 ^Iat org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)$ 4244 ^Iat org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)$
i found this is because there are 2 jars about jline in different version
find -name jline*jar ./build/ivy/lib/spark/jline-0.9.94.jar ./build/ivy/lib/Pig/jline-2.11.jar ./lib/spark/jline-0.9.94.jar ./lib/jline-2.11.jar
we need to exclude jline-0.9.94 from spark dependency.