Fix up unthrown Exceptions

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/sanselan/trunk@1221437 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/commons/sanselan/ImageDump.java b/src/main/java/org/apache/commons/sanselan/ImageDump.java
index 81ba7ad..7ecf92e 100644
--- a/src/main/java/org/apache/commons/sanselan/ImageDump.java
+++ b/src/main/java/org/apache/commons/sanselan/ImageDump.java
@@ -20,7 +20,6 @@
 import java.awt.color.ICC_ColorSpace;
 import java.awt.color.ICC_Profile;
 import java.awt.image.BufferedImage;
-import java.io.IOException;
 
 import org.apache.commons.sanselan.icc.IccProfileInfo;
 import org.apache.commons.sanselan.icc.IccProfileParser;
@@ -54,7 +53,6 @@
     }
 
     public void dumpColorSpace(String prefix, ColorSpace cs)
-            throws ImageReadException, IOException
     {
         System.out.println(prefix + ": " + "type: " + cs.getType() + " ("
                 + colorSpaceTypeToName(cs) + ")");
@@ -77,13 +75,12 @@
         info.dump(prefix);
     }
 
-    public void dump(BufferedImage src) throws ImageReadException, IOException
+    public void dump(BufferedImage src)
     {
         dump("", src);
     }
 
     public void dump(String prefix, BufferedImage src)
-            throws ImageReadException, IOException
     {
         System.out.println(prefix + ": " + "dump");
         dumpColorSpace(prefix, src.getColorModel().getColorSpace());
diff --git a/src/main/java/org/apache/commons/sanselan/ImageInfo.java b/src/main/java/org/apache/commons/sanselan/ImageInfo.java
index ed9eb97..0d83385 100644
--- a/src/main/java/org/apache/commons/sanselan/ImageInfo.java
+++ b/src/main/java/org/apache/commons/sanselan/ImageInfo.java
@@ -16,7 +16,6 @@
  */
 package org.apache.commons.sanselan;
 
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.util.ArrayList;
@@ -311,7 +310,6 @@
     }
 
     public void toString(PrintWriter pw, String prefix)
-            throws ImageReadException, IOException
     {
         pw.println("Format Details: " + formatDetails);
 
diff --git a/src/main/java/org/apache/commons/sanselan/ImageParser.java b/src/main/java/org/apache/commons/sanselan/ImageParser.java
index aaec4ae..772e772 100644
--- a/src/main/java/org/apache/commons/sanselan/ImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/ImageParser.java
@@ -134,6 +134,10 @@
         return getImageInfo(new ByteSourceFile(file), params);
     }
 
+    /**
+     * @throws ImageReadException may be thrown by sub-classes
+     * @throws IOException  may be thrown by sub-classes
+     */
     public FormatCompliance getFormatCompliance(ByteSource byteSource)
             throws ImageReadException, IOException
     {
@@ -241,6 +245,9 @@
         return getBufferedImage(new ByteSourceFile(file), params);
     }
 
+    /**
+     * @throws IOException may be thrown by sub-classes 
+     */
     public void writeImage(BufferedImage src, OutputStream os, Map params)
             throws ImageWriteException, IOException
     {
@@ -355,6 +362,10 @@
         return sw.toString();
     }
 
+    /**
+     * @throws ImageReadException  may be thrown by sub-classes
+     * @throws IOException may be thrown by sub-classes
+     */
     public boolean dumpImageFile(PrintWriter pw, ByteSource byteSource)
             throws ImageReadException, IOException
     {
diff --git a/src/main/java/org/apache/commons/sanselan/common/BasicCParser.java b/src/main/java/org/apache/commons/sanselan/common/BasicCParser.java
index 5608795..33c2e86 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BasicCParser.java
+++ b/src/main/java/org/apache/commons/sanselan/common/BasicCParser.java
@@ -258,7 +258,6 @@
     }
 
     public static String[] tokenizeRow(String row)
-            throws ImageReadException
     {
         String[] tokens = row.split("[ \t]");
         int numLiveTokens = 0;
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java b/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java
index a2638a7..ebbff62 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java
+++ b/src/main/java/org/apache/commons/sanselan/common/BinaryFileFunctions.java
@@ -41,7 +41,7 @@
     }
 
     protected final void readRandomBytes(InputStream is)
-            throws ImageReadException, IOException
+            throws IOException
     {
 
         for (int counter = 0; counter < 100; counter++)
@@ -106,7 +106,7 @@
     }
 
     public final byte[] readBytes(InputStream is, int count)
-            throws ImageReadException, IOException
+            throws IOException
     {
         byte result[] = new byte[count];
         for (int i = 0; i < count; i++)
@@ -192,7 +192,7 @@
     }
 
     public final byte readByte(String name, InputStream is, String exception)
