Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 336666

Summary: [Hibernate] HibernateQueryHandler.isMappedFeature throws IllegalArgumentException for non-persistent features
Product: [Modeling] EMF Reporter: Michal Tkacz <Michal.Tkacz>
Component: cdo.coreAssignee: Martin Taal <mtaal>
Status: CLOSED FIXED QA Contact: Eike Stepper <stepper>
Severity: major    
Priority: P3 CC: caspar_d, stepper
Version: 4.0   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Michal Tkacz CLA 2011-02-08 17:50:15 EST
Build Identifier: 1111

Due to the  fix for bug 335675, HibernateQueryHandler.isMappedFeature() which expected CDOClassInfoImpl.getFeatureIndex(int) to throw ArrayIndexOutOfBoundsException now throws IllegalArgumentException for non-persistent features.

java.lang.IllegalArgumentException: Feature not mapped: org.eclipse.emf.ecore.impl.EAttributeImpl@7c92eb86 (name: transientAttr) (ordered: true, unique: true, lowerBound: 0, upperBound: 1) (changeable: false, volatile: true, transient: true, defaultValueLiteral: null, unsettable: false, derived: true) (iD: false)
	at org.eclipse.emf.cdo.internal.common.model.CDOClassInfoImpl.getFeatureIndex(CDOClassInfoImpl.java:98)
	at org.eclipse.emf.cdo.server.internal.hibernate.HibernateQueryHandler.isMappedFeature(HibernateQueryHandler.java:190)
	at org.eclipse.emf.cdo.server.internal.hibernate.HibernateQueryHandler.addToRevisionCache(HibernateQueryHandler.java:163)
	at org.eclipse.emf.cdo.server.internal.hibernate.HibernateQueryHandler.executeQuery(HibernateQueryHandler.java:119)
	at org.eclipse.emf.cdo.internal.server.QueryManager$QueryContext.run(QueryManager.java:284)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)

Reproducible: Always
Comment 1 Eike Stepper CLA 2011-02-09 01:54:02 EST
Hi Martin, can this be related to bug 335675?
Comment 2 Martin Taal CLA 2011-05-14 16:56:14 EDT
Committed in revision 7673
Comment 3 Eike Stepper CLA 2011-06-23 03:40:25 EDT
Available in R20110608-1407