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

[S2JDBC] 同じエンティティに対する最初の問い合わせが複数のスレッドから同時に行われると NullPointerException が発生する問題を修正しました。

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 2.4.44
    • Affects Version/s: 2.4.43
    • Component/s: S2JDBC
    • None

      [S2JDBC] 同じエンティティに対する最初の問い合わせが複数のスレッドから同時に行われると NullPointerException が発生する。

      Caused by: java.lang.NullPointerException
      	at javassist.CtClassType.getFieldsCache(CtClassType.java:784)
      	at javassist.CtClassType.getDeclaredFields(CtClassType.java:770)
      	at org.seasar.framework.util.ClassUtil.getDeclaredFields(ClassUtil.java:361)
      	at org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl.getFields(EntityMetaFactoryImpl.java:243)
      	at org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl.doPropertyMeta(EntityMetaFactoryImpl.java:213)
      	at org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl.createEntityMeta(EntityMetaFactoryImpl.java:142)
      	at org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl.getEntityMetaInternal(EntityMetaFactoryImpl.java:117)
      	at org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl.checkMappedBy(EntityMetaFactoryImpl.java:308)
      	at org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl.resolveRelationship(EntityMetaFactoryImpl.java:285)
      	at org.seasar.extension.jdbc.meta.EntityMetaFactoryImpl.getEntityMeta(EntityMetaFactoryImpl.java:97)
      	at org.seasar.extension.jdbc.query.AutoSelectImpl.prepareEntityMeta(AutoSelectImpl.java:513)
      	at org.seasar.extension.jdbc.query.AutoSelectImpl.prepareTarget(AutoSelectImpl.java:369)
      	at org.seasar.extension.jdbc.query.AutoSelectImpl.prepare(AutoSelectImpl.java:352)
      	at org.seasar.extension.jdbc.query.AbstractSelect.getSingleResult(AbstractSelect.java:179)
      

      Javassist 3.4.0 の CtClassType がスレッドセーフになっていないのが原因 (3.14.0 では修正されていた) だが、Seasar2 側で排他制御する。

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

              Created:
              Updated:
              Resolved: