diff --git a/src/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java b/src/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java index d6a7470e4..877ef8c91 100644 --- a/src/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java +++ b/src/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java @@ -269,7 +269,8 @@ public final class EmbeddedObjectRefSubRecord extends SubRecord implements Clone switch(idOffset - (pos - 6)) { // 6 for 3 shorts: sid, dataSize, idOffset case 1: out.writeByte(field_4_unknownByte == null ? 0x00 : field_4_unknownByte.intValue()); - pos ++; + pos++; + break; case 0: break; default: diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java b/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java index 6e9911be3..6e2470147 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFCell.java @@ -457,6 +457,7 @@ public class HSSFCell implements Cell { * precalculated value, for numerics we'll set its value. For other types we * will change the cell to a numeric cell and set its value. */ + @SuppressWarnings("fallthrough") public void setCellValue(double value) { if(Double.isInfinite(value)) { // Excel does not support positive/negative infinities, @@ -474,6 +475,7 @@ public class HSSFCell implements Cell { switch (_cellType) { default: setCellType(CELL_TYPE_NUMERIC, false, row, col, styleIndex); + // fall through case CELL_TYPE_NUMERIC: (( NumberRecord ) _record).setValue(value); break; @@ -743,6 +745,7 @@ public class HSSFCell implements Cell { * precalculated value, for booleans we'll set its value. For other types we * will change the cell to a boolean cell and set its value. */ + @SuppressWarnings("fallthrough") public void setCellValue(boolean value) { int row=_record.getRow(); short col=_record.getColumn(); @@ -751,6 +754,7 @@ public class HSSFCell implements Cell { switch (_cellType) { default: setCellType(CELL_TYPE_BOOLEAN, false, row, col, styleIndex); + // fall through case CELL_TYPE_BOOLEAN: (( BoolErrRecord ) _record).setValue(value); break; @@ -768,6 +772,7 @@ public class HSSFCell implements Cell { * its value. For other types we will change the cell to an error * cell and set its value. */ + @SuppressWarnings("fallthrough") public void setCellErrorValue(byte errorCode) { int row=_record.getRow(); short col=_record.getColumn(); @@ -775,6 +780,7 @@ public class HSSFCell implements Cell { switch (_cellType) { default: setCellType(CELL_TYPE_ERROR, false, row, col, styleIndex); + // fall through case CELL_TYPE_ERROR: (( BoolErrRecord ) _record).setValue(errorCode); break; diff --git a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java index 32d2a5fd8..744e8d5a8 100644 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java +++ b/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java @@ -1744,6 +1744,7 @@ public final class HSSFWorkbook extends POIDocument implements org.apache.poi.ss * @see #PICTURE_TYPE_JPEG * @see #PICTURE_TYPE_DIB */ + @SuppressWarnings("fallthrough") @Override public int addPicture(byte[] pictureData, int format) { diff --git a/src/java/org/apache/poi/ss/formula/atp/YearFrac.java b/src/java/org/apache/poi/ss/formula/atp/YearFrac.java index 1f0ca6d8a..a44645f61 100644 --- a/src/java/org/apache/poi/ss/formula/atp/YearFrac.java +++ b/src/java/org/apache/poi/ss/formula/atp/YearFrac.java @@ -65,6 +65,7 @@ final class YearFrac implements FreeRefFunction { switch(args.length) { case 3: basis = evaluateIntArg(args[2], srcCellRow, srcCellCol); + // fall through case 2: break; default: diff --git a/src/java/org/apache/poi/ss/formula/functions/FinanceFunction.java b/src/java/org/apache/poi/ss/formula/functions/FinanceFunction.java index c34b2f622..988007386 100644 --- a/src/java/org/apache/poi/ss/formula/functions/FinanceFunction.java +++ b/src/java/org/apache/poi/ss/formula/functions/FinanceFunction.java @@ -87,6 +87,7 @@ public abstract class FinanceFunction implements Function3Arg, Function4Arg { } } + @SuppressWarnings("fallthrough") protected double evaluate(double[] ds) throws EvaluationException { // All finance functions have 3 to 5 args, first 4 are numbers, last is boolean // default for last 2 args are 0.0 and false @@ -98,8 +99,10 @@ public abstract class FinanceFunction implements Function3Arg, Function4Arg { switch(ds.length) { case 5: arg4 = ds[4]; + // fall through case 4: arg3 = ds[3]; + // fall through case 3: break; default: diff --git a/src/java/org/apache/poi/ss/formula/functions/Offset.java b/src/java/org/apache/poi/ss/formula/functions/Offset.java index 8877f2410..37ae8e682 100644 --- a/src/java/org/apache/poi/ss/formula/functions/Offset.java +++ b/src/java/org/apache/poi/ss/formula/functions/Offset.java @@ -161,6 +161,7 @@ public final class Offset implements Function { } } + @SuppressWarnings("fallthrough") public ValueEval evaluate(ValueEval[] args, int srcCellRow, int srcCellCol) { if(args.length < 3 || args.length > 5) { return ErrorEval.VALUE_INVALID; diff --git a/src/java/org/apache/poi/util/HexRead.java b/src/java/org/apache/poi/util/HexRead.java index d8fdbbbb5..8e5ee7f93 100644 --- a/src/java/org/apache/poi/util/HexRead.java +++ b/src/java/org/apache/poi/util/HexRead.java @@ -101,6 +101,7 @@ public class HexRead return readData(stream, section); } + @SuppressWarnings("fallthrough") static public byte[] readData( InputStream stream, int eofChar ) throws IOException { @@ -137,6 +138,7 @@ public class HexRead case 'E': case 'F': baseChar = 'A'; + // fall through case 'a': case 'b': case 'c': diff --git a/src/resources/devtools/findbugs-filters.xml b/src/resources/devtools/findbugs-filters.xml index eedae7299..2947940ee 100644 --- a/src/resources/devtools/findbugs-filters.xml +++ b/src/resources/devtools/findbugs-filters.xml @@ -82,6 +82,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +