CM Qualifier (or Declared Qualifier) is not honoured in 100% cases
------------------------------------------------------------------
Key: CAY-1005
URL: https://issues.apache.org/cayenne/browse/CAY-1005
Project: Cayenne
Issue Type: Bug
Components: Cayenne Core Library
Affects Versions: 3.0
Environment: ROP, LOCAL_CACHE, paging. Derby db.
Reporter: Marcin Skladaniec
Assignee: Andrus Adamchik
I have a suspicion that the qualifier set in the modeller is not always incorporated in query.
Occasionally we are getting an exception like this (not only against this record) :
CAUSE - [v.3.0-SNAPSHOT Jan 23 2008 23:16:39] Error resolving fault, no matching row exists in the database for ObjectId: <ObjectId:Node, id=323>org.apache.cayenne.FaultFailureException: [v.3.0-SNAPSHOT Jan 23 2008 23:16:39] Error resolving fault, no matching row exists in the database for ObjectId: <ObjectId:Node, id=323> at org.apache.cayenne.BaseContext.prepareForAccess(BaseContext.java:88) at org.apache.cayenne.CayenneDataObject.readProperty(CayenneDataObject.java:202) at org.apache.cayenne.reflect.generic.DataObjectBaseProperty.readProperty(DataObjectBaseProperty.java:42) at org.apache.cayenne.util.ObjectDetachOperation$1.visitAttribute(ObjectDetachOperation.java:160) at org.apache.cayenne.reflect.generic.DataObjectAttributeProperty.visit(DataObjectAttributeProperty.java:50) at org.apache.cayenne.reflect.PersistentDescriptor.visitDeclaredProperties(PersistentDescriptor.java:339) at org.apache.cayenne.reflect.PersistentDescriptor.visitProperties(PersistentDescriptor.java:372) at org.apache.cayenne.util.ObjectDetachOperation.detach(ObjectDetachOperation.java:99) at org.apache.cayenne.access.ClientServerChannelQueryAction.toClientObjects(ClientServerChannelQueryAction.java:182) at org.apache.cayenne.access.ClientServerChannelQueryAction.interceptObjectConversion(ClientServerChannelQueryAction.java:142) at org.apache.cayenne.access.ClientServerChannelQueryAction.execute(ClientServerChannelQueryAction.java:70) at org.apache.cayenne.access.ClientServerChannel.onQuery(ClientServerChannel.java:82) at org.apache.cayenne.remote.service.DispatchHelper.dispatch(DispatchHelper.java:40) at org.apache.cayenne.remote.service.BaseRemoteService.processMessage(BaseRemoteService.java:153)
Model defines a qualifier for the Node entity : (isDeleted = null) or (isDeleted = 0). I checked the database and the Node which caused the trouble has isDeleted ==1, it should never be fetched in the first place.
I was not able to isolate a test case, it is only my guess that there might be a bug.
-- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
This archive was generated by hypermail 2.0.0 : Tue Mar 11 2008 - 05:36:51 EDT