SOLR-9522: Improve error handling in ZKPropertiesWriter

This commit is contained in:
Varun Thacker 2016-09-16 18:47:06 +05:30
parent 5610fd9df2
commit 5d6b7fffc3
2 changed files with 9 additions and 13 deletions

View File

@ -132,6 +132,8 @@ Bug Fixes
* SOLR-9507: CoreContainer threads now correctly set their MDC logging values
(Alan Woodward)
* SOLR-9522: Improve error handling in ZKPropertiesWriter (Varun Thacker)
Optimizations
----------------------

View File

@ -44,14 +44,12 @@ public class ZKPropertiesWriter extends SimplePropertiesWriter {
@Override
public void init(DataImporter dataImporter, Map<String, String> params) {
super.init(dataImporter, params);
zkClient = dataImporter.getCore().getCoreDescriptor().getCoreContainer()
.getZkController().getZkClient();
zkClient = dataImporter.getCore().getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
}
@Override
protected void findDirectory(DataImporter dataImporter, Map<String, String> params) {
String collection = dataImporter.getCore().getCoreDescriptor()
.getCloudDescriptor().getCollectionName();
String collection = dataImporter.getCore().getCoreDescriptor().getCloudDescriptor().getCollectionName();
path = "/configs/" + collection + "/" + filename;
}
@ -74,13 +72,9 @@ public class ZKPropertiesWriter extends SimplePropertiesWriter {
} catch (NodeExistsException e) {}
}
zkClient.setData(path, bytes, false);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
log.warn(
"Could not persist properties to " + path + " :" + e.getClass(), e);
} catch (Exception e) {
log.warn(
"Could not persist properties to " + path + " :" + e.getClass(), e);
SolrZkClient.checkInterrupted(e);
log.warn("Could not persist properties to " + path + " :" + e.getClass(), e);
}
}
@ -88,13 +82,13 @@ public class ZKPropertiesWriter extends SimplePropertiesWriter {
public Map<String, Object> readIndexerProperties() {
Properties props = new Properties();
try {
byte[] data = zkClient.getData(path, null, null, false);
byte[] data = zkClient.getData(path, null, null, true);
if (data != null) {
props.load(new StringReader(new String(data, StandardCharsets.UTF_8)));
}
} catch (Exception e) {
log.warn(
"Could not read DIH properties from " + path + " :" + e.getClass(), e);
SolrZkClient.checkInterrupted(e);
log.warn("Could not read DIH properties from " + path + " :" + e.getClass(), e);
}
return propertiesToMap(props);
}