db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dag H. Wanvik (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3157) Lexical error (EOF) when comment consists of a single character
Date Mon, 29 Oct 2007 17:37:50 GMT

    [ https://issues.apache.org/jira/browse/DERBY-3157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12538545
] 

Dag H. Wanvik commented on DERBY-3157:
--------------------------------------

This happens when the lexer pops out of one of the states LOOKFOR_DE*
MORE productions (because there is longer a chance of finding
--derby-properties) *and* there are no more characters forthcoming.

This is an error,
cf. https://javacc.dev.java.net/doc/tokenmanager.html:

   "Whenever the end of file <EOF> is detected, it causes the creation
   of an <EOF> token (regardless of the current state of the lexical
   analyzer). However, if an <EOF> is detected in the middle of a
   match for a regular expression, or immediately after a MORE regular
   expression has been matched, an error is reported.

The last condition applies, so the SKIP production:

<IT_IS_NOT_DERBYPROPERTIES_COMMENT> SKIP :
{
	<SINGLE_LINE_SQLCOMMENT: (~["\n","\r"])* ("\n"|"\r"|"\r\n")?> : DEFAULT
}

which is supposed to catch this doesn't apply unless there is at least
one more character. So, for example all of these will fail:

    -- x
    -- dx
    -- derby-prox
    -- derby-propx

whereas these will all work:

    -- xx
    -- dxx
    -- derby-proxx
    -- derby-propxx

The first 'x' is chewed when in a MORE state, so next is EOF.


> Lexical error (EOF) when comment consists of a single character
> ---------------------------------------------------------------
>
>                 Key: DERBY-3157
>                 URL: https://issues.apache.org/jira/browse/DERBY-3157
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.3.1.4, 10.4.0.0
>            Reporter: Knut Anders Hatlen
>            Priority: Minor
>
> The following statement fails with an SQLException. Adding whitespace or other characters
at the end of the comment makes it pass. Adding more whitespace at the beginning of the comment
doesn't help.
> PreparedStatement ps = c.prepareStatement("VALUES 1 -- x");
> Exception in thread "main" java.sql.SQLSyntaxErrorException: Lexical error at line 1,
column 14.  Encountered: <EOF> after : "".
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source)
> 	at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
> 	at comment.main(comment.java:5)
> Caused by: java.sql.SQLException: Lexical error at line 1, column 14.  Encountered: <EOF>
after : "".
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
Source)
> 	... 14 more
> Caused by: ERROR 42X02: Lexical error at line 1, column 14.  Encountered: <EOF>
after : "".
> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> 	at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
> 	at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown
Source)
> 	... 8 more

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