Repository: incubator-htrace Updated Branches: refs/heads/master 4da50ae58 -> 884bc02a0
HTRACE-68. Clean up LocalFileSpanReceiver and SpanReceiverBuilder a bit (cmccabe) Project: http://git-wip-us.apache.org/repos/asf/incubator-htrace/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-htrace/commit/884bc02a Tree: http://git-wip-us.apache.org/repos/asf/incubator-htrace/tree/884bc02a Diff: http://git-wip-us.apache.org/repos/asf/incubator-htrace/diff/884bc02a Branch: refs/heads/master Commit: 884bc02a0da1dbde2b635f74f47c03526a7767c4 Parents: 4da50ae Author: Colin P. Mccabe <[email protected]> Authored: Mon Jan 12 13:28:46 2015 -0800 Committer: Colin P. Mccabe <[email protected]> Committed: Mon Jan 12 14:11:44 2015 -0800 ---------------------------------------------------------------------- .../org/apache/htrace/SpanReceiverBuilder.java | 2 ++ .../htrace/impl/LocalFileSpanReceiver.java | 5 +-- .../apache/htrace/TestSpanReceiverBuilder.java | 34 +++++++++++++++----- 3 files changed, 31 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/884bc02a/htrace-core/src/main/java/org/apache/htrace/SpanReceiverBuilder.java ---------------------------------------------------------------------- diff --git a/htrace-core/src/main/java/org/apache/htrace/SpanReceiverBuilder.java b/htrace-core/src/main/java/org/apache/htrace/SpanReceiverBuilder.java index cf6b050..c9d9df5 100644 --- a/htrace-core/src/main/java/org/apache/htrace/SpanReceiverBuilder.java +++ b/htrace-core/src/main/java/org/apache/htrace/SpanReceiverBuilder.java @@ -88,6 +88,7 @@ public class SpanReceiverBuilder { public SpanReceiver build() { if ((this.spanReceiverClass == null) || this.spanReceiverClass.isEmpty()) { + LOG.debug("No span receiver class specified."); return null; } String str = spanReceiverClass; @@ -112,6 +113,7 @@ public class SpanReceiverBuilder { return null; } try { + LOG.debug("Creating new instance of " + str + "..."); return ctor.newInstance(conf); } catch (ReflectiveOperationException e) { logError("SpanReceiverBuilder reflection error when constructing " + str + http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/884bc02a/htrace-core/src/main/java/org/apache/htrace/impl/LocalFileSpanReceiver.java ---------------------------------------------------------------------- diff --git a/htrace-core/src/main/java/org/apache/htrace/impl/LocalFileSpanReceiver.java b/htrace-core/src/main/java/org/apache/htrace/impl/LocalFileSpanReceiver.java index 7fe039f..2683f81 100644 --- a/htrace-core/src/main/java/org/apache/htrace/impl/LocalFileSpanReceiver.java +++ b/htrace-core/src/main/java/org/apache/htrace/impl/LocalFileSpanReceiver.java @@ -76,10 +76,11 @@ public class LocalFileSpanReceiver implements SpanReceiver { new OutputStreamWriter(fos,"UTF-8")); success = true; } catch (IOException ioe) { + LOG.warn("Error opening " + file + ": " + ioe.getMessage()); throw new RuntimeException(ioe); } finally { if (!success) { - if (fos == null) { + if (fos != null) { try { fos.close(); } catch (IOException e) { @@ -155,7 +156,7 @@ public class LocalFileSpanReceiver implements SpanReceiver { try { reader.close(); } catch(IOException e) { - LOG.debug("Exception in closing " + reader, e); + LOG.warn("Exception in closing " + reader, e); } } } http://git-wip-us.apache.org/repos/asf/incubator-htrace/blob/884bc02a/htrace-core/src/test/java/org/apache/htrace/TestSpanReceiverBuilder.java ---------------------------------------------------------------------- diff --git a/htrace-core/src/test/java/org/apache/htrace/TestSpanReceiverBuilder.java b/htrace-core/src/test/java/org/apache/htrace/TestSpanReceiverBuilder.java index 16536af..8994cd5 100644 --- a/htrace-core/src/test/java/org/apache/htrace/TestSpanReceiverBuilder.java +++ b/htrace-core/src/test/java/org/apache/htrace/TestSpanReceiverBuilder.java @@ -16,15 +16,22 @@ */ package org.apache.htrace; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.htrace.impl.LocalFileSpanReceiver; import org.junit.Assert; import org.junit.Test; +import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; +import java.util.UUID; public class TestSpanReceiverBuilder { + public static final Log LOG = + LogFactory.getLog(TestSpanReceiverBuilder.class); + /** * Test that if no span receiver is configured, the builder returns null. */ @@ -44,6 +51,9 @@ public class TestSpanReceiverBuilder { return builder.build(); } + private static final File TMPDIR = + new File(System.getProperty("java.io.tmpdir")); + /** * Test getting various SpanReceiver objects. */ @@ -52,18 +62,26 @@ public class TestSpanReceiverBuilder { HashMap<String, String> confMap = new HashMap<String, String>(); // Create LocalFileSpanReceiver - confMap.put(LocalFileSpanReceiver.PATH_KEY, "/tmp/foo"); - confMap.put(SpanReceiverBuilder.SPAN_RECEIVER_CONF_KEY, - "org.apache.htrace.impl.LocalFileSpanReceiver"); - SpanReceiver rcvr = createSpanReceiver(confMap); - Assert.assertEquals("org.apache.htrace.impl.LocalFileSpanReceiver", - rcvr.getClass().getName()); - rcvr.close(); + File testFile = new File(TMPDIR, UUID.randomUUID().toString()); + try { + confMap.put(LocalFileSpanReceiver.PATH_KEY, testFile.getAbsolutePath()); + confMap.put(SpanReceiverBuilder.SPAN_RECEIVER_CONF_KEY, + "org.apache.htrace.impl.LocalFileSpanReceiver"); + SpanReceiver rcvr = createSpanReceiver(confMap); + Assert.assertNotNull(rcvr); + Assert.assertEquals("org.apache.htrace.impl.LocalFileSpanReceiver", + rcvr.getClass().getName()); + rcvr.close(); + } finally { + if (!testFile.delete()) { + LOG.debug("failed to delete " + testFile); // keep findbugs happy + } + } // Create POJOSpanReceiver confMap.remove(LocalFileSpanReceiver.PATH_KEY); confMap.put(SpanReceiverBuilder.SPAN_RECEIVER_CONF_KEY, "POJOSpanReceiver"); - rcvr = createSpanReceiver(confMap); + SpanReceiver rcvr = createSpanReceiver(confMap); Assert.assertEquals("org.apache.htrace.impl.POJOSpanReceiver", rcvr.getClass().getName()); rcvr.close();
