From: <rit...@us...> - 2010-08-30 06:10:25
|
Revision: 85 http://netcdftools.svn.sourceforge.net/netcdftools/?rev=85&view=rev Author: ritacsiro Date: 2010-08-30 06:10:19 +0000 (Mon, 30 Aug 2010) Log Message: ----------- ANDSWRON-462:ANDSWRDM - Conversion Tools - Error handling when fillrange exceeds actual range of values in binary file Modified Paths: -------------- trunk/src/main/java/au/csiro/netcdf/NcWriteVariable.java trunk/src/main/java/au/csiro/netcdf/cli/NetCDFTool.java Modified: trunk/src/main/java/au/csiro/netcdf/NcWriteVariable.java =================================================================== --- trunk/src/main/java/au/csiro/netcdf/NcWriteVariable.java 2010-08-25 05:56:46 UTC (rev 84) +++ trunk/src/main/java/au/csiro/netcdf/NcWriteVariable.java 2010-08-30 06:10:19 UTC (rev 85) @@ -22,6 +22,7 @@ import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataInputStream; +import java.io.EOFException; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -662,41 +663,49 @@ int i = 0; while (i < buffer.getSize()) { - - if (isFloat) + try { - buffer.setFloat(i, dataIn.readFloat()); + if (isFloat) + { + buffer.setFloat(i, dataIn.readFloat()); + } + else if (isDouble) + { + buffer.setDouble(i, dataIn.readDouble()); + } + else if (isLong) + { + buffer.setLong(i, dataIn.readLong()); + } + else if (isInt) + { + buffer.setInt(i, dataIn.readInt()); + } + else if (isChar) + { + buffer.setChar(i, dataIn.readChar()); + } + else if (isByte) + { + buffer.setByte(i, dataIn.readByte()); + } + else if (isBoolean) + { + buffer.setBoolean(i, dataIn.readBoolean()); + } + else if (isShort) + { + buffer.setShort(i, dataIn.readShort()); + } } - else if (isDouble) + catch (EOFException e) { - buffer.setDouble(i, dataIn.readDouble()); + String error = "Expected block of " + buffer.getSize() + " values but ran out after " + i + "."; + System.err.println(error); + throw new EOFException(error); } - else if (isLong) - { - buffer.setLong(i, dataIn.readLong()); - } - else if (isInt) - { - buffer.setInt(i, dataIn.readInt()); - } - else if (isChar) - { - buffer.setChar(i, dataIn.readChar()); - } - else if (isByte) - { - buffer.setByte(i, dataIn.readByte()); - } - else if (isBoolean) - { - buffer.setBoolean(i, dataIn.readBoolean()); - } - else if (isShort) - { - buffer.setShort(i, dataIn.readShort()); - } i++; } - + } } Modified: trunk/src/main/java/au/csiro/netcdf/cli/NetCDFTool.java =================================================================== --- trunk/src/main/java/au/csiro/netcdf/cli/NetCDFTool.java 2010-08-25 05:56:46 UTC (rev 84) +++ trunk/src/main/java/au/csiro/netcdf/cli/NetCDFTool.java 2010-08-30 06:10:19 UTC (rev 85) @@ -85,10 +85,9 @@ catch (Exception e) { LOG.error(e); - e.printStackTrace(); +// e.printStackTrace(); System.out.println("Error: " + e.getMessage()); System.out.println(command.getUsageString()); -// e.printStackTrace(); System.exit(2); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |