Hi Fred,

On Jun 26, 2011, at 6:28 PM, Fred Opims wrote:

> Hi Chuck!
> I found the problem! Entity Responsable is a subclass of Person entity. So 
> Responsable had two primary keys : responsable_id and person_id.

I think you are doing something wrong there in the model.  The superclass and 
subclasses all MUST have the same PK.  Responsable must use person_id as  the 
PK.  If you don't do that, EOF is going to be very, very confused.


Chuck




> But the relationship was based only on responsable_id, that's  why i got the 
> exception.
> To fix the problem, i have removed the constraint primary key on person_id 
> and i kept it on responsable_id because i need  responsable_id to be set as 
> primary key in postgresql database!
> 
> Thank you for you light .  
> 
> 
> On Sun, Jun 26, 2011 at 8:47 PM, Chuck Hill <[email protected]> wrote:
> That sure looks  like a model problem.  It  could be that one of the plist 
> files is damaged.  Open up the plist files for the two related entities and 
> see if they contain what Entity Modeler is showing.
> 
> Have you renamed any entities or attributes?
> 
> 
> 
> Chuck
> 
> On Jun 26, 2011, at 5:21 PM, Fred Opims wrote:
> 
>> Hi Chuck!
>> Thank you for the quick response! .
>> 
>> I made sure that Responsable primary Key is the Vehicule foreign Key and i 
>> have validated the model. 
>> 
>> Here is the stack trace
>> 
>> Jun 26 20:17:15 TicketManagmentServer[54345] WARN  
>> er.extensions.eof.ERXModelGroup  - Clearing previous class descriptions
>> Jun 26 20:17:15 TicketManagmentServer[54345] WARN  
>> er.extensions.eof.ERXModelGroup  - The EOModel 'erprototypes' has an empty 
>> connection dictionary.
>> Jun 26 20:17:15 TicketManagmentServer[54345] WARN  
>> er.extensions.eof.ERXModelGroup  - The EOModel 'erprototypes' has an empty 
>> connection dictionary.
>> Jun 26 20:17:16 TicketManagmentServer[54345] DEBUG NSLog  - Using JDBCPlugIn 
>> 'com.webobjects.jdbcadaptor.PostgresqlPlugIn' for JDBCAdaptor@2019733318
>> Jun 26 20:17:16 TicketManagmentServer[54345] DEBUG NSLog  - Using JDBCPlugIn 
>> 'com.webobjects.jdbcadaptor.PostgresqlPlugIn' for JDBCAdaptor@1901677475
>> Jun 26 20:17:16 TicketManagmentServer[54345] DEBUG NSLog  -  connecting with 
>> dictionary: {plugin = "Postgresql"; username = "postgres"; driver = 
>> "org.postgresql.Driver"; password = "<password deleted for log>"; URL = 
>> "jdbc:postgresql://localhost/TicketManagment"; }
>> Jun 26 20:17:16 TicketManagmentServer[54345] DEBUG NSLog  - fetching JDBC 
>> Info with JDBCContext@1433183189
>> Jun 26 20:17:16 TicketManagmentServer[54345] DEBUG NSLog  -  connecting with 
>> dictionary: {plugin = "Postgresql"; username = "postgres"; driver = 
>> "org.postgresql.Driver"; password = "<password deleted for log>"; URL = 
>> "jdbc:postgresql://localhost/TicketManagment"; }
>> Jun 26 20:17:16 TicketManagmentServer[54345] DEBUG NSLog  -  === Begin 
>> Internal Transaction
>> Jun 26 20:17:16 TicketManagmentServer[54345] DEBUG NSLog  -  
>> evaluateExpression: <com.webobjects.jdbcadaptor.PostgresqlExpression: 
>> "SELECT t0.annee, t0.couleur, t0.immatriculation, t0.marque, t0.modele, 
>> t0.numero_serie, t0.responsable_id, t0.statut_id, t0.sujet_id, t0.type FROM 
>> Vehicule t0 WHERE t0.immatriculation like ?::text ESCAPE '|' ORDER BY 
>> t0.immatriculation ASC" withBindings: 1:"667PTS"(immatriculation)>
>> Jun 26 20:17:16 TicketManagmentServer[54345] DEBUG NSLog  - 1 row(s) 
>> processed
>> Jun 26 20:17:16 TicketManagmentServer[54345] DEBUG NSLog  -  === Commit 
>> Internal Transaction
>> Jun 26 20:17:16 TicketManagmentServer[54345] WARN  NSLog  - 
>> <com.opsoft.tms.app.DirectAction>: Exception in performActionNamed() on the 
>> action "HandleNewCreatedTicket" with the message: 
>> java.lang.NullPointerException
>> Jun 26 20:17:16 TicketManagmentServer[54345] ERROR 
>> er.directtoweb.ERD2WDirectAction  - Error with action 
>> HandleNewCreatedTicket:java.lang.NullPointerException, 
>> formValues:{createTicket = (""); imageData.mimetype = 
>> ("application/octet-stream"); imageData = (<class 
>> com.webobjects.appserver._private.WOInputStreamData (offset=0, length=768, 
>> data=[60]'<', [63]'?', [120]'x', [109]'m', [108]'l', [32]' ', [118]'v', 
>> [101]'e', [114]'r', [115]'s', [105]'i', [111]'o', [110]'n', [61]'=', 
>> [34]'"', [49]'1', [46]'.', [48]'0', [34]'"', [32]' ', [101]'e', [110]'n', 
>> [99]'c', [111]'o', [100]'d', [105]'i', [110]'n', [103]'g', [61]'=', 
>> [34]'"'...)>); imageData.filename = ("ticket.plist"); }
>> NullPointerException
>>   at 
>> com.webobjects.eoaccess.EODatabaseContext._objectFaultWithSnapshotRelationshipEditingContext(EODatabaseContext.java:2356)
>>      ... skipped 1 stack elements
>>   at 
>> com.webobjects.eoaccess.EOAccessDeferredFaultHandler.createFaultForDeferredFault(EOAccessDeferredFaultHandler.java:49)
>>   at 
>> com.webobjects.eocontrol.EOCustomObject.willReadRelationship(EOCustomObject.java:1279)
>>   at 
>> er.extensions.eof.ERXGenericRecord.willReadRelationship(ERXGenericRecord.java:409)
>>   at 
>> com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer$_LazyGenericRecordBinding.valueInObject(_EOMutableKnownKeyDictionary.java:614)
>>   at 
>> er.extensions.eof.ERXGenericRecord$TouchingBinding.valueInObject(ERXGenericRecord.java:205)
>>   at 
>> com.webobjects.eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java:1634)
>>   at com.opsoft.tms._Vehicule.responsable(_Vehicule.java:93)
>>   at com.opsoft.tms.Vehicule.responsable(Vehicule.java:11)
>>   at 
>> com.opsoft.tms.app.DirectAction.getDictionaryFromVehicule(DirectAction.java:400)
>>   at 
>> com.opsoft.tms.app.DirectAction.vehiculesFromImmatriculation(DirectAction.java:380)
>>   at 
>> com.opsoft.tms.app.DirectAction.HandleNewCreatedTicketAction(DirectAction.java:183)
>>      ... skipped 4 stack elements
>>   at 
>> com.webobjects.appserver.WODirectAction.performActionNamed(WODirectAction.java:144)
>>   at 
>> er.extensions.appserver.ERXDirectAction.performActionNamed(ERXDirectAction.java:401)
>>   at 
>> er.directtoweb.ERD2WDirectAction.performActionNamed(ERD2WDirectAction.java:449)
>>   ... skipped 9 stack elements
>> 
>> 
>> On Sun, Jun 26, 2011 at 8:12 PM, Chuck Hill <[email protected]> wrote:
>> Hi Fred,
>> 
>> 
>> On Jun 26, 2011, at 5:01 PM, Fred Opims wrote:
>> 
>> > Hi!
>> > I have some problem to a to-one relationship.
>> > I have an Entity with 3 properties ( color, brand, model) and one 
>> > relationship Responsable,
>> >
>> > When i make a fetch, i'm able to access to all propeties, but i can't 
>> > access to relation responsable.
>> > Here is the code
>> >
>> >         String imm = vehicule.immatriculation();  //Access OK
>> >         String marque = vehicule.marque(); //Access OK
>> >         String modele = vehicule.modele(); //Access OK
>> >
>> > When i do
>> >     Responsable resp = vehicule.responsable(); i have a 
>> > _objectFaultWithSnapshotRelationshipEditingContext exception.
>> 
>> That sounds like you have a problem with data consistency in your database.  
>> Turn on SQL logging (launch with -DEOAdaptorDebugEnabled=true).
>> 
>> Or your model is wrong.  Can you post the entire exception message and stack 
>> trace?
>> 
>> You should very, very rarely need to use willRead and willReadRelationship 
>> for anything. You should not be using it here.
>> 
>> 
>> Chuck
>> 
>> 
>> 
>> >
>> > In the WebObject Entreprise Objects Programming Guide, it is written that 
>> > the fault is fired when the relationship's data is needed.
>> >
>> > But when i do the following, i still have the same 
>> > _objectFaultWithSnapshotRelationshipEditingContext exception.
>> >
>> >         String name= vehicule.responsable().name();
>> >         String firstname= vehicule.responsable().firstname();
>> >
>> > It is also written to call willRead() before accessing to the 
>> > relationship's data.
>> >
>> > So i did:
>> >           vehicule.willRead();
>> >             String name= vehicule.responsable().name();
>> >         String firstname= vehicule.responsable().firstname();
>> >
>> > But it doesn't work. Same exception
>> >
>> > After that, in Vehicule.java i did the following as suggested in the doc:
>> >
>> > public class Vehicule extends _Vehicule {
>> >     @SuppressWarnings("unused")
>> >     private static Logger log = Logger.getLogger(Vehicule.class);
>> >
>> >      public com.package.Responsable responsable() {
>> >          willRead();
>> >             return super.responsable();
>> >      }
>> >
>> >         public static boolean usesDeferredFaultCreation() {
>> >
>> >             return true;
>> >
>> >         }
>> > }
>> >
>> > I made sure the my model is valid and that data in the database are well 
>> > set.
>> >
>> > Can you tell me please if i'm using willRead the right way? How can i 
>> > access to this relationship?
>> >
>> > Thank you very much!
>> >
>> > Fred
>> > _______________________________________________
>> > Do not post admin requests to the list. They will be ignored.
>> > Webobjects-dev mailing list      ([email protected])
>> > Help/Unsubscribe/Update your Subscription:
>> > http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
>> >
>> > This email sent to [email protected]
>> 
>> --
>> Chuck Hill             Senior Consultant / VP Development
>> 
>> Come to WOWODC this July for unparalleled WO learning opportunities and real 
>> peer to peer problem solving!  Network, socialize, and enjoy a great 
>> cosmopolitan city.  See you there!  http://www.wocommunity.org/wowodc11/
>> 
>> 
> 
> -- 
> 
> Chuck Hill             Senior Consultant / VP Development
> 
> Come to WOWODC this July for unparalleled WO learning opportunities and real 
> peer to peer problem solving!  Network, socialize, and enjoy a great 
> cosmopolitan city.  See you there!  http://www.wocommunity.org/wowodc11/
> 
> 

-- 
Chuck Hill             Senior Consultant / VP Development

Come to WOWODC this July for unparalleled WO learning opportunities and real 
peer to peer problem solving!  Network, socialize, and enjoy a great 
cosmopolitan city.  See you there!  http://www.wocommunity.org/wowodc11/

Attachment: smime.p7s
Description: S/MIME cryptographic signature

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

This email sent to [email protected]

Reply via email to