You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@drill.apache.org by "Jaimes, Rafael - 0993 - MITLL" <Ra...@ll.mit.edu> on 2020/04/09 15:38:30 UTC

java version for Drill JDBC driver

On the topic of java versions, I am trying to load the Drill JDBC driver in
a docker container running Presto and Java 11, I'm getting the following
error:

 

ERROR main io.prestosql.server.PrestoServer 'java.lang.String
javax.validation.BootstrapConfiguration.getClockProviderClassName()'
java.lang.NoSuchMethodError: 'java.lang.String
javax.validation.BootstrapConfiguration.getClockProviderClassName()'

 

Some stackoverflow searching shows that others have resolved that error for
other projects by changing Java versions (7 to 8 for example). I normally
run Drill in a Java 8 environment, but what about the JDBC driver? Should it
work in Java 11 or is it 8 only?

 

My query Presto with Drill experiment has failed, so I am trying it the
other way around out of curiosity (query Drill with Presto).


Re: java version for Drill JDBC driver

Posted by Paul Rogers <pa...@yahoo.com.INVALID>.
Nice sleuthing!


Thanks,
- Paul

 

    On Thursday, April 9, 2020, 1:07:48 PM PDT, Jaimes, Rafael - 0993 - MITLL <ra...@ll.mit.edu> wrote:  
 
 One of my coworkers looked at the pom.xml in /exec/jdbc and noticed there was a version of javax.validation being called in about 7 years old (1.1.0.Final)
Replacing it with version 2.0.1.Final and rebuild of the JDBC driver jar solved the problem.

-----Original Message-----
From: Paul Rogers <pa...@yahoo.com.INVALID> 
Sent: Thursday, April 9, 2020 3:31 PM
To: user@drill.apache.org
Subject: Re: java version for Drill JDBC driver

Hi Rafael,

Drill's Git-based tests run against all Java versions from 8 to 14. Our biggest challenge is Guava: Drill has many dependencies and some use different (and incompatible) Guava versions. There is a "patcher" to edit the code at runtime to fix the issue.

Presto is nice in that it will load your connector using a dedicated class loader so that Drill's many dependencies should not conflict with Preso's dependencies. (We are slowly working on something similar for Drill.)


Your specific error is mysterious. That "getClockProviderClassName()" looks like Java's SPI system is trying to find a "clock provider" and failing. I've not seen anything like that in Drill.

I wonder if Drill's overly large set of JDBC dependencies is somehow conflicting with those in Presto?

Thanks,
- Paul

 

    On Thursday, April 9, 2020, 8:55:37 AM PDT, Bob Rudis <bo...@rud.is> wrote:  
 
 I use the JDBC driver via an RJDBC wrapper I wrote and the rJava it runs in is built with JDK 11, so it definitely is working in 11 for me.

> On Apr 9, 2020, at 11:38, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
> 
> On the topic of java versions, I am trying to load the Drill JDBC driver in a docker container running Presto and Java 11, I’m getting the following error:
>  
> ERROR main io.prestosql.server.PrestoServer 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()' java.lang.NoSuchMethodError: 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()'
>  
> Some stackoverflow searching shows that others have resolved that error for other projects by changing Java versions (7 to 8 for example). I normally run Drill in a Java 8 environment, but what about the JDBC driver? Should it work in Java 11 or is it 8 only?
>  
> My query Presto with Drill experiment has failed, so I am trying it the other way around out of curiosity (query Drill with Presto).
    

Re: java version for Drill JDBC driver

Posted by Charles Givre <cg...@gmail.com>.
I just submitted a PR for this.  https://github.com/apache/drill/pull/2053 <https://github.com/apache/drill/pull/2053>




