From 3dcad01b3bc8f4db4d7184bba0a26d40f64b1dd7 Mon Sep 17 00:00:00 2001 From: serranom Date: Fri, 5 Dec 2014 16:14:49 -0500 Subject: [PATCH] handle embedded % in objectName This is the solution for issue #554 --- .../java/com/netflix/astyanax/recipes/storage/ObjectReader.java | 2 +- .../java/com/netflix/astyanax/recipes/storage/ObjectWriter.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/astyanax-recipes/src/main/java/com/netflix/astyanax/recipes/storage/ObjectReader.java b/astyanax-recipes/src/main/java/com/netflix/astyanax/recipes/storage/ObjectReader.java index 34e71e9e5..8dc3d8ab9 100644 --- a/astyanax-recipes/src/main/java/com/netflix/astyanax/recipes/storage/ObjectReader.java +++ b/astyanax-recipes/src/main/java/com/netflix/astyanax/recipes/storage/ObjectReader.java @@ -137,7 +137,7 @@ public ObjectMetadata call() throws Exception { ExecutorService executor = Executors.newFixedThreadPool( concurrencyLevel, new ThreadFactoryBuilder().setDaemon(true) - .setNameFormat("ChunkReader-" + objectName + "-%d").build()); + .setNameFormat("ChunkReader-" + objectName.replace("%","%%") + "-%d").build()); try { for (final int chunkId : idsToRead) { executor.submit(new Runnable() { diff --git a/astyanax-recipes/src/main/java/com/netflix/astyanax/recipes/storage/ObjectWriter.java b/astyanax-recipes/src/main/java/com/netflix/astyanax/recipes/storage/ObjectWriter.java index 769f08af5..fda5ef878 100644 --- a/astyanax-recipes/src/main/java/com/netflix/astyanax/recipes/storage/ObjectWriter.java +++ b/astyanax-recipes/src/main/java/com/netflix/astyanax/recipes/storage/ObjectWriter.java @@ -107,7 +107,7 @@ public ObjectMetadata call() throws Exception { try { final ExecutorService executor = Executors.newFixedThreadPool(concurrencyLevel, new ThreadFactoryBuilder() - .setDaemon(true).setNameFormat("ChunkWriter-" + objectName + "-%d").build()); + .setDaemon(true).setNameFormat("ChunkWriter-" + objectName.replace("%","%%") + "-%d").build()); final BlockingConcurrentWindowCounter chunkCounter = new BlockingConcurrentWindowCounter(concurrencyLevel); final AutoAllocatingLinkedBlockingQueue blocks = new AutoAllocatingLinkedBlockingQueue( concurrencyLevel);