Configure deadline with markdown.parseTimeout Allow site admin to increase the deadline from the default of 2s to higher values, allowing more time to parse complex documents. Change-Id: I0189885c84424218f6ee83d7475cb4c9eac44889
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/ReadmeHelper.java b/gitiles-servlet/src/main/java/com/google/gitiles/ReadmeHelper.java index 7013918..91795bb 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/ReadmeHelper.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/ReadmeHelper.java
@@ -31,6 +31,7 @@ import org.eclipse.jgit.revwalk.RevTree; import org.eclipse.jgit.treewalk.TreeWalk; import org.eclipse.jgit.util.RawParseUtils; +import org.joda.time.Duration; import org.pegdown.ast.RootNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -89,10 +90,13 @@ SanitizedContent render() { try { + Duration parseTimeout = ConfigUtil.getDuration(cfg, "markdown", null, + "parseTimeout", Duration.standardSeconds(2)); int inputLimit = cfg.getInt("markdown", "inputLimit", 5 << 20); byte[] raw = reader.open(readmeId, Constants.OBJ_BLOB).getCachedBytes(inputLimit); String md = RawParseUtils.decode(raw); - RootNode root = GitilesMarkdown.parseFile(view, readmePath, md); + RootNode root = + GitilesMarkdown.parseFile(parseTimeout, view, readmePath, md); if (root == null) { return null; }