> On Apr 12, 2020, at 7:26 PM, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
> 
> JIRA filed for now https://issues.apache.org/jira/browse/DRILL-7699
> 
> -----Original Message-----
> From: Charles Givre <cg...@gmail.com> 
> Sent: Sunday, April 12, 2020 12:16 PM
> To: user <us...@drill.apache.org>
> Subject: Re: java version for Drill JDBC driver
> 
> Hey Rafael, 
> Could you open a PR to fix this?  Or If you're not comfortable, a JIRA will do and tag me in it. 
> -- C
> 
> 
> 
>> On Apr 9, 2020, at 4:07 PM, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
>> 
>> One of my coworkers looked at the pom.xml in /exec/jdbc and noticed there was a version of javax.validation being called in about 7 years old (1.1.0.Final)
>> Replacing it with version 2.0.1.Final and rebuild of the JDBC driver jar solved the problem.
>> 
>> -----Original Message-----
>> From: Paul Rogers <pa...@yahoo.com.INVALID> 
>> Sent: Thursday, April 9, 2020 3:31 PM
>> To: user@drill.apache.org
>> Subject: Re: java version for Drill JDBC driver
>> 
>> Hi Rafael,
>> 
>> Drill's Git-based tests run against all Java versions from 8 to 14. Our biggest challenge is Guava: Drill has many dependencies and some use different (and incompatible) Guava versions. There is a "patcher" to edit the code at runtime to fix the issue.
>> 
>> Presto is nice in that it will load your connector using a dedicated class loader so that Drill's many dependencies should not conflict with Preso's dependencies. (We are slowly working on something similar for Drill.)
>> 
>> 
>> Your specific error is mysterious. That "getClockProviderClassName()" looks like Java's SPI system is trying to find a "clock provider" and failing. I've not seen anything like that in Drill.
>> 
>> I wonder if Drill's overly large set of JDBC dependencies is somehow conflicting with those in Presto?
>> 
>> Thanks,
>> - Paul
>> 
>> 
>> 
>>   On Thursday, April 9, 2020, 8:55:37 AM PDT, Bob Rudis <bo...@rud.is> wrote:  
>> 
>> I use the JDBC driver via an RJDBC wrapper I wrote and the rJava it runs in is built with JDK 11, so it definitely is working in 11 for me.
>> 
>>> On Apr 9, 2020, at 11:38, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
>>> 
>>> On the topic of java versions, I am trying to load the Drill JDBC driver in a docker container running Presto and Java 11, I’m getting the following error:
>>> 
>>> ERROR main io.prestosql.server.PrestoServer 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()' java.lang.NoSuchMethodError: 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()'
>>> 
>>> Some stackoverflow searching shows that others have resolved that error for other projects by changing Java versions (7 to 8 for example). I normally run Drill in a Java 8 environment, but what about the JDBC driver? Should it work in Java 11 or is it 8 only?
>>> 
>>> My query Presto with Drill experiment has failed, so I am trying it the other way around out of curiosity (query Drill with Presto).
>> 
> 


RE: java version for Drill JDBC driver

Posted by "Jaimes, Rafael - 0993 - MITLL" <Ra...@ll.mit.edu>.
JIRA filed for now https://issues.apache.org/jira/browse/DRILL-7699

-----Original Message-----
From: Charles Givre <cg...@gmail.com> 
Sent: Sunday, April 12, 2020 12:16 PM
To: user <us...@drill.apache.org>
Subject: Re: java version for Drill JDBC driver

Hey Rafael, 
Could you open a PR to fix this?  Or If you're not comfortable, a JIRA will do and tag me in it. 
-- C



> On Apr 9, 2020, at 4:07 PM, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
> 
> One of my coworkers looked at the pom.xml in /exec/jdbc and noticed there was a version of javax.validation being called in about 7 years old (1.1.0.Final)
> Replacing it with version 2.0.1.Final and rebuild of the JDBC driver jar solved the problem.
> 
> -----Original Message-----
> From: Paul Rogers <pa...@yahoo.com.INVALID> 
> Sent: Thursday, April 9, 2020 3:31 PM
> To: user@drill.apache.org
> Subject: Re: java version for Drill JDBC driver
> 
> Hi Rafael,
> 
> Drill's Git-based tests run against all Java versions from 8 to 14. Our biggest challenge is Guava: Drill has many dependencies and some use different (and incompatible) Guava versions. There is a "patcher" to edit the code at runtime to fix the issue.
> 
> Presto is nice in that it will load your connector using a dedicated class loader so that Drill's many dependencies should not conflict with Preso's dependencies. (We are slowly working on something similar for Drill.)
> 
> 
> Your specific error is mysterious. That "getClockProviderClassName()" looks like Java's SPI system is trying to find a "clock provider" and failing. I've not seen anything like that in Drill.
> 
> I wonder if Drill's overly large set of JDBC dependencies is somehow conflicting with those in Presto?
> 
> Thanks,
> - Paul
> 
> 
> 
>    On Thursday, April 9, 2020, 8:55:37 AM PDT, Bob Rudis <bo...@rud.is> wrote:  
> 
> I use the JDBC driver via an RJDBC wrapper I wrote and the rJava it runs in is built with JDK 11, so it definitely is working in 11 for me.
> 
>> On Apr 9, 2020, at 11:38, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
>> 
>> On the topic of java versions, I am trying to load the Drill JDBC driver in a docker container running Presto and Java 11, I’m getting the following error:
>> 
>> ERROR main io.prestosql.server.PrestoServer 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()' java.lang.NoSuchMethodError: 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()'
>> 
>> Some stackoverflow searching shows that others have resolved that error for other projects by changing Java versions (7 to 8 for example). I normally run Drill in a Java 8 environment, but what about the JDBC driver? Should it work in Java 11 or is it 8 only?
>> 
>> My query Presto with Drill experiment has failed, so I am trying it the other way around out of curiosity (query Drill with Presto).
> 


