diff --git a/src/java/org/apache/poi/hpsf/IllegalPropertySetDataException.java b/src/java/org/apache/poi/hpsf/IllegalPropertySetDataException.java
new file mode 100644
index 000000000..05619b321
--- /dev/null
+++ b/src/java/org/apache/poi/hpsf/IllegalPropertySetDataException.java
@@ -0,0 +1,128 @@
+/*
+ * ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2000 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" must
+ * not be used to endorse or promote products derived from this
+ * software without prior written permission. For written
+ * permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ *
+ *
+ * This exception is thrown when there is an illegal value set in a
+ * {@link PropertySet}. For example, a {@link Variant#VT_BOOL} must have
+ * a value of -1 (true)
or 0 (false)
.
+ * Any other value would trigger this exception. It supports a nested
+ * "reason" throwable, i.e. an exception that caused this one to be thrown.
+ *
+ * + * Creates a new {@link IllegalPropertySetDataException}.
+ */ + public IllegalPropertySetDataException() { + super(); + } + + + + /** + *+ * + * Creates a new {@link IllegalPropertySetDataException} with a message string.
+ * + *@param msg Description of the Parameter + */ + public IllegalPropertySetDataException(final String msg) { + super(msg); + } + + + + /** + *+ * + * Creates a new {@link IllegalPropertySetDataException} with a reason.
+ * + *@param reason Description of the Parameter + */ + public IllegalPropertySetDataException(final Throwable reason) { + super(reason); + } + + + + /** + *+ * + * Creates a new {@link IllegalPropertySetDataException} with a message + * string and a reason.
+ * + *@param msg Description of the Parameter + *@param reason Description of the Parameter + */ + public IllegalPropertySetDataException(final String msg, + final Throwable reason) { + super(msg,reason); + } + + +} diff --git a/src/java/org/apache/poi/hpsf/Property.java b/src/java/org/apache/poi/hpsf/Property.java index 10e83437b..c88a3f6d9 100644 --- a/src/java/org/apache/poi/hpsf/Property.java +++ b/src/java/org/apache/poi/hpsf/Property.java @@ -63,7 +63,7 @@ package org.apache.poi.hpsf; import java.util.*; -import org.apache.poi.util.LittleEndian; +import org.apache.poi.util.LittleEndian; /** *@@ -257,13 +257,7 @@ public class Property { } else if (bool == 0) { value = new Boolean(false); } else { - /* - * FIXME: Someone might invent a new - * HPSFRuntimeException subclass - * IllegalPropertySetDataException for this and - * similar cases. - */ - throw new HPSFRuntimeException + throw new IllegalPropertySetDataException ("Illegal property set data: A boolean must be " + "either -1 (true) or 0 (false)."); }