You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "Dave Cohrs (JIRA)" <ji...@apache.org> on 2014/01/24 02:38:38 UTC

[jira] [Updated] (CURATOR-85) curator-client ConnectionState uses deprecated Closeables method

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

Dave Cohrs updated CURATOR-85:
------------------------------

          Description: 
Tried to upgrade to guava-16 and started getting these errors from Curator on exit:

Exception in thread "Thread-1" java.lang.NoSuchMethodError: com.google.common.io.Closeables.closeQuietly(Ljava/io/Closeable;)V
	at org.apache.curator.ConnectionState.close(ConnectionState.java:109)
	at org.apache.curator.CuratorZookeeperClient.close(CuratorZookeeperClient.java:196)
	at org.apache.curator.framework.imps.CuratorFrameworkImpl.close(CuratorFrameworkImpl.java:284)
	at com.virident.fmc.service.AbstractService.closeCF(AbstractService.java:199)
	at com.virident.fmc.service.AbstractService.shutdown(AbstractService.java:215)
	at com.virident.fmc.service.AbstractService.access$000(AbstractService.java:31)
	at com.virident.fmc.service.AbstractService$1.run(AbstractService.java:98)
tail: /var/lib/vgccluster/manager.out: file truncated

Investigation shows this code:

    public void close() throws IOException
    {
        log.debug("Closing");

        Closeables.closeQuietly(ensembleProvider);

This closeQuietly() method is deprecated as of guava 14, and it gone in guava 16.  The 2-parameter closeQuietly() needs to be called, eg:

        Closeables.closeQuietly(ensembleProvider, true);

Curator master source still seems to have this bug.  The 2-parameter closeQuietly is already be available in guava-14 and the 1-parameter version is marked decorated as deprecated in that release which should have generated deprecation warnings.

A visual inspection of the various curator projects shows that this deprecated API is used in many places.  They all should be corrected to use the 2-parameter Closeables.closeQuietly().


  was:
Tried to upgrade to guava 16 and started getting these errors from Curator on exit:

Exception in thread "Thread-1" java.lang.NoSuchMethodError: com.google.common.io.Closeables.closeQuietly(Ljava/io/Closeable;)V
	at org.apache.curator.ConnectionState.close(ConnectionState.java:109)
	at org.apache.curator.CuratorZookeeperClient.close(CuratorZookeeperClient.java:196)
	at org.apache.curator.framework.imps.CuratorFrameworkImpl.close(CuratorFrameworkImpl.java:284)
	at com.virident.fmc.service.AbstractService.closeCF(AbstractService.java:199)
	at com.virident.fmc.service.AbstractService.shutdown(AbstractService.java:215)
	at com.virident.fmc.service.AbstractService.access$000(AbstractService.java:31)
	at com.virident.fmc.service.AbstractService$1.run(AbstractService.java:98)
tail: /var/lib/vgccluster/manager.out: file truncated

Investigation shows that this code:

    public void close() throws IOException
    {
        log.debug("Closing");

        Closeables.closeQuietly(ensembleProvider);

This closeQuietly() method is deprecated as of guava 14, and it gone in guava 16.  The 2-parameter closeQuietly() needs to be called, eg:

        Closeables.closeQuietly(ensembleProvider, true);

Curator trunk source still seems to have this bug.  The 2-parameter closeQuietly should already be available in guava 14.


    Affects Version/s: 2.2.0-incubating

> curator-client ConnectionState uses deprecated Closeables method
> ----------------------------------------------------------------
>
>                 Key: CURATOR-85
>                 URL: https://issues.apache.org/jira/browse/CURATOR-85
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Client, Framework, Recipes
>    Affects Versions: 2.2.0-incubating, 2.3.0
>            Reporter: Dave Cohrs
>
> Tried to upgrade to guava-16 and started getting these errors from Curator on exit:
> Exception in thread "Thread-1" java.lang.NoSuchMethodError: com.google.common.io.Closeables.closeQuietly(Ljava/io/Closeable;)V
> 	at org.apache.curator.ConnectionState.close(ConnectionState.java:109)
> 	at org.apache.curator.CuratorZookeeperClient.close(CuratorZookeeperClient.java:196)
> 	at org.apache.curator.framework.imps.CuratorFrameworkImpl.close(CuratorFrameworkImpl.java:284)
> 	at com.virident.fmc.service.AbstractService.closeCF(AbstractService.java:199)
> 	at com.virident.fmc.service.AbstractService.shutdown(AbstractService.java:215)
> 	at com.virident.fmc.service.AbstractService.access$000(AbstractService.java:31)
> 	at com.virident.fmc.service.AbstractService$1.run(AbstractService.java:98)
> tail: /var/lib/vgccluster/manager.out: file truncated
> Investigation shows this code:
>     public void close() throws IOException
>     {
>         log.debug("Closing");
>         Closeables.closeQuietly(ensembleProvider);
> This closeQuietly() method is deprecated as of guava 14, and it gone in guava 16.  The 2-parameter closeQuietly() needs to be called, eg:
>         Closeables.closeQuietly(ensembleProvider, true);
> Curator master source still seems to have this bug.  The 2-parameter closeQuietly is already be available in guava-14 and the 1-parameter version is marked decorated as deprecated in that release which should have generated deprecation warnings.
> A visual inspection of the various curator projects shows that this deprecated API is used in many places.  They all should be corrected to use the 2-parameter Closeables.closeQuietly().



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)