Hi Markus,

To me it looks like you're getting bitten by the 
"applyRestrictingQualifierOnInsert" feature:

## Specifies that you want restricting qualifiers "applied" to your newly
## inserted objects.  For instance, if you have an entity that is part of
## single table inheritance and your restricting qualifier only uses 
## EOAndQualifiers and EOKeyValueQualifiers, ERX can interpret the qualifier
## and make your EO's automatically match the restricting qualifier.  This
## allows you to skip the awakeFromInsertion step where you have to remember
## to make your EO match the restricting qualifier you chose in your model. 
# er.extensions.ERXEnterpriseObject.applyRestrictingQualifierOnInsert=true

The makeQualifierTrue method in ERXEOControlUtilities is not able to handle 
your case (and apparently shouldn't). Overriding 
applyRestrictingQualifierOnInsert() in ElectronicDocument and returning false 
should do the trick…

Fabian

> Am 31.03.2017 um 22:21 schrieb Markus Ruggiero <mailingli...@kataputt.com>:
> 
> In a large project we have used "extends EOGenericRecord" in our _Entity.java 
> templates.
> 
> Just recently we wondered why (probably just an oversight) and changed that 
> to "extends ERXGenericRecord". Don't see any reason why this should not work.
> 
> One of our entities (ElectronicDocument) in the eomodel has the following 
> qualifier set in the basic properties in Entity Modeler: (product.visible = 
> 'Y')
> ElectronicDocument has a to-one relationship to Product called product and a 
> Product has a char(1) attribute called visible with possible values 'Y' and 
> 'N'
> 
> Or idea is to only ever work with electronic documents that belong to a 
> visible product. This works with EOGenericRecord but does not when using 
> ERXGenericRecord. Using ERXGenericRecord ultimately results in the following 
> crash (dump below). Action was creating a new ElectronicDocument in a D2W app.
> 
> Why?????
> It seems that ERXGenericRecord.takeValueForKey() passes its params without 
> anything to EOCustomObject.takeValueForKey() which then crashes. It looks as 
> if the call should go to takeValueForKeyPath() instead or somesuch. Is this a 
> bug in Wonder? What do I miss?
> 
> Thanks for any clarification.
> 
> ---markus---
> 
> 
> 
> Application:  ec_admin 
> Error:        <com.webobjects.foundation.NSKeyValueCoding$UnknownKeyException 
> message '<com.dsm.ec_admin.eo.ElectronicDocument 0x1be699be> 
> takeValueForKey(): attempt to assign value to unknown key: 'product.visible'. 
> This class does not have an instance variable of the name product.visible or 
> _product.visible, nor a method of the name setProduct.visible or 
> _setProduct.visible' object '<com.dsm.ec_admin.eo.ElectronicDocument 
> pk:"null">' key 'product.visible'> 
> Reason:       <com.dsm.ec_admin.eo.ElectronicDocument 0x1be699be> 
> takeValueForKey(): attempt to assign value to unknown key: 'product.visible'. 
> This class does not have an instance variable of the name product.visible or 
> _product.visible, nor a method of the name setProduct.visible or 
> _setProduct.visible 
> Stack trace:  
> File  Line#   Method  Package
> NSKeyValueCoding.java 1399    handleTakeValueForUnboundKey    
> com.webobjects.foundation
> EOCustomObject.java   1562    handleTakeValueForUnboundKey    
> com.webobjects.eocontrol
> NSKeyValueCoding.java 519     handleTakeValueForUnboundKey    
> com.webobjects.foundation
> NSKeyValueCoding.java 899     setValueInObject        
> com.webobjects.foundation
> EOCustomObject.java   1529    takeValueForKey com.webobjects.eocontrol
> ERXGenericRecord.java 1253    takeValueForKey er.extensions.eof
> NSKeyValueCoding.java 469     takeValueForKey com.webobjects.foundation
> ERXEOControlUtilities.java    2190    makeQualifierTrue       
> er.extensions.eof
> ERXGenericRecord.java 513     awakeFromInsertion      er.extensions.eof
> EOEditingContext.java 2871    insertObjectWithGlobalID        
> com.webobjects.eocontrol
> ERXEC.java    978     insertObjectWithGlobalID        er.extensions.eof
> EOEditingContext.java 2889    insertObject    com.webobjects.eocontrol
> ERXEC.java    989     insertObject    er.extensions.eof
> ERXEOControlUtilities.java    322     createAndInsertObject   
> er.extensions.eof
> ERXEOControlUtilities.java    297     createAndInsertObject   
> er.extensions.eof
> ERD2WFactory.java     214     _newObjectWithEntity    er.directtoweb
> ERD2WFactory.java     225     editPageForNewObjectWithEntityNamed     
> er.directtoweb
> MenuHeader.java       78      newObjectAction com.dsm.ec_admin.components
> NativeMethodAccessorImpl.java NA      invoke0 sun.reflect
> NativeMethodAccessorImpl.java 62      invoke  sun.reflect
> DelegatingMethodAccessorImpl.java     43      invoke  sun.reflect
> Method.java   497     invoke  java.lang.reflect
> NSKeyValueCoding.java 636     methodValue     com.webobjects.foundation
> NSKeyValueCoding.java 1134    valueInObject   com.webobjects.foundation
> NSKeyValueCoding.java 1324    valueForKey     com.webobjects.foundation
> WOComponent.java      1736    valueForKey     com.webobjects.appserver
> NSKeyValueCoding.java 447     valueForKey     com.webobjects.foundation
> NSKeyValueCodingAdditions.java        212     valueForKeyPath 
> com.webobjects.foundation
> WOComponent.java      1804    valueForKeyPath com.webobjects.appserver
> WOKeyValueAssociation.java    50      valueInComponent        
> com.webobjects.appserver._private
> WOImageButton.java    257     invokeAction    
> com.webobjects.appserver._private
> WODynamicGroup.java   105     invokeChildrenAction    
> com.webobjects.appserver._private
> WODynamicGroup.java   115     invokeAction    
> com.webobjects.appserver._private
> ERXWOForm.java        218     invokeAction    
> er.extensions.components._private
> WODynamicGroup.java   105     invokeChildrenAction    
> com.webobjects.appserver._private
> WODynamicGroup.java   115     invokeAction    
> com.webobjects.appserver._private
> WOConditional.java    86      invokeAction    
> com.webobjects.appserver._private
> WODynamicGroup.java   105     invokeChildrenAction    
> com.webobjects.appserver._private
> WODynamicGroup.java   115     invokeAction    
> com.webobjects.appserver._private
> WOComponent.java      1079    invokeAction    com.webobjects.appserver
> WOComponentReference.java     127     invokeAction    
> com.webobjects.appserver._private
> WODynamicGroup.java   105     invokeChildrenAction    
> com.webobjects.appserver._private
> WODynamicGroup.java   115     invokeAction    
> com.webobjects.appserver._private
> WOComponent.java      1079    invokeAction    com.webobjects.appserver
> WOComponentReference.java     127     invokeAction    
> com.webobjects.appserver._private
> ERXSwitchComponent.java       120     invokeAction    
> er.extensions.components._private
> WOComponent.java      1079    invokeAction    com.webobjects.appserver
> ERD2WPage.java        747     invokeAction    er.directtoweb.pages
> WOSession.java        1357    invokeAction    com.webobjects.appserver
> WOApplication.java    1745    invokeAction    com.webobjects.appserver
> ERXAjaxApplication.java       119     invokeAction    
> er.extensions.appserver.ajax
> ERXApplication.java   2006    invokeAction    er.extensions.appserver
> ERXComponentRequestHandler.java       157     _dispatchWithPreparedPage       
> er.extensions.appserver
> ERXComponentRequestHandler.java       235     _dispatchWithPreparedSession    
> er.extensions.appserver
> ERXComponentRequestHandler.java       268     
> _dispatchWithPreparedApplication        er.extensions.appserver
> ERXComponentRequestHandler.java       302     _handleRequest  
> er.extensions.appserver
> ERXComponentRequestHandler.java       375     handleRequest   
> er.extensions.appserver
> WOApplication.java    1687    dispatchRequest com.webobjects.appserver
> ERXApplication.java   2127    dispatchRequestImmediately      
> er.extensions.appserver
> ERXApplication.java   2092    dispatchRequest er.extensions.appserver
> WOWorkerThread.java   144     runOnce com.webobjects.appserver._private
> WOWorkerThread.java   226     run     com.webobjects.appserver._private
> Thread.java   745     run     java.lang
> NA : Non applicable, JIT activated
> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/lists.fabian%40e-lumo.com
> 
> This email sent to lists.fab...@e-lumo.com


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to