-            throws ImageReadException, IOException
+            throws IOException
     {
         int result = is.read();
 
@@ -401,7 +401,7 @@
     }
 
     protected final byte[] convertRationalArrayToByteArray(
-            RationalNumber numbers[], int byteOrder) throws ImageWriteException
+            RationalNumber numbers[], int byteOrder)
     {
         // Debug.debug("convertRationalArrayToByteArray 2");
         byte result[] = new byte[numbers.length * 8];
@@ -418,7 +418,7 @@
     }
 
     protected final byte[] convertRationalToByteArray(RationalNumber number,
-            int byteOrder) throws ImageWriteException
+            int byteOrder)
     {
         byte result[] = new byte[8];
 
@@ -647,8 +647,7 @@
     }
 
     protected final int read4Bytes(String name, InputStream is,
-            String exception, int byteOrder) throws ImageReadException,
-            IOException
+            String exception, int byteOrder) throws IOException
     {
         int size = 4;
         byte bytes[] = new byte[size];
@@ -667,8 +666,7 @@
     }
 
     protected final int read3Bytes(String name, InputStream is,
-            String exception, int byteOrder) throws ImageReadException,
-            IOException
+            String exception, int byteOrder) throws IOException
     {
         byte byte0 = (byte) is.read();
         byte byte1 = (byte) is.read();
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java b/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java
index ea68240..d6f8a03 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java
+++ b/src/main/java/org/apache/commons/sanselan/common/BinaryFileParser.java
@@ -38,8 +38,7 @@
 
     // protected boolean BYTE_ORDER_reversed = true;
 
-    protected void setByteOrder(int a, int b) throws ImageReadException,
-            IOException
+    protected void setByteOrder(int a, int b) throws ImageReadException
     {
         if (a != b)
             throw new ImageReadException("Byte Order bytes don't match (" + a
@@ -87,13 +86,13 @@
     }
 
     public final int read4Bytes(String name, InputStream is, String exception)
-            throws ImageReadException, IOException
+            throws IOException
     {
         return read4Bytes(name, is, exception, byteOrder);
     }
 
     public final int read3Bytes(String name, InputStream is, String exception)
-            throws ImageReadException, IOException
+            throws IOException
     {
         return read3Bytes(name, is, exception, byteOrder);
     }
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryInputStream.java b/src/main/java/org/apache/commons/sanselan/common/BinaryInputStream.java
index 7567de5..b970550 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryInputStream.java
+++ b/src/main/java/org/apache/commons/sanselan/common/BinaryInputStream.java
@@ -59,8 +59,7 @@
     // default byte order for Java, many file formats.
     private int byteOrder = BYTE_ORDER_NETWORK;
 
-    protected void setByteOrder(int a, int b) throws ImageReadException,
-            IOException
+    protected void setByteOrder(int a, int b) throws ImageReadException
     {
         if (a != b)
             throw new ImageReadException("Byte Order bytes don't match (" + a
@@ -106,25 +105,24 @@
     }
 
     public final int read4Bytes(String name, String exception)
-            throws ImageReadException, IOException
+            throws IOException
     {
         return read4Bytes(name, exception, byteOrder);
     }
 
     public final int read3Bytes(String name, String exception)
-            throws ImageReadException, IOException
+            throws IOException
     {
         return read3Bytes(name, exception, byteOrder);
     }
 
     public final int read2Bytes(String name, String exception)
-            throws ImageReadException, IOException
+            throws IOException
     {
         return read2Bytes(name, exception, byteOrder);
     }
 
-    protected final void readRandomBytes() throws ImageReadException,
-            IOException
+    protected final void readRandomBytes() throws IOException
     {
 
         for (int counter = 0; counter < 100; counter++)
@@ -398,7 +396,7 @@
     }
 
     public final byte[] readByteArray(String name, int length, String exception)
-            throws ImageReadException, IOException
+            throws IOException
     {
         byte result[] = new byte[length];
 
@@ -518,7 +516,7 @@
     }
 
     protected final int read4Bytes(String name, String exception, int byteOrder)
-            throws ImageReadException, IOException
+            throws IOException
     {
         int size = 4;
         byte bytes[] = new byte[size];
@@ -537,7 +535,7 @@
     }
 
     protected final int read3Bytes(String name, String exception, int byteOrder)
-            throws ImageReadException, IOException
+            throws IOException
     {
         int size = 3;
         byte bytes[] = new byte[size];
@@ -557,7 +555,7 @@
     }
 
     protected final int read2Bytes(String name, String exception, int byteOrder)
-            throws ImageReadException, IOException
+            throws IOException
     {
         int size = 2;
         byte bytes[] = new byte[size];
diff --git a/src/main/java/org/apache/commons/sanselan/common/BinaryOutputStream.java b/src/main/java/org/apache/commons/sanselan/common/BinaryOutputStream.java
index 7e1ed86..9e54500 100644
--- a/src/main/java/org/apache/commons/sanselan/common/BinaryOutputStream.java
+++ b/src/main/java/org/apache/commons/sanselan/common/BinaryOutputStream.java
@@ -52,8 +52,7 @@
     // default byte order for Java, many file formats.
     private int byteOrder = BYTE_ORDER_NETWORK;
 
-    protected void setByteOrder(int a, int b) throws ImageWriteException,
-            IOException
+    protected void setByteOrder(int a, int b) throws ImageWriteException
     {
         if (a != b)
             throw new ImageWriteException("Byte Order bytes don't match (" + a
@@ -88,26 +87,22 @@
         return count;
     }
 
-    public final void write4Bytes(int value) throws ImageWriteException,
-            IOException
+    public final void write4Bytes(int value) throws IOException
     {
         writeNBytes(value, 4);
     }
 
-    public final void write3Bytes(int value) throws ImageWriteException,
-            IOException
+    public final void write3Bytes(int value) throws IOException
     {
         writeNBytes(value, 3);
     }
 
-    public final void write2Bytes(int value) throws ImageWriteException,
-            IOException
+    public final void write2Bytes(int value) throws IOException
     {
         writeNBytes(value, 2);
     }
 
-    public final void write4ByteInteger(int value) throws ImageWriteException,
-            IOException
+    public final void write4ByteInteger(int value) throws IOException
     {
         if (byteOrder == BYTE_ORDER_MOTOROLA)
         {
@@ -124,8 +119,7 @@
         }
     }
 
-    public final void write2ByteInteger(int value) throws ImageWriteException,
-            IOException
+    public final void write2ByteInteger(int value) throws IOException
     {
         if (byteOrder == BYTE_ORDER_MOTOROLA)
         {
@@ -168,7 +162,7 @@
     }
 
     private final void writeNBytes(int value, int n)
-            throws ImageWriteException, IOException
+            throws IOException
     {
         write(convertValueToByteArray(value, n));
     }
diff --git a/src/main/java/org/apache/commons/sanselan/common/Compression.java b/src/main/java/org/apache/commons/sanselan/common/Compression.java
index 30d9d39..f9b5ac8 100644
--- a/src/main/java/org/apache/commons/sanselan/common/Compression.java
+++ b/src/main/java/org/apache/commons/sanselan/common/Compression.java
@@ -40,7 +40,7 @@
     }
 
     public byte[] decompressPackBits(byte compressed[], int expectedSize,
-            int byteOrder) throws ImageReadException, IOException
+            int byteOrder) throws ImageReadException
     {
         byte unpacked[] = new PackBits().decompress(compressed, expectedSize);
         return unpacked;
diff --git a/src/main/java/org/apache/commons/sanselan/common/PackBits.java b/src/main/java/org/apache/commons/sanselan/common/PackBits.java
index 7544469..fc4e675 100644
--- a/src/main/java/org/apache/commons/sanselan/common/PackBits.java
+++ b/src/main/java/org/apache/commons/sanselan/common/PackBits.java
@@ -25,7 +25,7 @@
 {
 
     public byte[] decompress(byte bytes[], int expected)
-            throws ImageReadException, IOException
+            throws ImageReadException
     {
         int total = 0;
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java
index 5c9c2cc..7908439 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java
@@ -253,7 +253,7 @@
     private static final int BI_BITFIELDS = 3;
 
     private byte[] getRLEBytes(InputStream is, int RLESamplesPerByte)
-            throws ImageReadException, IOException
+            throws IOException
     {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserBitFields.java b/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserBitFields.java
index 0f9f05a..5b0c3eb 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserBitFields.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserBitFields.java
@@ -35,7 +35,7 @@
     private final int alphaMask;
 
     public PixelParserBitFields(BmpHeaderInfo bhi, byte ColorTable[],
-            byte ImageData[]) throws ImageReadException, IOException
+            byte ImageData[])
     {
         super(bhi, ColorTable, ImageData);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java b/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java
index 83364b2..23c7a41 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java
@@ -33,7 +33,7 @@
 
     }
 
-    private int getSamplesPerByte() throws ImageReadException, IOException
+    private int getSamplesPerByte() throws ImageReadException
     {
         if (bhi.bitsPerPixel == 8)
             return 1;
@@ -44,8 +44,7 @@
                     + bhi.bitsPerPixel);
     }
 
-    private int[] convertDataToSamples(int data) throws ImageReadException,
-            IOException
+    private int[] convertDataToSamples(int data) throws ImageReadException
     {
         int rgbs[];
         if (bhi.bitsPerPixel == 8)
@@ -72,7 +71,6 @@
 
     private int processByteOfData(int rgbs[], int repeat, int x, int y,
             int width, int height, DataBuffer db, BufferedImage bi)
-            throws ImageReadException
     {
         //                int rbg
         int pixels_written = 0;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java
index 4d20916..09ffac2 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/gif/GifImageParser.java
@@ -183,8 +183,7 @@
                 delay, transparentColorIndex);
     }
 
-    private byte[] readSubBlock(InputStream is) throws ImageReadException,
-            IOException
+    private byte[] readSubBlock(InputStream is) throws IOException
     {
         int block_size = 0xff & readByte("block_size", is, "GIF: corrupt block");
 
@@ -195,13 +194,13 @@
     }
 
     protected GenericGifBlock readGenericGIFBlock(InputStream is, int code)
-            throws ImageReadException, IOException
+            throws IOException
     {
         return readGenericGIFBlock(is, code, null);
     }
 
     protected GenericGifBlock readGenericGIFBlock(InputStream is, int code,
-            byte first[]) throws ImageReadException, IOException
+            byte first[]) throws IOException
     {
         List subblocks = new ArrayList();
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java b/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java
index 32e4e07..8e156bc 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsDecoder.java
@@ -17,7 +17,6 @@
 package org.apache.commons.sanselan.formats.icns;
 
 import java.awt.image.BufferedImage;
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -430,7 +429,7 @@
     }
 
     public static List decodeAllImages(IcnsImageParser.IcnsElement[] icnsElements)
-            throws ImageReadException, IOException
+            throws ImageReadException
     {
         List result = new ArrayList();
         for (int i = 0; i < icnsElements.length; i++)
diff --git a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsImageParser.java
index 976d862..0c3be5a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/icns/IcnsImageParser.java
@@ -214,8 +214,7 @@
         }
     }
 
-    private IcnsElement readIcnsElement(InputStream is) throws ImageReadException,
-            IOException
+    private IcnsElement readIcnsElement(InputStream is) throws IOException
     {
         int type = read4Bytes("Type", is, "Not a Valid ICNS File"); // Icon type (4 bytes)
         int elementSize = read4Bytes("ElementSize", is, "Not a Valid ICNS File"); // Length of data (4 bytes), in bytes, including this header
diff --git a/src/main/java/org/apache/commons/sanselan/formats/ico/IcoImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/ico/IcoImageParser.java
index f758290..ec5ce5f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/ico/IcoImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/ico/IcoImageParser.java
@@ -325,7 +325,7 @@
         }
     }
 
-    private IconData readBitmapIconData(byte[] iconData, IconInfo fIconInfo) throws ImageReadException, ImageWriteException, IOException
+    private IconData readBitmapIconData(byte[] iconData, IconInfo fIconInfo) throws ImageReadException, IOException
     {
         ByteArrayInputStream is = new ByteArrayInputStream(iconData);
         int Size = read4Bytes("Size", is, "Not a Valid ICO File"); // Size (4 bytes), size of this structure (always 40)
@@ -482,16 +482,7 @@
         }
         else
         {
-            try
-            {
-                return readBitmapIconData(iconData, fIconInfo);
-            }
-            catch (ImageWriteException imageWriteException)
-            {
-                IOException ioe = new IOException();
-                ioe.initCause(imageWriteException);
-                throw ioe;
-            }
+            return readBitmapIconData(iconData, fIconInfo);
         }
     }
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegUtils.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegUtils.java
index a4a2135..9947d0a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegUtils.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/JpegUtils.java
@@ -20,7 +20,6 @@
 import java.io.InputStream;
 
 import org.apache.commons.sanselan.ImageReadException;
-import org.apache.commons.sanselan.ImageWriteException;
 import org.apache.commons.sanselan.common.BinaryFileParser;
 import org.apache.commons.sanselan.common.bytesource.ByteSource;
 import org.apache.commons.sanselan.util.Debug;
@@ -180,7 +179,7 @@
     }
 
     public void dumpJFIF(ByteSource byteSource) throws ImageReadException,
-            IOException, ImageWriteException
+            IOException
     {
         Visitor visitor = new Visitor() {
             // return false to exit before reading image data.
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App13Segment.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App13Segment.java
index 7d39aac..9067908 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App13Segment.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/App13Segment.java
@@ -34,14 +34,14 @@
     // public final boolean isIPTCJpegSegment;
 
     public App13Segment(JpegImageParser parser, int marker, byte segmentData[])
-            throws ImageReadException, IOException
+            throws IOException
     {
         this(parser, marker, segmentData.length, new ByteArrayInputStream(
                 segmentData));
     }
 
     public App13Segment(JpegImageParser parser, int marker, int marker_length,
-            InputStream is) throws ImageReadException, IOException
+            InputStream is) throws IOException
     {
         super(marker, marker_length, is);
         this.parser = parser;
@@ -61,7 +61,7 @@
         // }
     }
 
-    public boolean isPhotoshopJpegSegment() throws ImageReadException, IOException
+    public boolean isPhotoshopJpegSegment()
     {
         return new IptcParser().isPhotoshopJpegSegment(bytes);
     }
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/AppnSegment.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/AppnSegment.java
index 7fd5ddb..73942da 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/AppnSegment.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/AppnSegment.java
@@ -19,13 +19,12 @@
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
 import org.apache.commons.sanselan.formats.jpeg.JpegImageParser;
 
 public class AppnSegment extends GenericSegment
 {
     public AppnSegment(int marker, int marker_length, InputStream is)
-            throws ImageReadException, IOException
+            throws IOException
     {
         super(marker, marker_length, is);
     }
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java
index 3736f64..7a7e01f 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/ComSegment.java
@@ -21,20 +21,18 @@
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.sanselan.ImageReadException;
-
 public class ComSegment extends Segment
 {
     public final byte[] comment;
 
     public ComSegment(int marker, byte segmentData[])
-            throws ImageReadException, IOException
+            throws IOException
     {
         this(marker, segmentData.length, new ByteArrayInputStream(segmentData));
     }
 
     public ComSegment(int marker, int marker_length, InputStream is)
-            throws ImageReadException, IOException
+            throws IOException
     {
         super(marker, marker_length);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DhtSegment.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DhtSegment.java
index 05845dd..763f48e 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DhtSegment.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/DhtSegment.java
@@ -21,8 +21,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.sanselan.ImageReadException;
-
 public class DhtSegment extends Segment
 {
     public final List huffmanTables = new ArrayList();
@@ -124,13 +122,13 @@
 
 
     public DhtSegment(int marker, byte[] segmentData)
-            throws ImageReadException, IOException
+            throws IOException
     {
         this(marker, segmentData.length, new ByteArrayInputStream(segmentData));
     }
 
     public DhtSegment(int marker, int length, InputStream is)
-            throws ImageReadException, IOException
+            throws IOException
     {
         super(marker, length);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/GenericSegment.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/GenericSegment.java
index 20cbd3e..f54a6bf 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/GenericSegment.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/GenericSegment.java
@@ -20,14 +20,12 @@
 import java.io.InputStream;
 import java.io.PrintWriter;
 
-import org.apache.commons.sanselan.ImageReadException;
-
 public abstract class GenericSegment extends Segment
 {
     public final byte bytes[];
 
     public GenericSegment(int marker, int marker_length, InputStream is)
-            throws ImageReadException, IOException
+            throws IOException
     {
         super(marker, marker_length);
 
@@ -35,8 +33,7 @@
                 "Invalid Segment: insufficient data");
     }
 
-    public GenericSegment(int marker, byte bytes[]) throws ImageReadException,
-            IOException
+    public GenericSegment(int marker, byte bytes[])
     {
         super(marker, bytes.length);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SosSegment.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SosSegment.java
index a6da6f7..4632ae8 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SosSegment.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/SosSegment.java
@@ -20,8 +20,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-
 public class SosSegment extends Segment
 {
     public final int numberOfComponents;
@@ -48,13 +46,13 @@
     }
 
     public SosSegment(int marker, byte[] segmentData)
-            throws ImageReadException, IOException
+            throws IOException
     {
         this(marker, segmentData.length, new ByteArrayInputStream(segmentData));
     }
 
     public SosSegment(int marker, int marker_length, InputStream is)
-            throws ImageReadException, IOException
+            throws IOException
     {
         super(marker, marker_length);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/UnknownSegment.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/UnknownSegment.java
index 7e97a60..f10c3ba 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/UnknownSegment.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/segments/UnknownSegment.java
@@ -19,18 +19,15 @@
 import java.io.IOException;
 import java.io.InputStream;
 
-import org.apache.commons.sanselan.ImageReadException;
-
 public class UnknownSegment extends GenericSegment
 {
     public UnknownSegment(int marker, int marker_length, InputStream is)
-            throws ImageReadException, IOException
+            throws IOException
     {
         super(marker, marker_length, is);
     }
 
-    public UnknownSegment(int marker, byte bytes[]) throws ImageReadException,
-            IOException
+    public UnknownSegment(int marker, byte bytes[])
     {
         super(marker, bytes);
     }
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java
index f00fc07..a03bb69 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegRewriter.java
@@ -330,7 +330,7 @@
     }
 
     protected void writeSegments(OutputStream os, List segments)
-            throws ImageWriteException, IOException
+            throws IOException
     {
         try
         {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java b/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java
index 5e0f217..fcec121 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/jpeg/xmp/JpegXmpRewriter.java
@@ -56,7 +56,7 @@
      * @see java.io.OutputStream
      */
     public void removeXmpXml(File src, OutputStream os)
-            throws ImageReadException, IOException, ImageWriteException
+            throws ImageReadException, IOException
     {
         ByteSource byteSource = new ByteSourceFile(src);
         removeXmpXml(byteSource, os);
@@ -73,7 +73,7 @@
      *            OutputStream to write the image to.
      */
     public void removeXmpXml(byte src[], OutputStream os)
-            throws ImageReadException, IOException, ImageWriteException
+            throws ImageReadException, IOException
     {
         ByteSource byteSource = new ByteSourceArray(src);
         removeXmpXml(byteSource, os);
@@ -90,7 +90,7 @@
      *            OutputStream to write the image to.
      */
     public void removeXmpXml(InputStream src, OutputStream os)
-            throws ImageReadException, IOException, ImageWriteException
+            throws ImageReadException, IOException
     {
         ByteSource byteSource = new ByteSourceInputStream(src, null);
         removeXmpXml(byteSource, os);
@@ -107,7 +107,7 @@
      *            OutputStream to write the image to.
      */
     public void removeXmpXml(ByteSource byteSource, OutputStream os)
-            throws ImageReadException, IOException, ImageWriteException
+            throws ImageReadException, IOException
     {
         JFIFPieces jfifPieces = analyzeJFIF(byteSource);
         List pieces = jfifPieces.pieces;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxImageParser.java
index 702d406..e5fc4dc 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/pcx/PcxImageParser.java
@@ -365,7 +365,7 @@
     }
 
     private int[] read256ColorPaletteFromEndOfFile(ByteSource byteSource)
-            throws IOException, ImageReadException
+            throws IOException
     {
         InputStream stream = null;
         try
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java b/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java
index bb6c11d..3c46117 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/png/BitParser.java
@@ -16,8 +16,6 @@
  */
 package org.apache.commons.sanselan.formats.png;
 
-import java.io.IOException;
-
 import org.apache.commons.sanselan.ImageReadException;
 
 public class BitParser
@@ -34,7 +32,7 @@
     }
 
     public int getSample(int pixelIndexInScanline, int sampleIndex)
-            throws ImageReadException, IOException
+            throws ImageReadException
     {
         int pixelIndexBits = bitsPerPixel * pixelIndexInScanline;
         int sampleIndexBits = pixelIndexBits + (sampleIndex * bitDepth);
@@ -59,7 +57,7 @@
     }
 
     public int getSampleAsByte(int pixelIndexInScanline, int sampleIndex)
-            throws ImageReadException, IOException
+            throws ImageReadException
     {
         int sample = getSample(pixelIndexInScanline, sampleIndex);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediter.java b/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediter.java
index 8fca366..4287e0a 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediter.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/png/ScanExpediter.java
@@ -183,7 +183,7 @@
     }
 
     protected ScanlineFilter getScanlineFilter(int filter_type,
-            int BytesPerPixel) throws ImageReadException, IOException
+            int BytesPerPixel) throws ImageReadException
     {
         ScanlineFilter filter;
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkGama.java b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkGama.java
index c52223e..64f3763 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkGama.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkGama.java
@@ -19,14 +19,12 @@
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-
 public class PngChunkGama extends PngChunk
 {
     public final int Gamma;
 
     public PngChunkGama(int Length, int ChunkType, int CRC, byte bytes[])
-            throws ImageReadException, IOException
+            throws IOException
     {
         super(Length, ChunkType, CRC, bytes);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIdat.java b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIdat.java
index a804d83..01371a3 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIdat.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIdat.java
@@ -16,12 +16,9 @@
  */
 package org.apache.commons.sanselan.formats.png.chunks;
 
-import java.io.IOException;
-
 public class PngChunkIdat extends PngChunk
 {
     public PngChunkIdat(int Length, int ChunkType, int CRC, byte bytes[])
-            throws IOException
     {
         super(Length, ChunkType, CRC, bytes);
     }
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIhdr.java b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIhdr.java
index a6c2a9c..2c4f509 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIhdr.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkIhdr.java
@@ -19,8 +19,6 @@
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-
 public class PngChunkIhdr extends PngChunk
 {
     public final int width;
@@ -32,7 +30,7 @@
     public final int interlaceMethod;
 
     public PngChunkIhdr(int Length, int ChunkType, int CRC, byte bytes[])
-            throws ImageReadException, IOException
+            throws IOException
     {
         super(Length, ChunkType, CRC, bytes);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPhys.java b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPhys.java
index 53d4ff8..dfb1dea 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPhys.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPhys.java
@@ -19,8 +19,6 @@
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
-import org.apache.commons.sanselan.ImageReadException;
-
 public class PngChunkPhys extends PngChunk
 {
     public final int PixelsPerUnitXAxis;
@@ -28,7 +26,7 @@
     public final int UnitSpecifier;
 
     public PngChunkPhys(int Length, int ChunkType, int CRC, byte bytes[])
-            throws ImageReadException, IOException
+            throws IOException
     {
         super(Length, ChunkType, CRC, bytes);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPlte.java b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPlte.java
index a21b957..be48e0b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPlte.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngChunkPlte.java
@@ -53,7 +53,7 @@
         }
     }
 
-    public int getRGB(int index) throws ImageReadException, IOException
+    public int getRGB(int index) throws ImageReadException
     {
         if ((index < 0) || (index >= rgb.length))
             throw new ImageReadException("PNG: unknown Palette reference: "
diff --git a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngTextChunk.java b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngTextChunk.java
index ecb7bc0..1d8b6d4 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngTextChunk.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/png/chunks/PngTextChunk.java
@@ -16,15 +16,12 @@
  */
 package org.apache.commons.sanselan.formats.png.chunks;
 
-import java.io.IOException;
-
 import org.apache.commons.sanselan.formats.png.PngText;
 
 public abstract class PngTextChunk extends PngChunk
 {
 
     public PngTextChunk(int Length, int ChunkType, int CRC, byte bytes[])
-            throws IOException
     {
         super(Length, ChunkType, CRC, bytes);
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java
index 07d2f71..4c614b0 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/pnm/PnmImageParser.java
@@ -236,8 +236,7 @@
         return true;
     }
 
-    private int[] getColorTable(byte bytes[]) throws ImageReadException,
-            IOException
+    private int[] getColorTable(byte bytes[]) throws ImageReadException
     {
         if ((bytes.length % 3) != 0)
             throw new ImageReadException("Bad Color Table Length: "
diff --git a/src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceType.java b/src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceType.java
index 09fe49e..34d3d90 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceType.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/psd/ImageResourceType.java
@@ -16,8 +16,6 @@
  */
 package org.apache.commons.sanselan.formats.psd;
 
-import java.io.IOException;
-
 import org.apache.commons.sanselan.ImageReadException;
 
 public class ImageResourceType
@@ -32,7 +30,7 @@
     }
 
     public ImageResourceType(int ID, int ID2, String Description)
-            throws ImageReadException, IOException
+            throws ImageReadException
     {
         this(ID, Description);
         if (ID != ID2)
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java
index 052ed8f..afc9281 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffField.java
@@ -273,8 +273,7 @@
         return valueLength;
     }
 
-    public void fillInValue(ByteSource byteSource) throws ImageReadException,
-            IOException, TiffValueOutsideFileBoundsException
+    public void fillInValue(ByteSource byteSource) throws IOException, TiffValueOutsideFileBoundsException
     {
         if (fieldType.isLocalValue(this))
             return;
@@ -767,7 +766,7 @@
         return ((Number) o).doubleValue();
     }
 
-    public byte[] getByteArrayValue() throws ImageReadException
+    public byte[] getByteArrayValue()
     {
         return fieldType.getRawBytes(this);
     }
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java
index 552edda..cb2bc8b 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageMetadata.java
@@ -104,7 +104,7 @@
             return directory.findField(tagInfo);
         }
 
-        public List getAllFields() throws ImageReadException
+        public List getAllFields()
         {
             return directory.getDirectoryEntrys();
         }
@@ -321,7 +321,7 @@
         return null;
     }
 
-    public List getAllFields() throws ImageReadException
+    public List getAllFields()
     {
         List result = new ArrayList();
         List directories = getDirectories();
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
index 59e129f..fff5716 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/TiffImageParser.java
@@ -534,8 +534,7 @@
     private PhotometricInterpreter getPhotometricInterpreter(
             TiffDirectory directory, int photometricInterpretation,
             int bitsPerPixel, int bitsPerSample[], int predictor,
-            int samplesPerPixel, int width, int height) throws IOException,
-            ImageReadException
+            int samplesPerPixel, int width, int height) throws ImageReadException
     {
         switch (photometricInterpretation)
         {
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java
index 13a9ff1..3cb6bc6 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/datareaders/DataReader.java
@@ -63,7 +63,7 @@
             throws ImageReadException, IOException;
 
     protected int[] getSamplesAsBytes(BitInputStream bis)
-            throws ImageReadException, IOException
+            throws IOException
     {
         int result[] = new int[bitsPerSample.length];
         for (int i = 0; i < bitsPerSample.length; i++)
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreter.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreter.java
index c90aa22..42fc2a4 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreter.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/photometricinterpreters/PhotometricInterpreter.java
@@ -42,6 +42,10 @@
     public abstract void interpretPixel(BufferedImage bi, int samples[], int x,
             int y) throws ImageReadException, IOException;
 
+    /**
+     * @throws ImageReadException may be thrown by sub-classes
+     * @throws IOException may be thrown by sub-classes
+     */
     public void dumpstats() throws ImageReadException, IOException
     {
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java
index 7d49b98..b362cbb 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterBase.java
@@ -533,7 +533,7 @@
     }
 
     protected void writeImageFileHeader(BinaryOutputStream bos)
-            throws IOException, ImageWriteException
+            throws IOException
     {
         int offsetToFirstIFD = TIFF_HEADER_SIZE;
 
@@ -541,7 +541,7 @@
     }
 
     protected void writeImageFileHeader(BinaryOutputStream bos,
-            int offsetToFirstIFD) throws IOException, ImageWriteException
+            int offsetToFirstIFD) throws IOException
     {
         bos.write(byteOrder);
         bos.write(byteOrder);
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossless.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossless.java
index 14599ac..c45896d 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossless.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossless.java
@@ -268,7 +268,6 @@
     };
 
     private int updateOffsetsStep(List analysis, List outputItems)
-            throws IOException, ImageWriteException
     {
         // items we cannot fit into a gap, we shall append to tail.
         int overflowIndex = exifBytes.length;
diff --git a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossy.java b/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossy.java
index a889e94..fc86835 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossy.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/tiff/write/TiffImageWriterLossy.java
@@ -51,8 +51,7 @@
         writeStep(bos, outputItems);
     }
 
-    private void updateOffsetsStep(List outputItems) throws IOException,
-            ImageWriteException
+    private void updateOffsetsStep(List outputItems)
     {
         int offset = TIFF_HEADER_SIZE;
 
diff --git a/src/main/java/org/apache/commons/sanselan/formats/wbmp/WbmpImageParser.java b/src/main/java/org/apache/commons/sanselan/formats/wbmp/WbmpImageParser.java
index 8176a93..a0f8bb6 100644
--- a/src/main/java/org/apache/commons/sanselan/formats/wbmp/WbmpImageParser.java
+++ b/src/main/java/org/apache/commons/sanselan/formats/wbmp/WbmpImageParser.java
@@ -157,7 +157,7 @@
     }
 
     private void writeMultiByteInteger(OutputStream os, int value)
-            throws ImageWriteException, IOException
+            throws IOException
     {
         boolean wroteYet = false;
         for (int position = 4*7; position > 0; position -= 7)
@@ -221,7 +221,7 @@
     }
 
     private BufferedImage readImage(WbmpHeader wbmpHeader, InputStream is)
-            throws ImageReadException, IOException
+            throws IOException
     {
         int rowLength = (wbmpHeader.width + 7) / 8;
         byte[] image = readByteArray("Pixels", rowLength * wbmpHeader.height, is,
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccProfileInfo.java b/src/main/java/org/apache/commons/sanselan/icc/IccProfileInfo.java
index ca26cc7..82da694 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccProfileInfo.java
+++ b/src/main/java/org/apache/commons/sanselan/icc/IccProfileInfo.java
@@ -83,7 +83,7 @@
                 + (char) (0xff & (i >> 0)) + "'");
     }
 
-    public void dump(String prefix) throws IOException
+    public void dump(String prefix)
     {
         System.out.print(toString());
     }
diff --git a/src/main/java/org/apache/commons/sanselan/icc/IccTag.java b/src/main/java/org/apache/commons/sanselan/icc/IccTag.java
index 9bc6942..3ba4ae0 100644
--- a/src/main/java/org/apache/commons/sanselan/icc/IccTag.java
+++ b/src/main/java/org/apache/commons/sanselan/icc/IccTag.java
@@ -45,7 +45,7 @@
     private IccTagDataType itdt = null;
     private int data_type_signature;
 
-    public void setData(byte bytes[]) throws ImageReadException, IOException
+    public void setData(byte bytes[]) throws IOException
     {
         data = bytes;
 
diff --git a/src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java b/src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java
index dda56a2..23f0ff8 100644
--- a/src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java
+++ b/src/main/java/org/apache/commons/sanselan/palette/MedianCutQuantizer.java
@@ -184,7 +184,6 @@
     }
 
     public Map groupColors1(BufferedImage image, int max, int mask)
-            throws ImageWriteException
     {
         Map color_map = new HashMap();
 
@@ -220,7 +219,6 @@
     }
 
     public Map groupColors(BufferedImage image, int max_colors)
-            throws ImageWriteException
     {
         int max = Integer.MAX_VALUE;
 
diff --git a/src/main/java/org/apache/commons/sanselan/util/UnicodeUtils.java b/src/main/java/org/apache/commons/sanselan/util/UnicodeUtils.java
index f101b15..7a8cf6b 100644
--- a/src/main/java/org/apache/commons/sanselan/util/UnicodeUtils.java
+++ b/src/main/java/org/apache/commons/sanselan/util/UnicodeUtils.java
@@ -328,7 +328,6 @@
 
         public boolean isValid(byte bytes[], int index,
                 boolean mayHaveTerminator, boolean mustHaveTerminator)
-                throws UnicodeException
         {
             // http://en.wikipedia.org/wiki/UTF-16/UCS-2