Uploaded image for project: 'S2Container'
  1. S2Container
  2. CONTAINER-8

(シングルクォート)に囲まれた文字列に?が入っているSQL文を実行するとArrayIndexOutOfBoundsException

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 2.3.11, 2.4.0-rc-1
    • Affects Version/s: 2.3.10, 2.4.0-beta-4
    • Component/s: S2Container
    • None
    • Environment:
      log4jの出力レベルをDEBUGにする。

      次のテストコードを実行する。
      public class FooTest extends S2TestCase {
      public void testExecuteTx() throws Exception {
      String sql = "update emp set job = 'AA?A', ename = ?, where empno = ?";
      BasicUpdateHandler handler = new BasicUpdateHandler(getDataSource(), sql);
      int ret = handler.execute(new Object[]

      { "SCOTT", new Integer(7788) }

      );
      }
      }

      すると次の例外が発生する。
      java.lang.ArrayIndexOutOfBoundsException: 2
      at org.seasar.extension.jdbc.impl.BasicHandler.getCompleteSql(BasicHandler.java:140)
      at org.seasar.extension.jdbc.impl.BasicUpdateHandler.execute(BasicUpdateHandler.java:62)
      at org.seasar.extension.jdbc.impl.BasicUpdateHandler.execute(BasicUpdateHandler.java:56)

      ※S2Conrainer.NETでも似た問題(https://www.seasar.org/issues/browse/CONTAINERNET-31)が発生している。

            Assignee:
            higa higa
            Reporter:
            rmiyax rmiyax
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: