drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Barclay (Drill) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-2482) JDBC : calling getObject when the actual column type is 'NVARCHAR' results in NoClassDefFoundError
Date Fri, 07 Aug 2015 03:56:45 GMT

    [ https://issues.apache.org/jira/browse/DRILL-2482?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14661267#comment-14661267
] 

Daniel Barclay (Drill) commented on DRILL-2482:
-----------------------------------------------

The immediate cause of the problem is that Drill (the client-side code) tries to execute code
referring to and trying to return an instance of {{org.apache.hadoop.io.Text}}, but the JDBC-all
Jar file does not contain that class (hadoop-common, which provides that class, is excluded
by our ProGuard configuration), so the JVM throws that {{NoClassDefFoundError}}.

Either {{org.apache.hadoop.io.Text}} shouldn't be returned in this case (the probable solution;
see DRILL-3347) or our ProGuard configuration needs to be adjusted.

> JDBC : calling getObject when the actual column type is 'NVARCHAR' results in NoClassDefFoundError
> --------------------------------------------------------------------------------------------------
>
>                 Key: DRILL-2482
>                 URL: https://issues.apache.org/jira/browse/DRILL-2482
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Client - JDBC
>            Reporter: Rahul Challapalli
>            Assignee: Rahul Challapalli
>            Priority: Blocker
>             Fix For: 1.2.0
>
>
> git.commit.id.abbrev=7b4c887
> I tried to call getObject(i) on a column which is of type varchar, drill failed with
the below error :
> {code}
> Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/io/Text
> 	at org.apache.drill.exec.vector.VarCharVector$Accessor.getObject(VarCharVector.java:407)
> 	at org.apache.drill.exec.vector.NullableVarCharVector$Accessor.getObject(NullableVarCharVector.java:386)
> 	at org.apache.drill.exec.vector.accessor.NullableVarCharAccessor.getObject(NullableVarCharAccessor.java:98)
> 	at org.apache.drill.exec.vector.accessor.BoundCheckingAccessor.getObject(BoundCheckingAccessor.java:137)
> 	at org.apache.drill.jdbc.AvaticaDrillSqlAccessor.getObject(AvaticaDrillSqlAccessor.java:136)
> 	at net.hydromatic.avatica.AvaticaResultSet.getObject(AvaticaResultSet.java:351)
> 	at Dummy.testComplexQuery(Dummy.java:94)
> 	at Dummy.main(Dummy.java:30)
> Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.io.Text
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> 	... 8 more
> {code}
> When the underlying type is a primitive, the getObject call succeeds



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message