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

GenericsなMapを使うとClassCastException

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 1.0.44
    • Affects Version/s: 1.0.43
    • Component/s: s2dao-tiger
    • None

      S2Dao1.0.43を使用して、メソッドの戻り値を
      List<Map<String, String>>とすると以下の例外が発生してしまいます。
      (JUnitで実行しました。)

      そういうメソッドがひとつでもあると、正常に動いていた他のメソッドでも
      例外が発生するようになります。
      戻り値がList<Map>ならOKでした。

      できればコレクションクラスは全てジェネリクスにしたいのです。
      対応をご検討いただけないでしょうか?

      java.lang.ClassCastException
      at java.lang.Class.cast(Class.java:2951)
      at org.seasar.dao.annotation.tiger.impl.DaoAnnotationReaderImpl.getBeanClass(DaoAnnotationReaderImpl.java:83)
      at org.seasar.dao.impl.DaoMetaDataImpl$ResultSetHandlerFactoryImpl.createResultSetHandler(DaoMetaDataImpl.java:1022)
      at org.seasar.dao.impl.DaoMetaDataImpl.createResultSetHandler(DaoMetaDataImpl.java:411)
      at org.seasar.dao.impl.DaoMetaDataImpl.setupSelectMethodByManual(DaoMetaDataImpl.java:322)
      at org.seasar.dao.impl.DaoMetaDataImpl.setupMethodByManual(DaoMetaDataImpl.java:303)
      at org.seasar.dao.impl.DaoMetaDataImpl.setupMethodBySqlFile(DaoMetaDataImpl.java:258)
      at org.seasar.dao.impl.DaoMetaDataImpl.setupMethod(DaoMetaDataImpl.java:189)
      at org.seasar.dao.impl.DaoMetaDataImpl.setupMethod(DaoMetaDataImpl.java:181)
      at org.seasar.dao.impl.DaoMetaDataImpl.setupSqlCommand(DaoMetaDataImpl.java:175)
      at org.seasar.dao.impl.DaoMetaDataImpl.initialize(DaoMetaDataImpl.java:153)
      at org.seasar.dao.impl.DaoMetaDataFactoryImpl.createDaoMetaData(DaoMetaDataFactoryImpl.java:123)
      at org.seasar.dao.impl.DaoMetaDataFactoryImpl.getDaoMetaData(DaoMetaDataFactoryImpl.java:105)
      at org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:51)
      at org.seasar.dao.pager.PagerS2DaoInterceptorWrapper.invoke(PagerS2DaoInterceptorWrapper.java:71)
      at jp.co.camnet.macs.dao.master.McDivNameDao$$EnhancedByS2AOP$$15d4de6$$MethodInvocation$$getByPk0.proceed(MethodInvocationClassGenerator.java)
      at org.seasar.javelin.JavelinTraceInterceptor.invoke(Unknown Source)
      at jp.co.camnet.macs.dao.master.McDivNameDao$$EnhancedByS2AOP$$15d4de6$$MethodInvocation$$getByPk0.proceed(MethodInvocationClassGenerator.java)
      at org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:70)
      at jp.co.camnet.macs.dao.master.McDivNameDao$$EnhancedByS2AOP$$15d4de6$$MethodInvocation$$getByPk0.proceed(MethodInvocationClassGenerator.java)
      at jp.co.camnet.macs.dao.master.McDivNameDao$$EnhancedByS2AOP$$15d4de6.getByPk(McDivNameDao$$EnhancedByS2AOP$$15d4de6.java)
      at jp.co.camnet.macs.dao.master.McDivNameDaoTest.test001Tx(McDivNameDaoTest.java:46)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at junit.framework.TestCase.runTest(TestCase.java:164)
      at org.seasar.framework.unit.S2FrameworkTestCase.doRunTest(S2FrameworkTestCase.java:324)
      at org.seasar.extension.unit.S2TestCase.doRunTest(S2TestCase.java:92)
      at org.seasar.framework.unit.S2FrameworkTestCase.runBare(S2FrameworkTestCase.java:188)
      at junit.framework.TestResult$1.protect(TestResult.java:106)
      at junit.framework.TestResult.runProtected(TestResult.java:124)
      at junit.framework.TestResult.run(TestResult.java:109)
      at junit.framework.TestCase.run(TestCase.java:120)
      at junit.framework.TestSuite.runTest(TestSuite.java:230)
      at junit.framework.TestSuite.run(TestSuite.java:225)
      at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

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

              Created:
              Updated:
              Resolved: