db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4748) StringIndexOutOfBoundsException on syntax error (invalid COMMIT)
Date Tue, 20 Jul 2010 15:48:49 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12890284#action_12890284
] 

Knut Anders Hatlen commented on DERBY-4748:
-------------------------------------------

By the way, I think the isolateAnyInitialIdentifier() method is somewhat more complex than
it needs to be in the first place. Replacing it with something like the (untested) loop below
would probably solve the out-of-bounds exception and also make the method easier to read since
it has fewer special cases to check for.

        int idx;
        for (idx = 0; idx < sql.length(); idx++) {
            char ch = sql.charAt(idx);
            if (!Character.isLetter(ch)) {
                // first non-token char found
                break;
            }
        }
        // return initial token if one is found, or the entire string otherwise
        return (idx > 0) ? sql.substring(0, idx) : sql;

> StringIndexOutOfBoundsException on syntax error (invalid COMMIT)
> ----------------------------------------------------------------
>
>                 Key: DERBY-4748
>                 URL: https://issues.apache.org/jira/browse/DERBY-4748
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client, SQL
>    Affects Versions: 10.4.2.1, 10.5.3.1, 10.6.1.0, 10.7.0.0
>         Environment: Windows XP
>            Reporter: Stephen Felts
>            Assignee: Kristian Waagan
>         Attachments: derby-4748-1a-sioobe.diff
>
>
> Start the network server on port 1527 on localhost.
> Run ant on the following:
> <project default="all"> 
>   <property environment="env" /> 
>   <path id="derby.classpath.id"> 
>     <fileset dir="${env.DERBY_LIB"> 
>       <include name="derbynet.jar" /> 
>       <include name="derbyclient.jar" /> 
>     </fileset> 
>   </path> 
>   <target name="all"> 
>     <sql driver="org.apache.derby.jdbc.ClientDriver" 
>          
> url="jdbc:derby://localhost:1527/derbyDB;create=true;user=derbyuser;passsword=derbypwd"

>          userid="derbyuser" 
>          password="derbypwd" 
>          classpathref="derby.classpath.id" 
>          onerror="continue">
> create table mytable1 (mycol varchar(255)); 
> commit; 
>     </sql> 
>   </target> 
> </project> 
> On 10.5.3, I get
>       [sql] Executing commands 
>       [sql] Failed to execute:  commit 
>       [sql] java.sql.SQLSyntaxErrorException: Syntax error: Encountered 
> "commit" 
>  at line 1, column 1. 
>       [sql] 1 of 2 SQL statements executed successfully 
> but on 10.6.1, I get
>      [sql] Executing commands 
> BUILD FAILED 
> java.lang.StringIndexOutOfBoundsException: String index out of range: 6 
>         at java.lang.String.charAt(String.java:686) 
>         at org.apache.derby.client.am.Statement.isolateAnyInitialIdentifier(Unknown Source)

>         at org.apache.derby.client.am.Statement.getStatementToken(Unknown Source) 
>         at org.apache.derby.client.am.Statement.parseSqlAndSetSqlModes(Unknown Source)

> ....

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message