Remove TransformException
diff --git a/src/com/google/enterprise/adaptor/DocumentHandler.java b/src/com/google/enterprise/adaptor/DocumentHandler.java
index ec71b75..3da3c31 100644
--- a/src/com/google/enterprise/adaptor/DocumentHandler.java
+++ b/src/com/google/enterprise/adaptor/DocumentHandler.java
@@ -885,11 +885,7 @@
       Map<String, String> params = new HashMap<String, String>();
       params.put("DocId", docId.getUniqueId());
       params.put("Content-Type", contentType);
-      try {
-        transform.transform(metadata, params);
-      } catch (TransformException e) {
-        throw new RuntimeException("transform failed", e);
-      }
+      transform.transform(metadata, params);
       contentType = params.get("Content-Type");
     }
 
diff --git a/src/com/google/enterprise/adaptor/DocumentTransform.java b/src/com/google/enterprise/adaptor/DocumentTransform.java
index 02b1559..5269e44 100644
--- a/src/com/google/enterprise/adaptor/DocumentTransform.java
+++ b/src/com/google/enterprise/adaptor/DocumentTransform.java
@@ -27,10 +27,6 @@
   /**
    * Any changes to {@code metadata} and {@code params} will be
    * passed on to subsequent transforms. This method must be thread-safe.
-   *
-   * @throws TransformException
-   * @throws IOException
    */
-  public void transform(Metadata metadata, Map<String, String> params)
-      throws TransformException;
+  public void transform(Metadata metadata, Map<String, String> params);
 }
