unclebob / fitnesse

FitNesse -- The Acceptance Test Wiki
fitnesse.org
Other
2.04k stars 713 forks source link

StackOverflow exception during test execution #804

Closed amartyushov closed 9 years ago

amartyushov commented 9 years ago

Currently I have a test project, which uses 20110104 fitnesse with 20060719 fitlibrary. This project has three main wiki spaces with ~1000 tests inside in each. And everything is executed well.

And I am trying to migrate to new version of fitnesse 20150814 with same fitlibrary (20060719). When I try to start tests in one wiki space everything is good, in second wikispace - everything is good. But when I try to execute tests in third wiki space I get an StackOverflow exception:

org.apache.velocity.exception.MethodInvocationException: Invocation of method 'execute' in class fitnesse.responders.run.SuiteResponder$TestExecutor threw exception java.lang.StackOverflowError at testPage.vm[line 29, column 15] org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:261) org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:187) org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280) org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369) org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) org.apache.velocity.runtime.directive.Parse.render(Parse.java:260) org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207) org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) org.apache.velocity.Template.merge(Template.java:356) org.apache.velocity.Template.merge(Template.java:260) fitnesse.html.template.HtmlPage.render(HtmlPage.java:81) fitnesse.responders.run.SuiteResponder.doSending(SuiteResponder.java:118) fitnesse.responders.ChunkingResponder.startSending(ChunkingResponder.java:70) fitnesse.http.ChunkedResponse.sendTo(ChunkedResponse.java:25) fitnesse.FitNesseExpediter.sendResponse(FitNesseExpediter.java:103) fitnesse.FitNesseExpediter.start(FitNesseExpediter.java:52) fitnesse.FitNesseServer.serve(FitNesseServer.java:28) fitnesse.FitNesseServer.serve(FitNesseServer.java:21) fitnesse.socketservice.SocketService$ServerRunner.run(SocketService.java:122) java.lang.Thread.run(Thread.java:745)

Assume that depth of trees in each wikispace is almost the same (~5-8 levels).

Problem is occured only when I try to execute big number of tests (~200) from problematic wikispace. If I try to execute one, ten, fifty tests from problematic wikispace everything is ok.

Please, check more informative stacktrace:

java.lang.StackOverflowError at java.lang.StringCoding.encode(StringCoding.java:387) at java.lang.String.getBytes(String.java:956) at java.lang.ProcessEnvironment$Variable.valueOfQueryOnly(ProcessEnvironment.java:165) at java.lang.ProcessEnvironment$Variable.valueOfQueryOnly(ProcessEnvironment.java:161) at java.lang.ProcessEnvironment$StringEnvironment.get(ProcessEnvironment.java:238) at java.lang.ProcessEnvironment$StringEnvironment.get(ProcessEnvironment.java:220) at java.util.Collections$UnmodifiableMap.get(Collections.java:1339) at java.lang.ProcessEnvironment.getenv(ProcessEnvironment.java:85) at java.lang.System.getenv(System.java:888) at fitnesse.wiki.SystemVariableSource.getProperty(SystemVariableSource.java:27) at fitnesse.wiki.SystemVariableSource.findVariable(SystemVariableSource.java:21) at fitnesse.wiki.UrlPathVariableSource.findVariable(UrlPathVariableSource.java:23) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) HERE ARE 900 SIMILAR LINES

at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18)
at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59)
at fitnesse.wikitext.parser.Symbol.evaluateVariables(Symbol.java:109)
at fitnesse.wikitext.parser.TextMaker.make(TextMaker.java:21)
at fitnesse.wikitext.parser.Scanner.makeNextStep(Scanner.java:109)
at fitnesse.wikitext.parser.Scanner.moveNextIgnoreFirst(Scanner.java:78)
at fitnesse.wikitext.parser.Parser.moveNext(Parser.java:39)
at fitnesse.wikitext.parser.Include.parse(Include.java:21)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:137)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108)
at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Include.parse(Include.java:61)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:137)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108)
at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Include.parse(Include.java:61)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:137)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108)
at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Include.parse(Include.java:61)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:137)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108)
at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Include.parse(Include.java:61)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:137)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108)
at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Include.parse(Include.java:61)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:137)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108)
at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Include.parse(Include.java:61)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:137)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108)
at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Include.parse(Include.java:61)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)
at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:141)
at fitnesse.wikitext.parser.Parser.parse(Parser.java:137)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112)
at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108)
at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35)
at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)

(sorry for a big stacktrace, I was not able to attach file)

six42 commented 9 years ago

I think I had the same problem.

My suite uses symbolic links, suite setup pages and wiki page names that starts with numbers. Do you have this also in your suite?

I had no time to debug it but fixed it by moving the suite setup page to a different level.

jediwhale commented 9 years ago

I suspect there is one page in your 3rd suite that has something that is confusing the new parser. Can you try to narrow down to the smallest group of tests that cause the exception? If you can find a single page that causes the failure, it will greatly help us track down the problem.

On 2015-10-01 01:20, amartyushov wrote:

Currently I have a test project, which uses 20110104 fitnesse with 20060719 fitlibrary. This project has three main wiki spaces with ~1000 tests inside in each. And everything is executed well.

And I am trying to migrate to new version of fitnesse 20150814 with same fitlibrary (20060719). When I try to start tests in one wiki space everything is good, in second wikispace - everything is good. But when I try to execute tests in third wiki space I get an StackOverflow exception:

