curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jordan Zimmerman (JIRA)" <>
Subject [jira] [Commented] (CURATOR-85) curator-client ConnectionState uses deprecated Closeables method
Date Sat, 25 Jan 2014 18:16:38 GMT


Jordan Zimmerman commented on CURATOR-85:

The problem with Closeables#close(Closeable,boolean) is that it's marked to throw an exception.
So, the change will be disruptive. What I planned to do was write a new class that has the
old code (frankly, I can't understand why they're removing it):

public class CloseQuietly {
  public static void closeQuietly(Closeable closeable) {
    try {
      close(closeable, true);
    } catch (IOException e) {
      logger.log(Level.SEVERE, "IOException should not have been thrown.", e);

> curator-client ConnectionState uses deprecated Closeables method
> ----------------------------------------------------------------
>                 Key: CURATOR-85
>                 URL:
>             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:;)V
> 	at org.apache.curator.ConnectionState.close(
> 	at org.apache.curator.CuratorZookeeperClient.close(
> 	at org.apache.curator.framework.imps.CuratorFrameworkImpl.close(
> 	at com.virident.fmc.service.AbstractService.closeCF(
> 	at com.virident.fmc.service.AbstractService.shutdown(
> 	at com.virident.fmc.service.AbstractService.access$000(
> 	at com.virident.fmc.service.AbstractService$
> 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

View raw message