[ 
https://issues.apache.org/jira/browse/GROOVY-8129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniil Ovchinnikov updated GROOVY-8129:
---------------------------------------
    Description: 
{code}
''()
{code}

Fails with:
{noformat}
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
        at java.lang.String.substring(String.java:1931)
        at 
org.codehaus.groovy.runtime.MetaClassHelper.capitalize(MetaClassHelper.java:484)
        at 
org.codehaus.groovy.control.StaticImportVisitor.getAccessorName(StaticImportVisitor.java:522)
        at 
org.codehaus.groovy.control.StaticImportVisitor.findStaticFieldOrPropAccessorImportFromModule(StaticImportVisitor.java:402)
        at 
org.codehaus.groovy.control.StaticImportVisitor.transformMethodCallExpression(StaticImportVisitor.java:278)
        at 
org.codehaus.groovy.control.StaticImportVisitor.transform(StaticImportVisitor.java:108)
        at 
org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:142)
        at 
org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
        at 
org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
        at 
org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
        at 
org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:53)
        at 
org.codehaus.groovy.control.StaticImportVisitor.visitConstructorOrMethod(StaticImportVisitor.java:84)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
        at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1076)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:53)
        at 
org.codehaus.groovy.control.StaticImportVisitor.visitClass(StaticImportVisitor.java:78)
        at 
org.codehaus.groovy.control.CompilationUnit$13.call(CompilationUnit.java:671)
        at 
org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1065)
        at 
org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
        at 
org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
        at 
org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
        at 
groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
        at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
        at groovy.lang.GroovyShell.run(GroovyShell.java:517)
        at groovy.lang.GroovyShell.run(GroovyShell.java:507)
        at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
        at groovy.ui.GroovyMain.run(GroovyMain.java:384)
        at groovy.ui.GroovyMain.process(GroovyMain.java:370)
        at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
        at groovy.ui.GroovyMain.main(GroovyMain.java:109)
{noformat}

Same with other empty strings.

  was:
{code}
''()
{code}

Fails with:
{noformat}
ava.lang.StringIndexOutOfBoundsException: String index out of range: -1
        at java.lang.String.substring(String.java:1931)
        at 
org.codehaus.groovy.runtime.MetaClassHelper.capitalize(MetaClassHelper.java:484)
        at 
org.codehaus.groovy.control.StaticImportVisitor.getAccessorName(StaticImportVisitor.java:522)
        at 
org.codehaus.groovy.control.StaticImportVisitor.findStaticFieldOrPropAccessorImportFromModule(StaticImportVisitor.java:402)
        at 
org.codehaus.groovy.control.StaticImportVisitor.transformMethodCallExpression(StaticImportVisitor.java:278)
        at 
org.codehaus.groovy.control.StaticImportVisitor.transform(StaticImportVisitor.java:108)
        at 
org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:142)
        at 
org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
        at 
org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
        at 
org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
        at 
org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:53)
        at 
org.codehaus.groovy.control.StaticImportVisitor.visitConstructorOrMethod(StaticImportVisitor.java:84)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
        at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1076)
        at 
org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:53)
        at 
org.codehaus.groovy.control.StaticImportVisitor.visitClass(StaticImportVisitor.java:78)
        at 
org.codehaus.groovy.control.CompilationUnit$13.call(CompilationUnit.java:671)
        at 
org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1065)
        at 
org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
        at 
org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
        at 
org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
        at 
groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
        at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
        at groovy.lang.GroovyShell.run(GroovyShell.java:517)
        at groovy.lang.GroovyShell.run(GroovyShell.java:507)
        at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
        at groovy.ui.GroovyMain.run(GroovyMain.java:384)
        at groovy.ui.GroovyMain.process(GroovyMain.java:370)
        at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
        at groovy.ui.GroovyMain.main(GroovyMain.java:109)
{noformat}

Same with other empty strings.


> SIOOBE Method call with empty name
> ----------------------------------
>
>                 Key: GROOVY-8129
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8129
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 2.4.10
>            Reporter: Daniil Ovchinnikov
>
> {code}
> ''()
> {code}
> Fails with:
> {noformat}
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
>       at java.lang.String.substring(String.java:1931)
>       at 
> org.codehaus.groovy.runtime.MetaClassHelper.capitalize(MetaClassHelper.java:484)
>       at 
> org.codehaus.groovy.control.StaticImportVisitor.getAccessorName(StaticImportVisitor.java:522)
>       at 
> org.codehaus.groovy.control.StaticImportVisitor.findStaticFieldOrPropAccessorImportFromModule(StaticImportVisitor.java:402)
>       at 
> org.codehaus.groovy.control.StaticImportVisitor.transformMethodCallExpression(StaticImportVisitor.java:278)
>       at 
> org.codehaus.groovy.control.StaticImportVisitor.transform(StaticImportVisitor.java:108)
>       at 
> org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:142)
>       at 
> org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
>       at 
> org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:37)
>       at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:166)
>       at 
> org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71)
>       at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104)
>       at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115)
>       at 
> org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:53)
>       at 
> org.codehaus.groovy.control.StaticImportVisitor.visitConstructorOrMethod(StaticImportVisitor.java:84)
>       at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126)
>       at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1076)
>       at 
> org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:53)
>       at 
> org.codehaus.groovy.control.StaticImportVisitor.visitClass(StaticImportVisitor.java:78)
>       at 
> org.codehaus.groovy.control.CompilationUnit$13.call(CompilationUnit.java:671)
>       at 
> org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1065)
>       at 
> org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
>       at 
> org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
>       at 
> org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
>       at 
> groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
>       at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
>       at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
>       at groovy.lang.GroovyShell.run(GroovyShell.java:517)
>       at groovy.lang.GroovyShell.run(GroovyShell.java:507)
>       at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
>       at groovy.ui.GroovyMain.run(GroovyMain.java:384)
>       at groovy.ui.GroovyMain.process(GroovyMain.java:370)
>       at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
>       at groovy.ui.GroovyMain.main(GroovyMain.java:109)
> {noformat}
> Same with other empty strings.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to