[
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)