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);

Reply via email to