[ https://issues.apache.org/jira/browse/ACCUMULO-2966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Josh Elser updated ACCUMULO-2966: --------------------------------- Fix Version/s: (was: 1.7.0) 1.7.1 1.8.0 > ZooReaderWriter.getInstance ignores changes in params > ----------------------------------------------------- > > Key: ACCUMULO-2966 > URL: https://issues.apache.org/jira/browse/ACCUMULO-2966 > Project: Accumulo > Issue Type: Bug > Components: fate > Affects Versions: 1.5.0, 1.5.1, 1.6.0 > Reporter: Sean Busbey > Priority: Minor > Labels: newbie > Fix For: 1.5.3, 1.6.3, 1.8.0, 1.7.1 > > > the factory methods on ZooReaderWriter take parameters for servers, timeout, > and authentication, but ignores if those parameters are different from the > first invocation. > {code} > public static synchronized ZooReaderWriter getInstance(String zookeepers, > int timeInMillis, String scheme, byte[] auth) { > if (instance == null) > instance = new ZooReaderWriter(zookeepers, timeInMillis, scheme, auth); > return instance; > } > /** > * get an instance that retries when zookeeper connection errors occur > * > * @return an instance that retries when Zookeeper connection errors occur. > */ > public static synchronized IZooReaderWriter getRetryingInstance(String > zookeepers, int timeInMillis, String scheme, byte[] auth) { > if (retryingInstance == null) { > IZooReaderWriter inst = getInstance(zookeepers, timeInMillis, scheme, > auth); > InvocationHandler ih = new RetryingInvocationHandler(inst); > retryingInstance = (IZooReaderWriter) > Proxy.newProxyInstance(ZooReaderWriter.class.getClassLoader(), new Class[] > {IZooReaderWriter.class}, ih); > } > return retryingInstance; > } > {code} > It should either keep a cache keyed on the parameter values or it should > throw an exception when they differ from the existing instance. > Which one depends on wether the intent is to reuse objects or to have > ZooReaderWriter be a proper singleton. I'm not sure from context, but I think > the cache is the way to go. -- This message was sent by Atlassian JIRA (v6.3.4#6332)