Re: java version for Drill JDBC driver

Posted by Charles Givre <cg...@gmail.com>.
Hey Rafael, 
Could you open a PR to fix this?  Or If you're not comfortable, a JIRA will do and tag me in it. 
-- C



> On Apr 9, 2020, at 4:07 PM, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
> 
> One of my coworkers looked at the pom.xml in /exec/jdbc and noticed there was a version of javax.validation being called in about 7 years old (1.1.0.Final)
> Replacing it with version 2.0.1.Final and rebuild of the JDBC driver jar solved the problem.
> 
> -----Original Message-----
> From: Paul Rogers <pa...@yahoo.com.INVALID> 
> Sent: Thursday, April 9, 2020 3:31 PM
> To: user@drill.apache.org
> Subject: Re: java version for Drill JDBC driver
> 
> Hi Rafael,
> 
> Drill's Git-based tests run against all Java versions from 8 to 14. Our biggest challenge is Guava: Drill has many dependencies and some use different (and incompatible) Guava versions. There is a "patcher" to edit the code at runtime to fix the issue.
> 
> Presto is nice in that it will load your connector using a dedicated class loader so that Drill's many dependencies should not conflict with Preso's dependencies. (We are slowly working on something similar for Drill.)
> 
> 
> Your specific error is mysterious. That "getClockProviderClassName()" looks like Java's SPI system is trying to find a "clock provider" and failing. I've not seen anything like that in Drill.
> 
> I wonder if Drill's overly large set of JDBC dependencies is somehow conflicting with those in Presto?
> 
> Thanks,
> - Paul
> 
> 
> 
>    On Thursday, April 9, 2020, 8:55:37 AM PDT, Bob Rudis <bo...@rud.is> wrote:  
> 
> I use the JDBC driver via an RJDBC wrapper I wrote and the rJava it runs in is built with JDK 11, so it definitely is working in 11 for me.
> 
>> On Apr 9, 2020, at 11:38, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
>> 
>> On the topic of java versions, I am trying to load the Drill JDBC driver in a docker container running Presto and Java 11, I’m getting the following error:
>> 
>> ERROR main io.prestosql.server.PrestoServer 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()' java.lang.NoSuchMethodError: 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()'
>> 
>> Some stackoverflow searching shows that others have resolved that error for other projects by changing Java versions (7 to 8 for example). I normally run Drill in a Java 8 environment, but what about the JDBC driver? Should it work in Java 11 or is it 8 only?
>> 
>> My query Presto with Drill experiment has failed, so I am trying it the other way around out of curiosity (query Drill with Presto).
> 


RE: java version for Drill JDBC driver

Posted by "Jaimes, Rafael - 0993 - MITLL" <Ra...@ll.mit.edu>.
One of my coworkers looked at the pom.xml in /exec/jdbc and noticed there was a version of javax.validation being called in about 7 years old (1.1.0.Final)
Replacing it with version 2.0.1.Final and rebuild of the JDBC driver jar solved the problem.

-----Original Message-----
From: Paul Rogers <pa...@yahoo.com.INVALID> 
Sent: Thursday, April 9, 2020 3:31 PM
To: user@drill.apache.org
Subject: Re: java version for Drill JDBC driver

Hi Rafael,

Drill's Git-based tests run against all Java versions from 8 to 14. Our biggest challenge is Guava: Drill has many dependencies and some use different (and incompatible) Guava versions. There is a "patcher" to edit the code at runtime to fix the issue.

