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

Status: Resolved
Project: S2Container
Component/s: S2JDBC
Affects Version/s: 2.4.43
Fix Version/s: 2.4.44

Type: Bug Priority: Major
Reporter: koichik Assignee: koichik
Resolution: Fixed Votes: 0
Labels: None


 Description   

[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 側で排他制御する。



 Comments   
Comment by koichik [ 2010-10-25 ]

対応しました。
http://www.seasar.org/source/browse/s2container?view=revision&revision=4472

Generated at Sat Apr 27 08:38:42 JST 2024 using Jira 9.15.0#9150000-sha1:9ead8528714127d8cfabf2446010d7e62c0a195c.