make ParquetFileWriter throw IOException in invalid state case
diff --git a/parquet-hadoop/src/main/java/parquet/hadoop/ParquetFileWriter.java b/parquet-hadoop/src/main/java/parquet/hadoop/ParquetFileWriter.java
index e45ba06..15133b5 100644
--- a/parquet-hadoop/src/main/java/parquet/hadoop/ParquetFileWriter.java
+++ b/parquet-hadoop/src/main/java/parquet/hadoop/ParquetFileWriter.java
@@ -121,13 +121,17 @@
},
ENDED;
- STATE start() {throw new IllegalStateException(this.name());}
- STATE startBlock() {throw new IllegalStateException(this.name());}
- STATE startColumn() {throw new IllegalStateException(this.name());}
- STATE write() {throw new IllegalStateException(this.name());}
- STATE endColumn() {throw new IllegalStateException(this.name());}
- STATE endBlock() {throw new IllegalStateException(this.name());}
- STATE end() {throw new IllegalStateException(this.name());}
+ STATE start() throws IOException { return error(); }
+ STATE startBlock() throws IOException { return error(); }
+ STATE startColumn() throws IOException { return error(); }
+ STATE write() throws IOException { return error(); }
+ STATE endColumn() throws IOException { return error(); }
+ STATE endBlock() throws IOException { return error(); }
+ STATE end() throws IOException { return error(); }
+
+ private final STATE error() throws IOException {
+ throw new IOException("The file being written is in an invalid state. Probably caused by an error thrown previously. Current state: " + this.name());
+ }
}
private STATE state = STATE.NOT_STARTED;