Source:
public <T extends NNode> T readNode(@Nonnull Class<T> nodeClass) throws IOException, JayceFormatException { String fileName = readCurrentFileName(); int startLine = readCurrentLine(); readCatchBlockIds(); Token token = tokenizer.next(); if (token == Token.NULL) { return null; } tokenizer.readOpen(); NNode node; try { node = token.newNode(); } catch (InvalidTokenException e) { throw new ParseException( "Unexpected token " + token.toString() + " while expecting node.", e); } Percent statistic = null; if (token == Token.METHOD_BODY) { statistic = tracer.getStatistic(SKIPED_BODY); } else if (node instanceof NDeclaredType) { statistic = tracer.getStatistic(SKIPED_NDECLARED_TYPE); } if (!nodeClass.isAssignableFrom(node.getClass())) { throw new JayceFormatException("Unexpected node " + node.getClass().getSimpleName() + ", " + nodeClass.getSimpleName() + " was expected."); } if (nodeLevel != NodeLevel.TYPES && node instanceof HasSourceInfo) { NSourceInfo sourceInfo = new NSourceInfo(); sourceInfo.fileName = fileName; sourceInfo.startLine = startLine; ((HasSourceInfo) node).setSourceInfos(sourceInfo); } if (node instanceof HasCatchBlockIds) { ((HasCatchBlockIds) node).setCatchBlockIds(new ArrayList<String>(currentCatchBlockList)); } node.readContent(this); if (nodeLevel != NodeLevel.TYPES) { readSourceInfoEnd(node); assert !(node instanceof NMethod) || currentCatchBlockList.isEmpty(); tokenizer.readClose(); } if (nodeLevel.keep(token.getNodeLevel()) || NMarker.class.isInstance(node)) { if (statistic != null) { statistic.addFalse(); } return (T) node; } else { if (statistic != null) { statistic.addTrue(); } return null; } }

Target:
public <T extends NNode> T readNode(@Nonnull Class<T> nodeClass) throws IOException, JayceFormatException { String fileName = readCurrentFileName(); int startLine = readCurrentLine(); readCatchBlockIds(); Token token = tokenizer.next(); if (token == Token.NULL) { return null; } tokenizer.readOpen(); NNode node; try { node = token.newNode(); } catch (InvalidTokenException e) { throw new ParseException( "Unexpected token " + token.toString() + " while expecting node.", e); } Percent statistic = null; if (token == Token.METHOD_BODY) { statistic = tracer.getStatistic(SKIPED_BODY); } else if (node instanceof NDeclaredType) { statistic = tracer.getStatistic(SKIPED_NDECLARED_TYPE); } if (!nodeClass.isAssignableFrom(node.getClass())) { throw new JayceFormatException("Unexpected node " + node.getClass().getSimpleName() + ", " + nodeClass.getSimpleName() + " was expected."); } if (nodeLevel != NodeLevel.TYPES && node instanceof HasSourceInfo) { NSourceInfo sourceInfo = new NSourceInfo(); sourceInfo.fileName = fileName; sourceInfo.startLine = startLine; ((HasSourceInfo) node).setSourceInfos(sourceInfo); } if (node instanceof HasCatchBlockIds) { ((HasCatchBlockIds) node).setCatchBlockIds(new ArrayList<String>(currentCatchBlockList)); } node.readContent(this); if (nodeLevel != NodeLevel.TYPES) { readSourceInfoEnd(node); assert !(node instanceof NMethod) || currentCatchBlockList.isEmpty(); tokenizer.readClose(); } if (nodeLevel.keep(token.getNodeLevel())) { if (statistic != null) { statistic.addFalse(); } return (T) node; } else { if (statistic != null) { statistic.addTrue(); } return null; } }