org.apache.velocity.exception.MethodInvocationException: Invocation of method 'execute' in class fitnesse.responders.run.SuiteResponder$TestExecutor threw exception java.lang.StackOverflowError at testPage.vm[line 29, column 15] org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:261) org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:187) org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280) org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369) org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) org.apache.velocity.runtime.directive.Parse.render(Parse.java:260) org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207) org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) org.apache.velocity.Template.merge(Template.java:356) org.apache.velocity.Template.merge(Template.java:260) fitnesse. html.template.HtmlPage.render(HtmlPage.java:81) fitnesse.responders.run.SuiteResponder.doSending(SuiteResponder.java:118) fitnesse.responders.ChunkingResponder.startSending(ChunkingResponder.java:70) fitnesse.http.ChunkedResponse.sendTo(ChunkedResponse.java:25) fitnesse.FitNesseExpediter.sendResponse(FitNesseExpediter.java:103) fitnesse.FitNesseExpediter.start(FitNesseExpediter.java:52) fitnesse.FitNesseServer.serve(FitNesseServer.java:28) fitnesse.FitNesseServer.serve(FitNesseServer.java:21) fitnesse.socketservice.SocketService$ServerRunner.run(SocketService.java:122) java.lang.Thread.run(Thread.java:745)

Assume that depth of trees in each wikispace is almost the same (~5-8 levels).

Problem is occured only when I try to execute big number of tests (~200) from problematic wikispace. If I try to execute one, ten, fifty tests from problematic wikispace everything is ok.

Please, check more informative stacktrace:

java.lang.StackOverflowError at java.lang.StringCoding.encode(StringCoding.java:387) at java.lang.String.getBytes(String.java:956) at java.lang.ProcessEnvironment$Variable.valueOfQueryOnly(ProcessEnvironment.java:165) at java.lang.ProcessEnvironment$Variable.valueOfQueryOnly(ProcessEnvironment.java:161) at java.lang.ProcessEnvironment$StringEnvironment.get(ProcessEnvironment.java:238) at java.lang.ProcessEnvironment$StringEnvironment.get(ProcessEnvironment.java:220) at java.util.Collections$UnmodifiableMap.get(Collections.java:1339) at java.lang.ProcessEnvironment.getenv(ProcessEnvironment.java:85) at java.lang.System.getenv(System.java:888) at fitnesse.wiki.SystemVariableSource.getProperty(SystemVariableSource.java:27) at fitnesse.wiki.SystemVariableSource.findVariable(SystemVariableSource.java:21) at fitnesse.wiki.UrlPathVariableSource.findVariable(UrlPathVariableSource.java:23) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wiki.BaseWikiPage$ParentPageVariableSource.findVariable(BaseWikiPage.java:187) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) HERE ARE 900 SIMILAR LINES

at fitnesse.wikitext.parser.CompositeVariableSource.findVariable(CompositeVariableSource.java:18) at fitnesse.wikitext.parser.ParsingPage.findVariable(ParsingPage.java:59) at fitnesse.wikitext.parser.Symbol.evaluateVariables(Symbol.java:109) at fitnesse.wikitext.parser.TextMaker.make(TextMaker.java:21) at fitnesse.wikitext.parser.Scanner.makeNextStep(Scanner.java:109) at fitnesse.wikitext.parser.Scanner.moveNextIgnoreFirst(Scanner.java:78) at fitnesse.wikitext.parser.Parser.moveNext(Parser.java:39) at fitnesse.wikitext.parser.Include.parse(Include.java:21) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Parser.parse(Parser.java:137) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108) at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Include.parse(Include.java:61) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Parser.parse(Parser.java:137) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108) at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Include.parse(Include.java:61) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Parser.parse(Parser.java:137) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108) at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Include.parse(Include.java:61) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Parser.parse(Parser.java:137) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108) at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Include.parse(Include.java:61) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Parser.parse(Parser.java:137) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108) at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Include.parse(Include.java:61) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Parser.parse(Parser.java:137) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108) at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Include.parse(Include.java:61) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Parser.parse(Parser.java:137) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108) at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Include.parse(Include.java:61) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116) at fitnesse.wikitext.parser.ParseSpecification.parse(ParseSpecification.java:87) at fitnesse.wikitext.parser.Parser.parse(Parser.java:141) at fitnesse.wikitext.parser.Parser.parse(Parser.java:137) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:112) at fitnesse.wikitext.parser.Parser.parseTo(Parser.java:108) at fitnesse.wikitext.parser.Collapsible.parse(Collapsible.java:35) at fitnesse.wikitext.parser.ParseSpecification.parseSymbol(ParseSpecification.java:116)

(sorry for a big stacktrace, I was not able to attach file)

— Reply to this email directly or view it on GitHub https://github.com/unclebob/fitnesse/issues/804.

Cheers, Mike Stockdale

/fit/Sharp http://fitsharp.github.com Syterra Software Inc. http://www.syterra.com

amartyushov commented 9 years ago

jediwhale, Thanks for your GREAT idea. Really, I started to localize test/page which produced stackOverflow exception and I found it. The issue is that I have placed a reference for page1 on exactly this page1:

e.g. there is following page with path suite1.suite2.suite3

and in content.txt file of this page there is following text: !include .suite1.suite2.suite3