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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+