diff --git a/src/org/benf/cfr/reader/bytecode/analysis/opgraph/op3rewriters/ConditionalRewriter.java b/src/org/benf/cfr/reader/bytecode/analysis/opgraph/op3rewriters/ConditionalRewriter.java index 455fba70..4f0f9882 100644 --- a/src/org/benf/cfr/reader/bytecode/analysis/opgraph/op3rewriters/ConditionalRewriter.java +++ b/src/org/benf/cfr/reader/bytecode/analysis/opgraph/op3rewriters/ConditionalRewriter.java @@ -587,7 +587,9 @@ public boolean test(BlockIdentifier in) { if (blocksAtStart.size() == blocksAtEnd.size()+1) { List change = SetUtil.differenceAtakeBtoList(blocksAtStart, blocksAtEnd); // size == 1 already verified, but... - if (change.size() == 1 && change.get(0).getBlockType() == BlockType.CASE) { + if (change.size() == 1 && + (change.get(0).getBlockType() == BlockType.CASE || + change.get(0).getBlockType() == BlockType.CATCHBLOCK)) { if (takenTarget.getStatement() instanceof CaseStatement) { // We need to check if the statement LINEARLY preceeding this is in the block we've left. if (stmtLastBlock.getBlockIdentifiers().contains(change.get(0))) {