You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chukwa.apache.org by ey...@apache.org on 2015/07/26 04:08:58 UTC

[5/8] chukwa git commit: CHUKWA-771. Improved code quality issue identified by findbugs. (Eric Yang)

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/hicc/ViewsTag.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/hicc/ViewsTag.java b/src/main/java/org/apache/hadoop/chukwa/hicc/ViewsTag.java
index 8171d64..280ee8c 100644
--- a/src/main/java/org/apache/hadoop/chukwa/hicc/ViewsTag.java
+++ b/src/main/java/org/apache/hadoop/chukwa/hicc/ViewsTag.java
@@ -36,13 +36,13 @@ public class ViewsTag extends SimpleTagSupport {
       for (Iterator perm = permission; perm.hasNext();) {
         String who = perm.next().toString();
         authUsers[j] = who;
-        // getJspContext().setAttribute( "permission."+who+".read",
-        // views.getReadPermission(i,who) );
-        // getJspContext().setAttribute( "permission."+who+".write",
-        // views.getWritePermission(i,who) );
+        getJspContext().setAttribute( "permission."+who+".read",
+        views.getReadPermission(i,who) );
+        getJspContext().setAttribute( "permission."+who+".write",
+        views.getWritePermission(i,who) );
         j = j + 1;
       }
-      // getJspContext().setAttribute( "permission", authUsers );
+      getJspContext().setAttribute( "permission", authUsers );
       getJspContext().setAttribute("owner", views.getOwner(i));
       getJspContext().setAttribute("description", views.getDescription(i));
       getJspBody().invoke(null);

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/hicc/Workspace.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/hicc/Workspace.java b/src/main/java/org/apache/hadoop/chukwa/hicc/Workspace.java
index b6789b4..4d7ae98 100644
--- a/src/main/java/org/apache/hadoop/chukwa/hicc/Workspace.java
+++ b/src/main/java/org/apache/hadoop/chukwa/hicc/Workspace.java
@@ -20,6 +20,7 @@ package org.apache.hadoop.chukwa.hicc;
 
 
 import java.io.*;
+import java.nio.charset.Charset;
 import java.util.*;
 
 import javax.servlet.*;
@@ -30,18 +31,16 @@ import java.sql.*;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.chukwa.util.XssFilter;
-
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
 import org.json.simple.JSONValue;
-
 import org.apache.hadoop.chukwa.util.ExceptionUtil;
 
 public class Workspace extends HttpServlet {
   public static final long serialVersionUID = 101L;
   private static final Log log = LogFactory.getLog(Workspace.class);
   private String path = System.getenv("CHUKWA_DATA_DIR");
-  transient private JSONObject hash = new JSONObject();
+  private JSONObject hash = new JSONObject();
   transient private XssFilter xf;
 
   @Override  
@@ -89,7 +88,7 @@ public class Workspace extends HttpServlet {
     try {
       // use buffering, reading one line at a time
       // FileReader always assumes default encoding is OK!
-      BufferedReader input = new BufferedReader(new FileReader(aFile));
+      BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream(aFile.getAbsolutePath()), Charset.forName("UTF-8")));
       try {
         String line = null; // not declared within while loop
         /*
@@ -113,8 +112,7 @@ public class Workspace extends HttpServlet {
 
   public void setContents(String fName, String buffer) {
     try {
-      FileWriter fstream = new FileWriter(fName);
-      BufferedWriter out = new BufferedWriter(fstream);
+      BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fName), Charset.forName("UTF-8")));
       out.write(buffer);
       out.close();
     } catch (Exception e) {
@@ -240,20 +238,22 @@ public class Workspace extends HttpServlet {
           return name.endsWith(".view");
         }
       });
-      JSONObject[] cacheGroup = new JSONObject[filesWanted.length];
-      for (int i = 0; i < filesWanted.length; i++) {
-        String buffer = getContents(filesWanted[i]);
-        try {
-          JSONObject jt = (JSONObject) JSONValue.parse(buffer);
-          String fn = filesWanted[i].getName();
-          jt.put("key", fn.substring(0, (fn.length() - 5)));
-          cacheGroup[i] = jt;
-        } catch (Exception e) {
-          log.debug(ExceptionUtil.getStackTrace(e));
+      if(filesWanted!=null) {
+        JSONObject[] cacheGroup = new JSONObject[filesWanted.length];
+        for (int i = 0; i < filesWanted.length; i++) {
+          String buffer = getContents(filesWanted[i]);
+          try {
+            JSONObject jt = (JSONObject) JSONValue.parse(buffer);
+            String fn = filesWanted[i].getName();
+            jt.put("key", fn.substring(0, (fn.length() - 5)));
+            cacheGroup[i] = jt;
+          } catch (Exception e) {
+            log.debug(ExceptionUtil.getStackTrace(e));
+          }
         }
+        String viewList = convertObjectsToViewList(cacheGroup);
+        setContents(source + "/workspace_view_list.cache", viewList);
       }
-      String viewList = convertObjectsToViewList(cacheGroup);
-      setContents(source + "/workspace_view_list.cache", viewList);
     }
   }
 
@@ -294,18 +294,20 @@ public class Workspace extends HttpServlet {
           return name.endsWith(".descriptor");
         }
       });
-      JSONObject[] cacheGroup = new JSONObject[filesWanted.length];
-      for (int i = 0; i < filesWanted.length; i++) {
-        String buffer = getContents(filesWanted[i]);
-        try {
-          JSONObject jt = (JSONObject) JSONValue.parse(buffer);
-          cacheGroup[i] = jt;
-        } catch (Exception e) {
-          log.debug(ExceptionUtil.getStackTrace(e));
+      if(filesWanted!=null) {
+        JSONObject[] cacheGroup = new JSONObject[filesWanted.length];
+        for (int i = 0; i < filesWanted.length; i++) {
+          String buffer = getContents(filesWanted[i]);
+          try {
+            JSONObject jt = (JSONObject) JSONValue.parse(buffer);
+            cacheGroup[i] = jt;
+          } catch (Exception e) {
+            log.debug(ExceptionUtil.getStackTrace(e));
+          }
         }
+        String widgetList = convertObjectsToWidgetList(cacheGroup);
+        setContents(source + "/workspace_plugin.cache", widgetList);
       }
-      String widgetList = convertObjectsToWidgetList(cacheGroup);
-      setContents(source + "/workspace_plugin.cache", widgetList);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/hicc/bean/BarOptions.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/hicc/bean/BarOptions.java b/src/main/java/org/apache/hadoop/chukwa/hicc/bean/BarOptions.java
index 12c6b12..4a42c2b 100644
--- a/src/main/java/org/apache/hadoop/chukwa/hicc/bean/BarOptions.java
+++ b/src/main/java/org/apache/hadoop/chukwa/hicc/bean/BarOptions.java
@@ -28,4 +28,44 @@ public class BarOptions extends SeriesOptions {
   public BarOptions() {
     fill = true;
   }
+  
+  public boolean getZero() {
+    return zero;
+  }
+  
+  public void setZero(boolean zero) {
+    this.zero = zero;
+  }
+  
+  public boolean getStepByStep() {
+    return stepByStep;
+  }
+  
+  public void setStepByStep(boolean stepByStep) {
+    this.stepByStep = stepByStep;
+  }
+  
+  public int getBarWidth() {
+    return barWidth;
+  }
+  
+  public void setBarWidth(int barWidth) {
+    this.barWidth = barWidth;
+  }
+  
+  public String getAlign() {
+    return align;
+  }
+  
+  public void setAlign(String align) {
+    this.align = align;
+  }
+  
+  public boolean getHorizontal() {
+    return this.horizontal;
+  }
+  
+  public void setHorizontal(boolean horizontal) {
+    this.horizontal = horizontal;
+  }
 }

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/hicc/bean/LineOptions.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/hicc/bean/LineOptions.java b/src/main/java/org/apache/hadoop/chukwa/hicc/bean/LineOptions.java
index 3cbb44d..38ff526 100644
--- a/src/main/java/org/apache/hadoop/chukwa/hicc/bean/LineOptions.java
+++ b/src/main/java/org/apache/hadoop/chukwa/hicc/bean/LineOptions.java
@@ -20,6 +20,21 @@ package org.apache.hadoop.chukwa.hicc.bean;
 public class LineOptions extends SeriesOptions {
   public boolean zero;
   public boolean steps;
-  
+
+  public boolean getZero() {
+    return zero;
+  }
+
+  public void setZero(boolean zero) {
+    this.zero = zero;
+  }
+
+  public boolean getSteps() {
+    return steps;
+  }
+
+  public void setSteps(boolean steps) {
+    this.steps = steps;
+  }
 
 }

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/hicc/bean/PointOptions.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/hicc/bean/PointOptions.java b/src/main/java/org/apache/hadoop/chukwa/hicc/bean/PointOptions.java
index 8d9ae6c..caeede6 100644
--- a/src/main/java/org/apache/hadoop/chukwa/hicc/bean/PointOptions.java
+++ b/src/main/java/org/apache/hadoop/chukwa/hicc/bean/PointOptions.java
@@ -20,8 +20,24 @@ package org.apache.hadoop.chukwa.hicc.bean;
 public class PointOptions extends SeriesOptions {
   public int radius;
   public String symbol = "circle";
-  
+
   public PointOptions() {
     radius = 5;
   }
+
+  public int getRadius() {
+    return radius;
+  }
+
+  public void setRadius(int radius) {
+    this.radius = radius;
+  }
+
+  public String getSymbol() {
+    return symbol;
+  }
+
+  public void setSymbol(String symbol) {
+    this.symbol = symbol;
+  }
 }

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/hicc/bean/SeriesOptions.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/hicc/bean/SeriesOptions.java b/src/main/java/org/apache/hadoop/chukwa/hicc/bean/SeriesOptions.java
index 1cdb40f..b793b77 100644
--- a/src/main/java/org/apache/hadoop/chukwa/hicc/bean/SeriesOptions.java
+++ b/src/main/java/org/apache/hadoop/chukwa/hicc/bean/SeriesOptions.java
@@ -22,12 +22,36 @@ public class SeriesOptions {
   public boolean fill = false;
   public int lineWidth;
   public String fillColor;
-  
+
   public boolean getFill() {
     return fill;
   }
-  
+
   public void setFill(boolean fill) {
     this.fill = fill;
   }
+
+  public boolean getShow() {
+    return show;
+  }
+
+  public void setShow(boolean show) {
+    this.show = show;
+  }
+
+  public int getLineWidth() {
+    return lineWidth;
+  }
+
+  public void setLineWidth(int lineWidth) {
+    this.lineWidth = lineWidth;
+  }
+
+  public String getFillColor() {
+    return fillColor;
+  }
+
+  public void setFillColor(String fillColor) {
+    this.fillColor = fillColor;
+  }
 }

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java b/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java
index e1ade29..72b6dfd 100644
--- a/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java
+++ b/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaDailyRollingFileAppender.java
@@ -381,7 +381,9 @@ public class ChukwaDailyRollingFileAppender extends FileAppender {
 
     File target = new File(scheduledFilename);
     if (target.exists()) {
-      target.delete();
+      if(!target.delete()) {
+        LogLog.warn("Unable to remove: "+target.getAbsolutePath());
+      };
     }
 
     File file = new File(fileName);
@@ -405,11 +407,11 @@ public class ChukwaDailyRollingFileAppender extends FileAppender {
     cleanUp();
   }
 
-  public String getCleanUpRegex() {
+  public synchronized String getCleanUpRegex() {
     return cleanUpRegex;
   }
 
-  public void setCleanUpRegex(String cleanUpRegex) {
+  protected synchronized void setCleanUpRegex(String cleanUpRegex) {
     this.cleanUpRegex = cleanUpRegex;
   }
 
@@ -439,16 +441,19 @@ public class ChukwaDailyRollingFileAppender extends FileAppender {
       String[] dirFiles = dirList.list(new LogFilter(actualFileName, regex));
 
       List<String> files = new ArrayList<String>();
-      for (String file : dirFiles) {
-        files.add(file);
+      if(dirFiles!=null) {
+        for (String file : dirFiles) {
+          files.add(file);
+        }
       }
       Collections.sort(files);
 
       while (files.size() > maxBackupIndex) {
         String file = files.remove(0);
         File f = new File(directoryName + "/" + file);
-        f.delete();
-        LogLog.debug("Removing: " + file);
+        if(!f.delete()) {
+          LogLog.warn("Cannot remove: " + file);
+        }
       }
     } catch (Exception e) {
       errorHandler
@@ -456,7 +461,7 @@ public class ChukwaDailyRollingFileAppender extends FileAppender {
     }
   }
 
-  private class LogFilter implements FilenameFilter {
+  private static class LogFilter implements FilenameFilter {
     private Pattern p = null;
     private String logFile = null;
 
@@ -484,12 +489,10 @@ public class ChukwaDailyRollingFileAppender extends FileAppender {
    */
   @Override
   protected boolean checkEntryConditions() {
-    if (!hasBeenActivated) {
-      synchronized(chukwaLock) {
-        if (!hasBeenActivated) {
-          hasBeenActivated = true;
-          activateOptions();
-        }
+    synchronized(chukwaLock) {
+      if (!hasBeenActivated) {
+        hasBeenActivated = true;
+        activateOptions();
       }
     }
     return super.checkEntryConditions();
@@ -577,8 +580,7 @@ public class ChukwaDailyRollingFileAppender extends FileAppender {
                   + ", starting at offset:" + currentLength);
             } else {
               log.debug("Chukwa adaptor not added, addFile(" + log4jFileName
-                  + ") returned " + adaptorID 
-                  + ", current offset:" + currentLength);
+                  + ") returned, current offset: " + currentLength);
             }
 
           }
@@ -737,4 +739,14 @@ class RollingCalendar extends GregorianCalendar {
     }
     return getTime();
   }
+  
+  @Override
+  public boolean equals(Object o) {
+    return super.equals(o);
+  }
+  
+  @Override
+  public int hashCode() {
+    return super.hashCode();
+  }
 }

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaTaskLogAppender.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaTaskLogAppender.java b/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaTaskLogAppender.java
new file mode 100644
index 0000000..b811757
--- /dev/null
+++ b/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/ChukwaTaskLogAppender.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.chukwa.inputtools.log4j;
+
+import org.apache.hadoop.chukwa.datacollection.controller.ChukwaAgentController;
+import org.apache.hadoop.chukwa.datacollection.controller.ClientFinalizer;
+import org.apache.hadoop.chukwa.util.RecordConstants;
+import org.apache.log4j.Logger;
+import org.apache.log4j.spi.LoggingEvent;
+
+public class ChukwaTaskLogAppender extends 
+    org.apache.hadoop.mapred.TaskLogAppender {
+  static Logger log = Logger.getLogger(ChukwaTaskLogAppender.class);
+  static final String adaptorType = ChukwaAgentController.CharFileTailUTF8NewLineEscaped;
+  ChukwaAgentController chukwaClient;
+  String recordType = null;
+  static boolean chukwaClientIsNull = true;
+  static final Object chukwaLock = new Object();
+  private ClientFinalizer clientFinalizer = null;
+
+  public String getRecordType() {
+    if (recordType != null)
+      return recordType;
+    else
+      return "unknown";
+  }
+
+  public void setRecordType(String recordType) {
+    this.recordType = recordType;
+  }
+
+  public void subAppend(LoggingEvent event) {
+      this.qw.write(RecordConstants.escapeAllButLastRecordSeparator("\n",this.layout.format(event)));
+      // Make sure only one thread can do this
+      // and use the boolean to avoid the first level locking
+      if (chukwaClientIsNull) {
+        synchronized (chukwaLock) {
+          if (chukwaClient == null) {
+            String log4jFileName = getFile();
+            String recordType = getRecordType();
+            long currentLength = 0L;
+            chukwaClient = new ChukwaAgentController();
+            chukwaClientIsNull = false;
+            String adaptorID = chukwaClient.add(ChukwaAgentController.CharFileTailUTF8NewLineEscaped,
+              recordType,currentLength + " " + log4jFileName, currentLength);
+
+            // Setup a shutdownHook for the controller
+            clientFinalizer = new ClientFinalizer(chukwaClient);
+            Runtime.getRuntime().addShutdownHook(clientFinalizer);
+            if (adaptorID != null) {
+              log.debug("Added file tailing adaptor to chukwa agent for file "
+                  + log4jFileName + ", adaptorId:" + adaptorID
+                  + " using this recordType :" + recordType
+                  + ", starting at offset:" + currentLength);
+            } else {
+              log.debug("Chukwa adaptor not added, addFile(" + log4jFileName
+                  + ") returned, current offset:" + currentLength);
+            }
+          }
+        }
+      }
+  }
+}

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/TaskLogAppender.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/TaskLogAppender.java b/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/TaskLogAppender.java
deleted file mode 100644
index cbf2575..0000000
--- a/src/main/java/org/apache/hadoop/chukwa/inputtools/log4j/TaskLogAppender.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.chukwa.inputtools.log4j;
-
-import org.apache.hadoop.chukwa.datacollection.controller.ChukwaAgentController;
-import org.apache.hadoop.chukwa.datacollection.controller.ClientFinalizer;
-import org.apache.hadoop.chukwa.util.RecordConstants;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
-
-public class TaskLogAppender extends 
-    org.apache.hadoop.mapred.TaskLogAppender {
-  static Logger log = Logger.getLogger(TaskLogAppender.class);
-  static final String adaptorType = ChukwaAgentController.CharFileTailUTF8NewLineEscaped;
-  ChukwaAgentController chukwaClient;
-  String recordType = null;
-  static boolean chukwaClientIsNull = true;
-  static final Object chukwaLock = new Object();
-  private ClientFinalizer clientFinalizer = null;
-
-  public String getRecordType() {
-    if (recordType != null)
-      return recordType;
-    else
-      return "unknown";
-  }
-
-  public void setRecordType(String recordType) {
-    this.recordType = recordType;
-  }
-
-  public void subAppend(LoggingEvent event) {
-      this.qw.write(RecordConstants.escapeAllButLastRecordSeparator("\n",this.layout.format(event)));
-      // Make sure only one thread can do this
-      // and use the boolean to avoid the first level locking
-      if (chukwaClientIsNull) {
-        synchronized (chukwaLock) {
-          if (chukwaClient == null) {
-            String log4jFileName = getFile();
-            String recordType = getRecordType();
-            long currentLength = 0L;
-            chukwaClient = new ChukwaAgentController();
-            chukwaClientIsNull = false;
-            String adaptorID = chukwaClient.add(ChukwaAgentController.CharFileTailUTF8NewLineEscaped,
-              recordType,currentLength + " " + log4jFileName, currentLength);
-
-            // Setup a shutdownHook for the controller
-            clientFinalizer = new ClientFinalizer(chukwaClient);
-            Runtime.getRuntime().addShutdownHook(clientFinalizer);
-            if (adaptorID != null) {
-              log.debug("Added file tailing adaptor to chukwa agent for file "
-                  + log4jFileName + ", adaptorId:" + adaptorID
-                  + " using this recordType :" + recordType
-                  + ", starting at offset:" + currentLength);
-            } else {
-              log.debug("Chukwa adaptor not added, addFile(" + log4jFileName
-                  + ") returned " + adaptorID
-                  + ", current offset:" + currentLength);
-            }
-          }
-        }
-      }
-  }
-}

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/DataConfig.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/DataConfig.java b/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/DataConfig.java
index 244a55e..72265d3 100644
--- a/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/DataConfig.java
+++ b/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/DataConfig.java
@@ -30,7 +30,7 @@ import java.io.File;
 import java.io.FilenameFilter;
 
 public class DataConfig {
-  private static Configuration config;
+  private Configuration config;
   final static String MDL_XML = "mdl.xml";
   private Log log = LogFactory.getLog(DataConfig.class);
 

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/ErStreamHandler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/ErStreamHandler.java b/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/ErStreamHandler.java
index 63396aa..892916b 100644
--- a/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/ErStreamHandler.java
+++ b/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/ErStreamHandler.java
@@ -21,6 +21,8 @@ package org.apache.hadoop.chukwa.inputtools.mdl;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.BufferedReader;
+import java.nio.charset.Charset;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -40,7 +42,7 @@ public class ErStreamHandler extends Thread {
 
   public void run() {
     try {
-      InputStreamReader inpStrd = new InputStreamReader(inpStr);
+      InputStreamReader inpStrd = new InputStreamReader(inpStr, Charset.forName("UTF-8"));
       BufferedReader buffRd = new BufferedReader(inpStrd);
       String line = null;
       StringBuffer sb = new StringBuffer();

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/LoaderServer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/LoaderServer.java b/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/LoaderServer.java
index 986b8e9..c492214 100644
--- a/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/LoaderServer.java
+++ b/src/main/java/org/apache/hadoop/chukwa/inputtools/mdl/LoaderServer.java
@@ -21,7 +21,8 @@ package org.apache.hadoop.chukwa.inputtools.mdl;
 
 import java.io.*;
 import java.lang.management.ManagementFactory;
-import java.nio.channels.*;
+import java.nio.charset.Charset;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -29,8 +30,7 @@ public class LoaderServer {
 
   String name;
   private static Log log = LogFactory.getLog(LoaderServer.class);
-  private static FileLock lock = null;
-  private static FileOutputStream pidFileOutput = null;
+  private FileOutputStream pidFileOutput = null;
 
   public LoaderServer(String name) {
     this.name = name;
@@ -46,24 +46,14 @@ public class LoaderServer {
         .append(".pid");
     try {
       File pidFile = new File(pidFilesb.toString());
-
       pidFileOutput = new FileOutputStream(pidFile);
-      pidFileOutput.write(pid.getBytes());
+      pidFileOutput.write(pid.getBytes(Charset.forName("UTF-8")));
       pidFileOutput.flush();
-      FileChannel channel = pidFileOutput.getChannel();
-      LoaderServer.lock = channel.tryLock();
-      if (LoaderServer.lock != null) {
-        log.info("Initlization succeeded...");
-      } else {
-        throw (new IOException());
-      }
     } catch (IOException ex) {
       System.out.println("Initializaiton failed: can not write pid file.");
       log.error("Initialization failed...");
       log.error(ex.getMessage());
-      System.exit(-1);
       throw ex;
-
     }
 
   }
@@ -80,7 +70,6 @@ public class LoaderServer {
       log.error("Delete pid file, No such file or directory: " + pidFileName);
     } else {
       try {
-        lock.release();
         pidFileOutput.close();
       } catch (IOException e) {
         log.error("Unable to release file lock: " + pidFileName);

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/inputtools/plugin/ExecPlugin.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/inputtools/plugin/ExecPlugin.java b/src/main/java/org/apache/hadoop/chukwa/inputtools/plugin/ExecPlugin.java
index 021597f..d10df99 100644
--- a/src/main/java/org/apache/hadoop/chukwa/inputtools/plugin/ExecPlugin.java
+++ b/src/main/java/org/apache/hadoop/chukwa/inputtools/plugin/ExecPlugin.java
@@ -23,6 +23,8 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
 import org.json.simple.JSONObject;
 
 /**
@@ -33,8 +35,8 @@ import org.json.simple.JSONObject;
  * 
  */
 public abstract class ExecPlugin implements IPlugin {
-  public final int statusOK = 100;
-  public final int statusKO = -100;
+  public final static int statusOK = 100;
+  public final static int statusKO = -100;
 
   Process process = null;
 
@@ -107,7 +109,6 @@ class OutputReader extends Thread {
   private Process process = null;
   private Output outputType = null;
   public StringBuilder output = new StringBuilder();
-  public boolean isOk = true;
 
   public OutputReader(Process process, Output outputType) {
     this.process = process;
@@ -127,19 +128,18 @@ class OutputReader extends Thread {
         break;
 
       }
-
-      InputStreamReader isr = new InputStreamReader(is);
-      BufferedReader br = new BufferedReader(isr);
-      while ((line = br.readLine()) != null) {
-        // System.out.println("========>>>>>>>["+line+"]");
-        output.append(line).append("\n");
+      if(is!=null) {
+        InputStreamReader isr = new InputStreamReader(is, Charset.forName("UTF-8"));
+        BufferedReader br = new BufferedReader(isr);
+        while ((line = br.readLine()) != null) {
+          // System.out.println("========>>>>>>>["+line+"]");
+          output.append(line).append("\n");
+        }
+        br.close();
       }
-      br.close();
     } catch (IOException e) {
-      isOk = false;
       e.printStackTrace();
     } catch (Throwable e) {
-      isOk = false;
       e.printStackTrace();
     }
   }

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/rest/bean/ParametersBean.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/rest/bean/ParametersBean.java b/src/main/java/org/apache/hadoop/chukwa/rest/bean/ParametersBean.java
index 00d066b..23daf28 100755
--- a/src/main/java/org/apache/hadoop/chukwa/rest/bean/ParametersBean.java
+++ b/src/main/java/org/apache/hadoop/chukwa/rest/bean/ParametersBean.java
@@ -82,7 +82,7 @@ public class ParametersBean {
     }
     if(json.containsKey("edit")) {
       if(json.get("edit").getClass().equals(String.class)) {
-        edit=(new Integer((String)json.get("edit"))).intValue();          
+        edit=Integer.parseInt((String)json.get("edit"));
       } else if(json.get("edit").getClass().equals(Long.class)) {
         edit=((Long)json.get("edit")).intValue();          
       }

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/rest/bean/ViewBean.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/rest/bean/ViewBean.java b/src/main/java/org/apache/hadoop/chukwa/rest/bean/ViewBean.java
index 3dd63f5..20efde2 100755
--- a/src/main/java/org/apache/hadoop/chukwa/rest/bean/ViewBean.java
+++ b/src/main/java/org/apache/hadoop/chukwa/rest/bean/ViewBean.java
@@ -18,6 +18,7 @@
 
 package org.apache.hadoop.chukwa.rest.bean;
 
+import java.nio.charset.Charset;
 import java.text.ParseException;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -29,7 +30,6 @@ import org.apache.commons.logging.LogFactory;
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
 import org.json.simple.parser.JSONParser;
-
 import org.apache.hadoop.chukwa.util.ExceptionUtil;
 
 @XmlRootElement
@@ -49,7 +49,7 @@ public class ViewBean {
   public ViewBean(byte[] buffer) throws ParseException {
     JSONParser parser = new JSONParser();
     try {
-      JSONObject json = (JSONObject) parser.parse(new String(buffer));
+      JSONObject json = (JSONObject) parser.parse(new String(buffer, Charset.forName("UTF-8")));
       if(json.containsKey("description")) {
         this.description = (String) json.get("description");
       } else {

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/rest/bean/WidgetBean.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/rest/bean/WidgetBean.java b/src/main/java/org/apache/hadoop/chukwa/rest/bean/WidgetBean.java
index bbfd1fa..269720c 100755
--- a/src/main/java/org/apache/hadoop/chukwa/rest/bean/WidgetBean.java
+++ b/src/main/java/org/apache/hadoop/chukwa/rest/bean/WidgetBean.java
@@ -58,10 +58,10 @@ public class WidgetBean {
       this.categories=(String) json.get("categories");
       this.url=(String) json.get("url");
       this.description=(String) json.get("description");
-      if(json.get("refresh").getClass().equals("String")) {
+      if(json.get("refresh").getClass().getName().equals("String")) {
         int refresh = Integer.parseInt((String) json.get("refresh"));
         this.refresh = refresh;
-      } else if(json.get("refresh").getClass().equals("Long")) {
+      } else if(json.get("refresh").getClass().getName().equals("Long")) {
         this.refresh = ((Long) json.get("refresh")).intValue();
       }
       try {

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/rest/resource/ClientTrace.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/rest/resource/ClientTrace.java b/src/main/java/org/apache/hadoop/chukwa/rest/resource/ClientTrace.java
index 1857925..ca97be1 100644
--- a/src/main/java/org/apache/hadoop/chukwa/rest/resource/ClientTrace.java
+++ b/src/main/java/org/apache/hadoop/chukwa/rest/resource/ClientTrace.java
@@ -17,6 +17,7 @@
  */
 package org.apache.hadoop.chukwa.rest.resource;
 
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -71,7 +72,7 @@ public class ClientTrace {
         if(c!=null && c.getData()!=null) {
           String action = "";
           long size = 0;
-          String data = new String(c.getData());
+          String data = new String(c.getData(), Charset.forName("UTF-8"));
           String[] entries = data.split("\n");
           for(String entry : entries) {
             Matcher m = pattern.matcher(entry);

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/AdaptorNamingUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/AdaptorNamingUtils.java b/src/main/java/org/apache/hadoop/chukwa/util/AdaptorNamingUtils.java
index fdb94da..2337405 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/AdaptorNamingUtils.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/AdaptorNamingUtils.java
@@ -18,6 +18,7 @@
 
 package org.apache.hadoop.chukwa.util;
 
+import java.nio.charset.Charset;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 
@@ -28,9 +29,9 @@ public class AdaptorNamingUtils {
     MessageDigest md;
    md = MessageDigest.getInstance("MD5");
 
-    md.update(adaptorClassName.getBytes());
-    md.update(dataType.getBytes());
-    md.update(params.getBytes());
+    md.update(adaptorClassName.getBytes(Charset.forName("UTF-8")));
+    md.update(dataType.getBytes(Charset.forName("UTF-8")));
+    md.update(params.getBytes(Charset.forName("UTF-8")));
     StringBuilder sb = new StringBuilder();
     sb.append("adaptor_");
     byte[] bytes = md.digest();

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/ClassUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/ClassUtils.java b/src/main/java/org/apache/hadoop/chukwa/util/ClassUtils.java
index 833c3a4..11a17ed 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/ClassUtils.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/ClassUtils.java
@@ -93,12 +93,14 @@ public class ClassUtils {
       if (directory.exists()) {
         // Get the list of the files contained in the package
         String[] files = directory.list();
-        for (String file : files) {
-          // we are only interested in .class files
-          if (file.endsWith(".class")) {
-            // removes the .class extension
-            classes.add(Class.forName(pckgname + '.'
+        if (files != null ) {
+          for (String file : files) {
+            // we are only interested in .class files
+            if (file.endsWith(".class")) {
+              // removes the .class extension
+              classes.add(Class.forName(pckgname + '.'
                 + file.substring(0, file.length() - 6)));
+            }
           }
         }
       } else {

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/CopySequenceFile.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/CopySequenceFile.java b/src/main/java/org/apache/hadoop/chukwa/util/CopySequenceFile.java
index 7935256..ba33850 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/CopySequenceFile.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/CopySequenceFile.java
@@ -19,6 +19,8 @@
 
 package org.apache.hadoop.chukwa.util;
 
+import java.io.IOException;
+
 import org.apache.hadoop.chukwa.ChukwaArchiveKey;
 import org.apache.hadoop.chukwa.ChunkImpl;
 import org.apache.hadoop.conf.Configuration;
@@ -93,7 +95,7 @@ public class CopySequenceFile {
     	   e.printStackTrace();
        }
 
-	} catch(Exception e) {
+	} catch(IOException e) {
 	    log.warn("Error during .chukwa file recovery",e);	 
 	    e.printStackTrace();
 	}	

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/CreateRecordFile.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/CreateRecordFile.java b/src/main/java/org/apache/hadoop/chukwa/util/CreateRecordFile.java
index 7f4f93b..0a2ab46 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/CreateRecordFile.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/CreateRecordFile.java
@@ -34,10 +34,12 @@ import org.apache.hadoop.mapred.OutputCollector;
 import org.apache.hadoop.mapred.JobConf;
 import org.apache.hadoop.mapred.Reporter;
 
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.File;
 import java.io.BufferedReader;
-import java.io.FileReader;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
 
 /**
  * Helper class used to create sequence files of Chukwa records
@@ -65,14 +67,15 @@ public class CreateRecordFile {
                                     SequenceFile.CompressionType.NONE, null);
      long lastSeqID = 0;
      String line;
-     BufferedReader reader = new BufferedReader(new FileReader(inputFile));
+     FileInputStream fis = new FileInputStream(inputFile);
+     BufferedReader reader = new BufferedReader(new InputStreamReader(fis, Charset.forName("UTF-8")));
 
      // for each line, create a chunk and an arckive key, pass it to the
      // processor, then write it to the sequence file.  
      while ((line = reader.readLine()) != null) {
 
        ChunkImpl chunk = new ChunkImpl(dataType, streamName,
-         line.length()  + lastSeqID, line.getBytes(), null);
+         line.length()  + lastSeqID, line.getBytes(Charset.forName("UTF-8")), null);
        lastSeqID += line.length();
        chunk.addTag("cluster=\"" + clusterName + "\"");
 
@@ -112,7 +115,7 @@ public class CreateRecordFile {
                                                  ClassNotFoundException,
                                                  IllegalAccessException,
                                                  InstantiationException {
-     if((args.length < 0 && args[0].contains("-h")) || args.length < 2) {
+     if(args.length == 0 || (args.length==1 && args[0].contains("-h"))) {
        usage();
      }
 
@@ -129,7 +132,7 @@ public class CreateRecordFile {
      if (args.length > 4) streamName = args[4];
 
      if (args.length > 5) {
-       Class clazz = null;
+       Class<?> clazz = null;
        try {
          clazz = Class.forName(args[5]);
        }
@@ -165,7 +168,7 @@ public class CreateRecordFile {
    }
 
    public static void usage() {
-     System.out.println("Usage: java " + TempFileUtil.class.toString().split(" ")[1] + " <inputFile> <outputFile> [<clusterName> <dataType> <streamName> <processorClass> [confFile]]");
+     System.out.println("Usage: java " + CreateRecordFile.class.toString().split(" ")[1] + " <inputFile> <outputFile> [<clusterName> <dataType> <streamName> <processorClass> [confFile]]");
      System.out.println("Description: Takes a plain text input file and generates a Hadoop sequence file contaning ChukwaRecordKey,ChukwaRecord entries");
      System.out.println("Parameters: inputFile      - Text input file to read");
      System.out.println("            outputFile     - Sequence file to create");

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/DumpArchive.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/DumpArchive.java b/src/main/java/org/apache/hadoop/chukwa/util/DumpArchive.java
index 9b5802d..743a31c 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/DumpArchive.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/DumpArchive.java
@@ -21,7 +21,9 @@ package org.apache.hadoop.chukwa.util;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.nio.charset.Charset;
 import java.util.*;
+
 import org.apache.hadoop.chukwa.ChukwaArchiveKey;
 import org.apache.hadoop.chukwa.ChunkImpl;
 import org.apache.hadoop.chukwa.conf.ChukwaConfiguration;
@@ -109,7 +111,7 @@ public class DumpArchive {
         if(oldC != null)
           counts.put(entryKey, oldC + 1);
         else
-          counts.put(entryKey, new Integer(1));
+          counts.put(entryKey, Integer.valueOf(1));
         
         if(!summarize) {
           System.out.println("\nTimePartition: " + key.getTimePartition());
@@ -123,7 +125,7 @@ public class DumpArchive {
           System.out.println("Source : " + chunk.getSource());
           System.out.println("Application : " + chunk.getStreamName());
           System.out.println("SeqID : " + chunk.getSeqID());
-          System.out.println("Data : " + new String(chunk.getData()));
+          System.out.println("Data : " + new String(chunk.getData(), Charset.forName("UTF-8")));
         }
       }
     } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/DumpChunks.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/DumpChunks.java b/src/main/java/org/apache/hadoop/chukwa/util/DumpChunks.java
index d07f8d2..552bffe 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/DumpChunks.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/DumpChunks.java
@@ -216,8 +216,8 @@ public class DumpChunks {
         Long b = byteCounts.get(streamName);
         byteCounts.put(streamName, b + chunk.getLength());
       } else {
-        matchCounts.put(streamName, new Integer(1));
-        byteCounts.put(streamName, new Long(chunk.getLength()));
+        matchCounts.put(streamName, Integer.valueOf(1));
+        byteCounts.put(streamName, Long.valueOf(chunk.getLength()));
       }
     }
     

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/Filter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/Filter.java b/src/main/java/org/apache/hadoop/chukwa/util/Filter.java
index 066b65a..b938deb 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/Filter.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/Filter.java
@@ -17,10 +17,12 @@
  */
 package org.apache.hadoop.chukwa.util;
 
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
+
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.hadoop.chukwa.Chunk;
 import org.apache.hadoop.chukwa.extraction.engine.RecordUtil;
@@ -56,7 +58,7 @@ public class Filter {
         String cluster = RecordUtil.getClusterName(chunk);
         return p.matcher(cluster).matches();
       } else if(targ.equals("content")) {
-        String content = new String(chunk.getData());
+        String content = new String(chunk.getData(), Charset.forName("UTF-8"));
         return p.matcher(content).matches();
       } else if(targ.startsWith("tags.")) {
         String tagName = targ.substring("tags.".length());

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/HierarchyDataType.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/HierarchyDataType.java b/src/main/java/org/apache/hadoop/chukwa/util/HierarchyDataType.java
index c9ea8e5..5a6a68b 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/HierarchyDataType.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/HierarchyDataType.java
@@ -145,7 +145,7 @@ public class HierarchyDataType {
       results = datasource.replaceFirst("/", "");
     }
     if (results.endsWith("/")) {
-      results = results.substring(0, -1);
+      results = results.substring(0, results.length()-1);
     }
     return results;
   }
@@ -171,4 +171,4 @@ public class HierarchyDataType {
   public static String getHierarchyDataTypeDirectory(String datasource) {
     return datasource.replace(CHUKWA_CONSTANT.HIERARCHY_CONNECTOR, "/");
   }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/TempFileUtil.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/TempFileUtil.java b/src/main/java/org/apache/hadoop/chukwa/util/TempFileUtil.java
index d6d22d6..41b127d 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/TempFileUtil.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/TempFileUtil.java
@@ -20,8 +20,10 @@ package org.apache.hadoop.chukwa.util;
 
 
 import java.io.*;
+import java.nio.charset.Charset;
 import java.util.Calendar;
 import java.util.Random;
+
 import org.apache.hadoop.chukwa.ChukwaArchiveKey;
 import org.apache.hadoop.chukwa.ChunkImpl;
 import org.apache.hadoop.conf.Configuration;
@@ -34,15 +36,21 @@ public class TempFileUtil {
   public static File makeBinary(int length) throws IOException {
     File tmpOutput = new File(System.getProperty("test.build.data", "/tmp"),
         "chukwaTest");
-    FileOutputStream fos = new FileOutputStream(tmpOutput);
-    Random r = new Random();
-    byte[] randomData = new byte[length];
-    r.nextBytes(randomData);
-    randomData[length - 1] = '\n';// need data to end with \n since default
+    FileOutputStream fos = null;
+    try {
+      fos = new FileOutputStream(tmpOutput);
+      Random r = new Random();
+      byte[] randomData = new byte[length];
+      r.nextBytes(randomData);
+      randomData[length - 1] = '\n';// need data to end with \n since default
                                   // tailer uses that
-    fos.write(randomData);
-    fos.flush();
-    fos.close();
+      fos.write(randomData);
+      fos.flush();
+    } finally {
+      if(fos != null) {
+        fos.close();
+      }
+    }
     return tmpOutput;
   }
   
@@ -58,7 +66,7 @@ public class TempFileUtil {
           + r.nextInt() + "\n";
        
       ChunkImpl c = new ChunkImpl("HadoopLogProcessor", "test",
-      line.length()  + lastSeqID, line.getBytes(), null);
+      line.length()  + lastSeqID, line.getBytes(Charset.forName("UTF-8")), null);
       lastSeqID += line.length();
       c.addTag("cluster=\"foocluster\"");
       return c;
@@ -99,8 +107,7 @@ public class TempFileUtil {
    public static File makeTestFile(String name, int size,File baseDir) throws IOException {
      File tmpOutput = new File(baseDir, name);
      FileOutputStream fos = new FileOutputStream(tmpOutput);
-
-     PrintWriter pw = new PrintWriter(fos);
+     PrintWriter pw = new PrintWriter(new OutputStreamWriter(fos, Charset.forName("UTF-8")));
      for (int i = 0; i < size; ++i) {
        pw.print(i + " ");
        pw.println("abcdefghijklmnopqrstuvwxyz");

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/chukwa/util/XssFilter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/chukwa/util/XssFilter.java b/src/main/java/org/apache/hadoop/chukwa/util/XssFilter.java
index 0fcaba5..1cf1267 100644
--- a/src/main/java/org/apache/hadoop/chukwa/util/XssFilter.java
+++ b/src/main/java/org/apache/hadoop/chukwa/util/XssFilter.java
@@ -18,14 +18,7 @@
 
 package org.apache.hadoop.chukwa.util;
 
-import java.util.Enumeration;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
-import java.util.List;
-import java.util.Map;
-import java.util.ArrayList;
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -33,12 +26,9 @@ import org.jsoup.Jsoup;
 import org.jsoup.safety.Whitelist;
 import org.owasp.esapi.ESAPI;
 
-import javax.ws.rs.core.MultivaluedMap;
-
 public class XssFilter {
     private HttpServletRequest request = null;
     private static Log LOG = LogFactory.getLog(XssFilter.class);
-    private HttpSession session = null;
 
     public XssFilter() {
     }
@@ -74,25 +64,6 @@ public class XssFilter {
     }
 
     /**
-     * Apply the XSS filter to the parameters
-     * @param parameters
-     * @param type
-     */
-    private void cleanParams( MultivaluedMap<String, String> parameters ) {
-      for( Map.Entry<String, List<String>> params : parameters.entrySet() ) {
-        String key = params.getKey();
-        List<String> values = params.getValue();
- 
-        List<String> cleanValues = new ArrayList<String>();
-        for( String value : values ) {
-          cleanValues.add( filter( value ) );
-        }
- 
-        parameters.put( key, cleanValues );
-      }
-    }
- 
-    /**
      * Strips any potential XSS threats out of the value
      * @param value
      * @return

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/main/java/org/apache/hadoop/metrics/spi/AbstractMetricsContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/hadoop/metrics/spi/AbstractMetricsContext.java b/src/main/java/org/apache/hadoop/metrics/spi/AbstractMetricsContext.java
index 9e2100e..6ab1e39 100644
--- a/src/main/java/org/apache/hadoop/metrics/spi/AbstractMetricsContext.java
+++ b/src/main/java/org/apache/hadoop/metrics/spi/AbstractMetricsContext.java
@@ -297,14 +297,12 @@ public abstract class AbstractMetricsContext implements MetricsContext {
    *  Emits the records.
    */
   private synchronized void emitRecords() throws IOException {
-    for (String recordName : bufferedData.keySet()) {
-      RecordMap recordMap = bufferedData.get(recordName);
-      synchronized (recordMap) {
-        Set<Entry<TagMap, MetricMap>> entrySet = recordMap.entrySet ();
-        for (Entry<TagMap, MetricMap> entry : entrySet) {
-          OutputRecord outRec = new OutputRecord(entry.getKey(), entry.getValue());
-          emitRecord(contextName, recordName, outRec);
-        }
+    for (Entry<String, RecordMap> record : bufferedData.entrySet()) {
+      String recordName = record.getKey();
+      RecordMap recordMap = record.getValue();
+      for (Entry<TagMap, MetricMap> entry : record.getValue().entrySet()) {
+        OutputRecord outRec = new OutputRecord(entry.getKey(), entry.getValue());
+        emitRecord(contextName, recordName, outRec);
       }
     }
     flush();

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/test/java/org/apache/hadoop/chukwa/ChunkImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/hadoop/chukwa/ChunkImplTest.java b/src/test/java/org/apache/hadoop/chukwa/ChunkImplTest.java
index c1cf37f..94e626d 100644
--- a/src/test/java/org/apache/hadoop/chukwa/ChunkImplTest.java
+++ b/src/test/java/org/apache/hadoop/chukwa/ChunkImplTest.java
@@ -36,6 +36,7 @@ public class ChunkImplTest extends TestCase {
       DataInputBuffer ib = new DataInputBuffer();
       ib.reset(ob.getData(), c.getSerializedSizeEstimate());
       int version = ib.readInt();
+      ib.close();
       assertEquals(version, ChunkImpl.PROTOCOL_VERSION);
     } catch (IOException e) {
       e.printStackTrace();

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/test/java/org/apache/hadoop/chukwa/datacollection/adaptor/TestDirTailingAdaptor.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/hadoop/chukwa/datacollection/adaptor/TestDirTailingAdaptor.java b/src/test/java/org/apache/hadoop/chukwa/datacollection/adaptor/TestDirTailingAdaptor.java
index 5748c9b..f72c06d 100644
--- a/src/test/java/org/apache/hadoop/chukwa/datacollection/adaptor/TestDirTailingAdaptor.java
+++ b/src/test/java/org/apache/hadoop/chukwa/datacollection/adaptor/TestDirTailingAdaptor.java
@@ -24,7 +24,6 @@ import java.util.Map;
 import org.apache.hadoop.chukwa.datacollection.agent.ChukwaAgent;
 import org.apache.hadoop.conf.*;
 import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
 import junit.framework.TestCase;
 
 public class TestDirTailingAdaptor extends TestCase {

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/test/java/org/apache/hadoop/chukwa/datacollection/agent/rest/TestAdaptorController.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/hadoop/chukwa/datacollection/agent/rest/TestAdaptorController.java b/src/test/java/org/apache/hadoop/chukwa/datacollection/agent/rest/TestAdaptorController.java
index fa2d5f1..fda08c4 100644
--- a/src/test/java/org/apache/hadoop/chukwa/datacollection/agent/rest/TestAdaptorController.java
+++ b/src/test/java/org/apache/hadoop/chukwa/datacollection/agent/rest/TestAdaptorController.java
@@ -17,6 +17,7 @@
  */
 package org.apache.hadoop.chukwa.datacollection.agent.rest;
 
+import junit.framework.Assert;
 import junit.framework.TestCase;
 
 import org.apache.commons.logging.Log;
@@ -35,6 +36,8 @@ import javax.servlet.ServletException;
 import javax.servlet.Servlet;
 import javax.ws.rs.core.MediaType;
 
+import java.io.File;
+import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 
@@ -55,6 +58,19 @@ public class TestAdaptorController extends TestCase {
   String adaptor;
 
   protected void setUp() throws Exception {
+    String path = System.getenv("CHUKWA_LOG_DIR");
+    String[] checkpointNames = new File(path).list(new FilenameFilter() {
+      public boolean accept(File dir, String name) {
+        String checkPointBaseName = "chukwa_agent_checkpoint";
+        return name.startsWith(checkPointBaseName);
+      }
+    });
+    for(String cpn : checkpointNames) {
+      File checkpoint = new File(path+"/"+cpn);
+      if(!checkpoint.delete()) {
+        Assert.fail("Fail to clean up existing check point file: "+ cpn);
+      }
+    }
     agent = ChukwaAgent.getAgent();
     agent.start();
 

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestDelayedAcks.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestDelayedAcks.java b/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestDelayedAcks.java
index b067f16..fd0b512 100644
--- a/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestDelayedAcks.java
+++ b/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestDelayedAcks.java
@@ -18,14 +18,12 @@
 package org.apache.hadoop.chukwa.datacollection.collector;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.*;
 import java.util.regex.*;
 import org.apache.hadoop.chukwa.*;
 import org.apache.hadoop.chukwa.datacollection.adaptor.AdaptorShutdownPolicy;
 import org.apache.hadoop.chukwa.datacollection.adaptor.TestDirTailingAdaptor;
 import org.apache.hadoop.chukwa.datacollection.adaptor.filetailer.FileTailingAdaptor;
-import org.apache.hadoop.chukwa.datacollection.adaptor.filetailer.TestRawAdaptor;
 import org.apache.hadoop.chukwa.datacollection.agent.AdaptorResetThread;
 import org.apache.hadoop.chukwa.datacollection.agent.ChukwaAgent;
 import org.apache.hadoop.chukwa.datacollection.collector.servlet.CommitCheckServlet;

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestFailedCollectorAck.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestFailedCollectorAck.java b/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestFailedCollectorAck.java
index de34563..ad3be6d 100644
--- a/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestFailedCollectorAck.java
+++ b/src/test/java/org/apache/hadoop/chukwa/datacollection/collector/TestFailedCollectorAck.java
@@ -51,7 +51,7 @@ public class TestFailedCollectorAck extends TestCase {
     Configuration conf = new Configuration();
 
     String outputDirectory = TestDelayedAcks.buildConf(conf);
-    SeqFileWriter.ENABLE_ROTATION_ON_CLOSE = false;
+    SeqFileWriter.setEnableRotationOnClose(false);
     File sinkA = new File(outputDirectory, "chukwa_sink_A");
     sinkA.mkdir();
     File sinkB = new File(outputDirectory, "chukwa_sink_B");
@@ -83,7 +83,7 @@ public class TestFailedCollectorAck extends TestCase {
     Thread.sleep(10 * 1000);
     collector1_s.stop();
     Thread.sleep(10 * 1000);
-    SeqFileWriter.ENABLE_ROTATION_ON_CLOSE = true;
+    SeqFileWriter.setEnableRotationOnClose(true);
 
     String[] stat = agent.getAdaptorList().get("adaptor_constSend").split(" ");
     long bytesCommitted = Long.valueOf(stat[stat.length -1]);

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/test/java/org/apache/hadoop/chukwa/datacollection/writer/TestHBaseWriter.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/hadoop/chukwa/datacollection/writer/TestHBaseWriter.java b/src/test/java/org/apache/hadoop/chukwa/datacollection/writer/TestHBaseWriter.java
index 1623301..10769b8 100644
--- a/src/test/java/org/apache/hadoop/chukwa/datacollection/writer/TestHBaseWriter.java
+++ b/src/test/java/org/apache/hadoop/chukwa/datacollection/writer/TestHBaseWriter.java
@@ -17,8 +17,6 @@
  */
 package org.apache.hadoop.chukwa.datacollection.writer;
 
-
-import java.io.IOException;
 import java.util.ArrayList;
 
 import junit.framework.Assert;
@@ -32,11 +30,10 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
 import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.LocalHBaseCluster;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HTable;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.log4j.Logger;
 
@@ -53,7 +50,6 @@ public class TestHBaseWriter extends TestCase{
   private byte[] table = Bytes.toBytes("Test");
   private byte[] test = Bytes.toBytes("1234567890 Key Value");
   private ChukwaConfiguration cc;
-  private LocalHBaseCluster cluster;
   long timestamp = 1234567890;
   
   public TestHBaseWriter() {
@@ -93,7 +89,7 @@ public class TestHBaseWriter extends TestCase{
       if(hbw.add(chunks)!=ChukwaWriter.COMMIT_OK) {
         Assert.fail("Commit status is not OK.");
       }
-      HTable testTable = new HTable(conf, table);
+      Table testTable = util.getConnection().getTable(TableName.valueOf(table));
       ResultScanner scanner = testTable.getScanner(columnFamily, qualifier);
       for(Result res : scanner) {
         Assert.assertEquals(new String(expectedValue), new String(res.getValue(columnFamily, qualifier)));

http://git-wip-us.apache.org/repos/asf/chukwa/blob/7f662e8c/src/test/resources/tasklog-log4j.properties
----------------------------------------------------------------------
diff --git a/src/test/resources/tasklog-log4j.properties b/src/test/resources/tasklog-log4j.properties
index 1968788..56b83a8 100644
--- a/src/test/resources/tasklog-log4j.properties
+++ b/src/test/resources/tasklog-log4j.properties
@@ -14,7 +14,7 @@
 # limitations under the License.
 
 log4j.rootLogger=INFO, R
-log4j.appender.R=org.apache.hadoop.chukwa.inputtools.log4j.TaskLogAppender
+log4j.appender.R=org.apache.hadoop.chukwa.inputtools.log4j.ChukwaTaskLogAppender
 log4j.appender.R.recordType=TaskLog
 log4j.appender.R.taskId=attempt_200905220200_13470_r_000000_0
 log4j.appender.R.totalLogFileSize=5000