Index: src/java/org/apache/nutch/indexer/DeleteDuplicates.java
===================================================================
--- src/java/org/apache/nutch/indexer/DeleteDuplicates.java	(revision 588363)
+++ src/java/org/apache/nutch/indexer/DeleteDuplicates.java	(working copy)
@@ -174,7 +174,7 @@
         this.index = index;
       }
 
-      public boolean next(Writable key, Writable value)
+      public boolean next(WritableComparable key, Writable value)
         throws IOException {
         
         // skip empty indexes
Index: src/java/org/apache/nutch/indexer/FsDirectory.java
===================================================================
--- src/java/org/apache/nutch/indexer/FsDirectory.java	(revision 588363)
+++ src/java/org/apache/nutch/indexer/FsDirectory.java	(working copy)
@@ -118,19 +118,9 @@
   public Lock makeLock(final String name) {
     return new Lock() {
       public boolean obtain() {
-        try {
-          fs.lock(new Path(directory, name), false);
-          return true;
-        } catch (IOException e) {
-          return false;
-        }
+        return true;
       }
       public void release() {
-        try {
-          fs.release(new Path(directory, name));
-        } catch (IOException e) {
-          throw new RuntimeException(e);
-        }
       }
       public boolean isLocked() {
         throw new UnsupportedOperationException();
Index: src/java/org/apache/nutch/segment/SegmentMerger.java
===================================================================
--- src/java/org/apache/nutch/segment/SegmentMerger.java	(revision 588363)
+++ src/java/org/apache/nutch/segment/SegmentMerger.java	(working copy)
@@ -127,13 +127,10 @@
     
     @Override
     public RecordReader getRecordReader(InputSplit split,
-        JobConf job, Reporter reporter) {
+      JobConf job, Reporter reporter) {
 
-      try{
-        reporter.setStatus(split.toString());
-      } catch (IOException e) {
-        throw new RuntimeException("Cannot set status for reported:", e);
-      }
+      reporter.setStatus(split.toString());
+
       // find part name
       SegmentPart segmentPart;
       final String spString;
@@ -148,7 +145,7 @@
         return new SequenceFileRecordReader(job, (FileSplit)split) {
           
           @Override
-          public synchronized boolean next(Writable key, Writable value) throws IOException {
+          public synchronized boolean next(WritableComparable key, Writable value) throws IOException {
             LOG.debug("Running OIF.next()");
             
             MetaWrapper wrapper = (MetaWrapper) value;
Index: src/java/org/apache/nutch/crawl/Injector.java
===================================================================
--- src/java/org/apache/nutch/crawl/Injector.java	(revision 588363)
+++ src/java/org/apache/nutch/crawl/Injector.java	(working copy)
@@ -172,7 +172,7 @@
     CrawlDb.install(mergeJob, crawlDb);
 
     // clean up
-    FileSystem fs = new JobClient(getConf()).getFs();
+    FileSystem fs = new JobClient(new NutchJob(getConf())).getFs();
     fs.delete(tempDir);
     if (LOG.isInfoEnabled()) { LOG.info("Injector: done"); }
 
Index: src/java/org/apache/nutch/util/StringUtil.java
===================================================================
--- src/java/org/apache/nutch/util/StringUtil.java	(revision 587562)
+++ src/java/org/apache/nutch/util/StringUtil.java	(working copy)
@@ -17,6 +17,9 @@
 
 package org.apache.nutch.util;
 
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
 /**
  * A collection of String processing utility methods. 
  */
@@ -125,6 +128,19 @@
   public static boolean isEmpty(String str) {
     return (str == null) || (str.equals(""));
   }
+  
+  /**
+   * Make a string representation of the exception.
+   * @param e The exception to stringify
+   * @return A string with exception name and call stack.
+   */
+  public static String stringifyException(Throwable e) {
+    StringWriter stm = new StringWriter();
+    PrintWriter wrt = new PrintWriter(stm);
+    e.printStackTrace(wrt);
+    wrt.close();
+    return stm.toString();
+  }
 
   public static void main(String[] args) {
     if (args.length != 1)
