Uploaded image for project: 'S2Dao'
  1. S2Dao
  2. DAO-137

SQLファイルにSQLの文字列リテラルとして'/*'や'*/'があるとTokenNotClosedRuntimeExceptionが発生する。

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Minor Minor
    • None
    • Affects Version/s: 1.0.48-RC1
    • Component/s: s2dao
    • None

      たとえば次のようなSQLをSQLファイルに記述しておいて実行すると発生します。

       
      SELECT * FROM emp WHERE job = '/*'
      
       
      Caused by: org.seasar.dao.TokenNotClosedRuntimeException: [EDAO0002]'が*/で閉じていません
      	at org.seasar.dao.parser.SqlTokenizerImpl.parseComment(SqlTokenizerImpl.java:168)
      	at org.seasar.dao.parser.SqlTokenizerImpl.next(SqlTokenizerImpl.java:79)
      	at org.seasar.dao.parser.SqlParserImpl.parse(SqlParserImpl.java:60)
      	at org.seasar.dao.impl.AbstractDynamicCommand.setSql(AbstractDynamicCommand.java:46)
      	at org.seasar.dao.impl.DaoMetaDataImpl.setupSelectMethodByManual(DaoMetaDataImpl.java:396)
      	at org.seasar.dao.impl.DaoMetaDataImpl.setupMethodByManual(DaoMetaDataImpl.java:375)
      	at org.seasar.dao.impl.DaoMetaDataImpl.setupMethodBySqlFile(DaoMetaDataImpl.java:299)
      	at org.seasar.dao.impl.DaoMetaDataImpl.setupMethod(DaoMetaDataImpl.java:197)
      

      修正の難易度は高そうです。'/*'など文字列リテラルとしてSQLファイルに記述する必要はほとんどないと思うので、緊急度は高くないと思います。

            Assignee:
            Unassigned Unassigned
            Reporter:
            taedium taedium
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated: