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

Reply via email to