GROOVY-8025: Using closures with annotations on Spock classes results in Groovydoc exception (partial fix only)
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/16859fa6 Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/16859fa6 Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/16859fa6 Branch: refs/heads/GROOVY_2_4_X Commit: 16859fa6363e1f58f86fbc47829318f15a3a2dc6 Parents: dbd5e3f Author: paulk <[email protected]> Authored: Tue Dec 20 18:52:02 2016 +1000 Committer: paulk <[email protected]> Committed: Tue Dec 20 18:53:13 2016 +1000 ---------------------------------------------------------------------- src/main/org/codehaus/groovy/antlr/SourceBuffer.java | 1 + .../groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/16859fa6/src/main/org/codehaus/groovy/antlr/SourceBuffer.java ---------------------------------------------------------------------- diff --git a/src/main/org/codehaus/groovy/antlr/SourceBuffer.java b/src/main/org/codehaus/groovy/antlr/SourceBuffer.java index 9f2601e..1d7f38b 100644 --- a/src/main/org/codehaus/groovy/antlr/SourceBuffer.java +++ b/src/main/org/codehaus/groovy/antlr/SourceBuffer.java @@ -75,6 +75,7 @@ public class SourceBuffer { if (startColumn < 1) { startColumn = 1;} if (endColumn > line.length()) { endColumn = line.length() + 1;} if (endColumn < 1) { endColumn = 1;} + if (endColumn < startColumn) { endColumn = startColumn;} line = line.substring(startColumn - 1, endColumn - 1); } else { http://git-wip-us.apache.org/repos/asf/groovy/blob/16859fa6/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java ---------------------------------------------------------------------- diff --git a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java index ab1b452..dc0a524 100644 --- a/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java +++ b/subprojects/groovy-groovydoc/src/main/java/org/codehaus/groovy/tools/groovydoc/SimpleGroovyClassDocAssembler.java @@ -922,7 +922,9 @@ public class SimpleGroovyClassDocAssembler extends VisitorAdapter implements Gro private SimpleGroovyClassDoc getCurrentClassDoc() { if (stack.isEmpty()) return null; GroovySourceAST node = getParentNode(); - if (isTopLevelConstruct(node)) return foundClasses.get(getIdentFor(node)); + if (isTopLevelConstruct(node) && foundClasses != null) { + return foundClasses.get(getIdentFor(node)); + } GroovySourceAST saved = stack.pop(); SimpleGroovyClassDoc result = getCurrentClassDoc(); stack.push(saved);
