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();

Reply via email to