in core/src/main/java/com/twitter/elephantbird/util/HadoopUtils.java [134:162]
public static <T> T readObjectFromConfAsBase64(String key, Configuration conf) throws IOException {
String b64 = conf.get(key);
if (b64 == null) {
return null;
}
byte[] bytes = Base64.decodeBase64(b64.getBytes(Charsets.UTF_8));
ByteArrayInputStream bais = null;
GZIPInputStream gis = null;
ObjectInputStream ois = null;
try {
bais = new ByteArrayInputStream(bytes);
gis = new GZIPInputStream(bais);
ois = new ObjectInputStream(gis);
return (T) ois.readObject();
} catch (ClassNotFoundException e) {
LOG.error("Could not read object from config with key " + key, e);
throw new IOException(e);
} catch (ClassCastException e) {
LOG.error("Couldn't cast object read from config with key " + key, e);
throw new IOException(e);
} finally {
Closeables.close(ois, false);
Closeables.close(gis, false);
Closeables.close(bais, false);
}
}