diff --git a/src/com/google/enterprise/adaptor/TransformException.java b/src/com/google/enterprise/adaptor/TransformException.java
deleted file mode 100644
index 312c0d3..0000000
--- a/src/com/google/enterprise/adaptor/TransformException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2011 Google Inc. All Rights Reserved.
-//
-// Licensed 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 com.google.enterprise.adaptor;
-
-/**
- * Exception produced by {@link DocumentTransform}s and {@link
- * DocumentTransform} in the case of a fatal error.
- */
-public class TransformException extends Exception {
-  /**
-   * Constructs a new exception with a detailed message. The exception's cause
-   * is left uninitialized.
-   */
-  public TransformException(String message) {
-    super(message);
-  }
-
-  /**
-   * Constructs a new exception with a detailed message and a cause initialized
-   * to {@code cause}.
-   */
-  public TransformException(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-  /**
-   * Constructs a new exception with a {@code null} message and a cause
-   * initalized to {@code cause}.
-   */
-  public TransformException(Throwable cause) {
-    super(cause);
-  }
-}
diff --git a/src/com/google/enterprise/adaptor/TransformPipeline.java b/src/com/google/enterprise/adaptor/TransformPipeline.java
index f9f6ecb..3c7edc0 100644
--- a/src/com/google/enterprise/adaptor/TransformPipeline.java
+++ b/src/com/google/enterprise/adaptor/TransformPipeline.java
@@ -48,8 +48,7 @@
   /**
    * Transform {@code metadata}.
    */
-  public void transform(Metadata metadata, Map<String, String> params)
-      throws TransformException {
+  public void transform(Metadata metadata, Map<String, String> params) {
     if (transformList.isEmpty()) {
       return;
     }
@@ -62,8 +61,9 @@
       DocumentTransform transform = transformList.get(i);
       try {
         transform.transform(metadataInTransit, paramsInTransit);
-      } catch (TransformException e) {
-        throw new TransformException("Aborting " + names.get(i), e);
+      } catch (RuntimeException e) {
+        throw new RuntimeException(
+            "Exception during transform " + names.get(i), e);
       }
     }
 
diff --git a/src/com/google/enterprise/adaptor/prebuilt/CommandLineTransform.java b/src/com/google/enterprise/adaptor/prebuilt/CommandLineTransform.java
index 85d81f8..d798fea 100644
--- a/src/com/google/enterprise/adaptor/prebuilt/CommandLineTransform.java
+++ b/src/com/google/enterprise/adaptor/prebuilt/CommandLineTransform.java
@@ -19,7 +19,6 @@
 import com.google.enterprise.adaptor.DocumentTransform;
 import com.google.enterprise.adaptor.IOHelper;
 import com.google.enterprise.adaptor.Metadata;
-import com.google.enterprise.adaptor.TransformException;
 
 import java.io.*;
 import java.nio.charset.Charset;
@@ -81,8 +80,7 @@
   }
 
   @Override
-  public void transform(Metadata metadata, Map<String, String> params)
-      throws TransformException {
+  public void transform(Metadata metadata, Map<String, String> params) {
     if (transformCommand == null) {
       throw new NullPointerException("transformCommand must not be null");
     }
@@ -106,7 +104,8 @@
       try {
         command.exec(commandLine, workingDirectory);
       } catch (InterruptedException ex) {
-        throw new TransformException(ex);
+        Thread.currentThread().interrupt();
+        throw new RuntimeException(ex);
       }
 
       int exitCode = command.getReturnCode();
@@ -114,7 +113,7 @@
       // Handle stderr
       if (exitCode != 0) {
         String errorOutput = new String(command.getStderr(), charset);
-        throw new TransformException("Exit code " + exitCode + ". Stderr: "
+        throw new RuntimeException("Exit code " + exitCode + ". Stderr: "
                                      + errorOutput);
       }
 
@@ -129,7 +128,7 @@
         params.putAll(readMapFromFile(paramsFile));
       }
     } catch (IOException ioe) {
-      throw new TransformException(ioe);
+      throw new RuntimeException(ioe);
     } finally {
       if (metadataFile != null) {
         metadataFile.delete();
@@ -141,20 +140,20 @@
   }
 
   private File writeMapToTempFile(Map<String, String> map)
-      throws IOException, TransformException {
+      throws IOException {
     return writeIterableToTempFile(map.entrySet());
   }
 
   private File writeIterableToTempFile(Iterable<Map.Entry<String, String>> it)
-      throws IOException, TransformException {
+      throws IOException {
     StringBuilder sb = new StringBuilder();
     for (Map.Entry<String, String> me : it) {
       if (me.getKey().contains("\0")) {
-        throw new TransformException("Key cannot contain the null character: "
+        throw new RuntimeException("Key cannot contain the null character: "
                                      + me.getKey());
       }
       if (me.getValue().contains("\0")) {
-        throw new TransformException("Value for key '" + me.getKey()
+        throw new RuntimeException("Value for key '" + me.getKey()
             + "' cannot contain the null " + "character: " + me.getKey());
       }
       sb.append(me.getKey()).append('\0');
diff --git a/test/com/google/enterprise/adaptor/TransformPipelineTest.java b/test/com/google/enterprise/adaptor/TransformPipelineTest.java
index 611a70b..f9dd295 100644
--- a/test/com/google/enterprise/adaptor/TransformPipelineTest.java
+++ b/test/com/google/enterprise/adaptor/TransformPipelineTest.java
@@ -30,7 +30,7 @@
   public ExpectedException thrown = ExpectedException.none();
 
   @Test
-  public void testNoOpEmpty() throws IOException, TransformException {
+  public void testNoOpEmpty() throws IOException {
     TransformPipeline pipeline = new TransformPipeline(
         Collections.<DocumentTransform>emptyList(), Collections.<String>emptyList());
     Metadata metadata = new Metadata();
@@ -42,7 +42,7 @@
   }
 
   @Test
-  public void testNoOpWithInput() throws IOException, TransformException {
+  public void testNoOpWithInput() throws IOException {
     TransformPipeline pipeline = new TransformPipeline(
         Collections.<DocumentTransform>emptyList(), Collections.<String>emptyList());
     Metadata metadata = new Metadata();
@@ -58,7 +58,7 @@
   }
 
   @Test
-  public void testAddMetadataAndParams() throws IOException, TransformException {
+  public void testAddMetadataAndParams() throws IOException {
     Metadata metadata = new Metadata();
     metadata.add("key1", "value1");
     Map<String, String> params = new HashMap<String, String>();
@@ -67,7 +67,7 @@
     List<DocumentTransform> transforms = new ArrayList<DocumentTransform>();
     transforms.add(new DocumentTransform() {
         @Override
-        public void transform(Metadata m, Map<String, String> p) throws TransformException {
+        public void transform(Metadata m, Map<String, String> p) {
           m.set("newMeta", "metaValue");
           p.put("newKey", "newValue");
         }
@@ -86,19 +86,17 @@
 
   private static class ErroringTransform implements DocumentTransform {
     @Override
-    public void transform(Metadata metadata, Map<String, String> p)
-        throws TransformException {
+    public void transform(Metadata metadata, Map<String, String> p) {
       // Do some work, but don't complete.
       metadata.set("trash", "value");
       p.put("more trash", "values");
-      throw new TransformException("test exception");
+      throw new RuntimeException("test exception");
     }
   }
 
   private static class IncrementTransform implements DocumentTransform {
     @Override
-    public void transform(Metadata metadata, Map<String, String> p)
-        throws TransformException {
+    public void transform(Metadata metadata, Map<String, String> p) {
       metadata.set("int", "" + (Integer.parseInt(metadata.getOneValue("int")) + 1));
       p.put("int", "" + (Integer.parseInt(p.get("int")) + 1));
     }
@@ -112,15 +110,14 @@
     }
 
     @Override
-    public void transform(Metadata metadata, Map<String, String> p)
-        throws TransformException {
+    public void transform(Metadata metadata, Map<String, String> p) {
       metadata.set("int", "" + (Integer.parseInt(metadata.getOneValue("int")) * factor));
       p.put("int", "" + (Integer.parseInt(p.get("int")) * factor));
     }
   }
 
   @Test
-  public void testTransform() throws IOException, TransformException {
+  public void testTransform() throws IOException {
     TransformPipeline pipeline = new TransformPipeline(
         Arrays.asList(new IncrementTransform()), Arrays.asList("it"));
     Metadata metadata = new Metadata();
@@ -137,7 +134,7 @@
   }
 
   @Test
-  public void testMultipleTransforms() throws IOException, TransformException {
+  public void testMultipleTransforms() throws IOException {
     TransformPipeline pipeline = new TransformPipeline(Arrays.asList(
         new IncrementTransform(), new ProductTransform(2)),
         Arrays.asList("it", "pt"));
@@ -156,7 +153,7 @@
   }
 
   @Test
-  public void testTransformErrorFatal() throws IOException, TransformException {
+  public void testTransformErrorFatal() throws IOException {
     TransformPipeline pipeline = new TransformPipeline(Arrays.asList(
         new IncrementTransform(), new ErroringTransform()),
         Arrays.asList("it", "et"));
@@ -165,7 +162,7 @@
     Map<String, String> params = new HashMap<String, String>();
     params.put("int", "1");
 
-    thrown.expect(TransformException.class);
+    thrown.expect(RuntimeException.class);
     try {
       pipeline.transform(metadata, params);
     } finally {
diff --git a/test/com/google/enterprise/adaptor/prebuilt/CommandLineTransformTest.java b/test/com/google/enterprise/adaptor/prebuilt/CommandLineTransformTest.java
index e9e95fd..9979508 100644
--- a/test/com/google/enterprise/adaptor/prebuilt/CommandLineTransformTest.java
+++ b/test/com/google/enterprise/adaptor/prebuilt/CommandLineTransformTest.java
@@ -18,7 +18,6 @@
 
 import com.google.enterprise.adaptor.Metadata;
 import com.google.enterprise.adaptor.TestHelper;
-import com.google.enterprise.adaptor.TransformException;
 
 import org.junit.Test;
 
@@ -31,7 +30,7 @@
  */
 public class CommandLineTransformTest {
   @Test
-  public void testSed() throws IOException, TransformException {
+  public void testSed() throws IOException {
     TestHelper.assumeOsIsNotWindows();
 
     ByteArrayOutputStream contentOut = new ByteArrayOutputStream();
@@ -52,7 +51,7 @@
   }
 
   @Test
-  public void testSedWithMetadata() throws IOException, TransformException {
+  public void testSedWithMetadata() throws IOException {
     TestHelper.assumeOsIsNotWindows();
 
     Metadata metadata = new Metadata();