Presto is nice in that it will load your connector using a dedicated class loader so that Drill's many dependencies should not conflict with Preso's dependencies. (We are slowly working on something similar for Drill.)


Your specific error is mysterious. That "getClockProviderClassName()" looks like Java's SPI system is trying to find a "clock provider" and failing. I've not seen anything like that in Drill.

I wonder if Drill's overly large set of JDBC dependencies is somehow conflicting with those in Presto?

Thanks,
- Paul

 

    On Thursday, April 9, 2020, 8:55:37 AM PDT, Bob Rudis <bo...@rud.is> wrote:  
 
 I use the JDBC driver via an RJDBC wrapper I wrote and the rJava it runs in is built with JDK 11, so it definitely is working in 11 for me.

> On Apr 9, 2020, at 11:38, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
> 
> On the topic of java versions, I am trying to load the Drill JDBC driver in a docker container running Presto and Java 11, I’m getting the following error:
>  
> ERROR main io.prestosql.server.PrestoServer 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()' java.lang.NoSuchMethodError: 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()'
>  
> Some stackoverflow searching shows that others have resolved that error for other projects by changing Java versions (7 to 8 for example). I normally run Drill in a Java 8 environment, but what about the JDBC driver? Should it work in Java 11 or is it 8 only?
>  
> My query Presto with Drill experiment has failed, so I am trying it the other way around out of curiosity (query Drill with Presto).
  

Re: java version for Drill JDBC driver

Posted by Paul Rogers <pa...@yahoo.com.INVALID>.
Hi Rafael,

Drill's Git-based tests run against all Java versions from 8 to 14. Our biggest challenge is Guava: Drill has many dependencies and some use different (and incompatible) Guava versions. There is a "patcher" to edit the code at runtime to fix the issue.

Presto is nice in that it will load your connector using a dedicated class loader so that Drill's many dependencies should not conflict with Preso's dependencies. (We are slowly working on something similar for Drill.)


Your specific error is mysterious. That "getClockProviderClassName()" looks like Java's SPI system is trying to find a "clock provider" and failing. I've not seen anything like that in Drill.

I wonder if Drill's overly large set of JDBC dependencies is somehow conflicting with those in Presto?

Thanks,
- Paul

 

    On Thursday, April 9, 2020, 8:55:37 AM PDT, Bob Rudis <bo...@rud.is> wrote:  
 
 I use the JDBC driver via an RJDBC wrapper I wrote and the rJava it runs in is built with JDK 11, so it definitely is working in 11 for me.

> On Apr 9, 2020, at 11:38, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
> 
> On the topic of java versions, I am trying to load the Drill JDBC driver in a docker container running Presto and Java 11, I’m getting the following error:
>  
> ERROR main io.prestosql.server.PrestoServer 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()' java.lang.NoSuchMethodError: 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()'
>  
> Some stackoverflow searching shows that others have resolved that error for other projects by changing Java versions (7 to 8 for example). I normally run Drill in a Java 8 environment, but what about the JDBC driver? Should it work in Java 11 or is it 8 only?
>  
> My query Presto with Drill experiment has failed, so I am trying it the other way around out of curiosity (query Drill with Presto).
  

Re: java version for Drill JDBC driver

Posted by Bob Rudis <bo...@rud.is>.
I use the JDBC driver via an RJDBC wrapper I wrote and the rJava it runs in is built with JDK 11, so it definitely is working in 11 for me.

> On Apr 9, 2020, at 11:38, Jaimes, Rafael - 0993 - MITLL <Ra...@ll.mit.edu> wrote:
> 
> On the topic of java versions, I am trying to load the Drill JDBC driver in a docker container running Presto and Java 11, I’m getting the following error:
>  
> ERROR main io.prestosql.server.PrestoServer 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()' java.lang.NoSuchMethodError: 'java.lang.String javax.validation.BootstrapConfiguration.getClockProviderClassName()'
>  
> Some stackoverflow searching shows that others have resolved that error for other projects by changing Java versions (7 to 8 for example). I normally run Drill in a Java 8 environment, but what about the JDBC driver? Should it work in Java 11 or is it 8 only?
>  
> My query Presto with Drill experiment has failed, so I am trying it the other way around out of curiosity (query Drill with Presto).