[ 
https://issues.apache.org/jira/browse/PHOENIX-1250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gabriel Reid updated PHOENIX-1250:
----------------------------------
    Attachment: PHOENIX-1250.patch

Patch to remove use of Guava's Closeables.closeQuietly.

After applying this patch, Phoenix can be built against Guava 18.0 (or 16.0, 
and others). This can be tested by running {{maven clean test 
-Dguava.version=18.0}}. 

Running the unit test also works correctly, but the full integration test suite 
won't work because the underlying HBase/Hadoop code is still dependent on an 
older version of Guava.

This has been done by basically adding the equivalent of 
Closeables.closeQuietly to Phoenix itself. We may also want to consider trying 
to get away from using this method completely, as it was removed from Guava for 
a (good) reason.

> guava dependency out-dated causing NoSuchMethod error
> -----------------------------------------------------
>
>                 Key: PHOENIX-1250
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1250
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.1
>         Environment: CentOS, Phoenix 4.1, HBase 0.98.5
>            Reporter: Jerry Chabot
>            Assignee: Gabriel Reid
>         Attachments: PHOENIX-1250.patch
>
>
> Phoenix has a dependency on Guava 12.0.1 (released in 2012). My project uses 
> Guava 16.0.1. The latest version is 18. Apparently, the 
> Closeables.closeQuitely(Closeable) no longer exists in 16.0.1 and later. 
> Possibly earlier versions. 
> I get the error below when attempting to get a connection. This is blocking 
> any attempts to integrate Phoenix because I cannot downgrade our project 
> dependency to a 2 year old version. 
> Please review all project dependencies and consider uprading to more recent 
> versions.
> java.sql.SQLException: java.lang.NoSuchMethodError: 
> com.google.common.io.Closeables.closeQuietly(Ljava/io/Closeable;)V
>       at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:947)
>       at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.createTable(ConnectionQueryServicesImpl.java:1144)
>       at 
> org.apache.phoenix.query.DelegateConnectionQueryServices.createTable(DelegateConnectionQueryServices.java:114)
>       at 
> org.apache.phoenix.schema.MetaDataClient.createTableInternal(MetaDataClient.java:1315)
>       at 
> org.apache.phoenix.schema.MetaDataClient.createTable(MetaDataClient.java:445)
>       at 
> org.apache.phoenix.compile.CreateTableCompiler$2.execute(CreateTableCompiler.java:183)
>       at 
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:256)
>       at 
> org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:248)
>       at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>       at 
> org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:246)
>       at 
> org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:960)
>       at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl$9.call(ConnectionQueryServicesImpl.java:1519)
>       at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl$9.call(ConnectionQueryServicesImpl.java:1489)
>       at 
> org.apache.phoenix.util.PhoenixContextExecutor.call(PhoenixContextExecutor.java:77)
>       at 
> org.apache.phoenix.query.ConnectionQueryServicesImpl.init(ConnectionQueryServicesImpl.java:1489)
>       at 
> org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:162)
>       at 
> org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:129)
>       at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:133)
>       at java.sql.DriverManager.getConnection(DriverManager.java:571)
>       at java.sql.DriverManager.getConnection(DriverManager.java:187)



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

Reply via email to