import io.atomix.storage.StorageLevel;
import io.atomix.storage.journal.SegmentedJournal;
import java.io.File;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
-import java.util.Base64;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
}
private ActorRef createHandler(final String persistenceId) {
- final String directoryName = Base64.getUrlEncoder().encodeToString(persistenceId.getBytes(
- StandardCharsets.UTF_8));
+ final String directoryName = encode(persistenceId);
final File directory = new File(rootDir, directoryName);
LOG.debug("Creating handler for {} in directory {}", persistenceId, directory);
return message.promise.future();
}
+ private static String encode(final String str) {
+ try {
+ return URLEncoder.encode(str, StandardCharsets.UTF_8.name());
+ } catch (UnsupportedEncodingException e) {
+ // Shouldn't happen
+ LOG.warn("Error encoding {}", str, e);
+ return str;
+ }
+ }
+
private static int getBytes(final Config config, final String path, final int defaultValue) {
if (!config.hasPath(path)) {
return defaultValue;