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;