Ok, so the expected callback descriptors do not exist when they are needed. Now 
maybe try debugging the moment when they are supposed to be created. That would 
be EntityResolver.initCallbacks() method which should be called the first time 
you do anything with Cayenne in your app.

Andrus

On Aug 5, 2012, at 10:32 AM, Kanwar Manish wrote:

> Hi Andrus
> 
> Here are my findings. I think point number three is the reason that
> callbacks are not happening for me.
> 
> Question - Just to reconfirm - if I have configured the callbacks in my
> modeler and I can see an abstract declaration for the callback in the
> parent class, and overriding them in the sub class - it means I have
> configured them correctly?
> 
> 1) Class EntityResolver
> 
>     public LifecycleCallbackRegistry getCallbackRegistry() {
>        if (callbackRegistry == null) {
>            initCallbacks();
>        }
> 
>        return callbackRegistry;
>    }
> 
> *here callbackRegistry is Not null.*
> 
> 2) Class LifeCycleCallBackEventHandler
> 
> void performCallbacks(Persistent object) {
> 
> Statement -  if (!defaultListeners.isEmpty()
>                &&
> !excludingDefaultListeners(object.getObjectId().getEntityName()))
> 
> *here is defaultListeners isEmpty condition is true.*
> 
> 3) Class LifeCycleCallBackEventHandler
> 
> private void performCallbacks(Persistent object, Class<?>
> callbackEntityClass) {
> 
> Statement - Collection<AbstractCallback> entityListeners =
> listeners.get(key);
> 
> *here - entityListeners is null*
> 
> Cheers
> Manish
> 
> On Fri, Aug 3, 2012 at 5:55 PM, Kanwar Manish <[email protected]>wrote:
> 
>> Starting Netbeans has worked. I will post my inputs ASAP.
>> 
>> Cheers
>> Manish
>> 
>> On Fri, Aug 3, 2012 at 5:42 PM, Kanwar Manish <[email protected]>wrote:
>> 
>>> Thanks Andrus and MRG
>>> 
>>> Thankyou all for this much support.
>>> 
>>> I can see at the breakpoint that it is indeed a DataContext only.
>>> 
>>> Unfortunately I need some help from a NetBeans guy since even after
>>> attaching the source - I can't step into the newObject code.
>>> 
>>> Error I get while trying to set a breakpoint for injectInitialValue is
>>> 
>>> "Not able to submit breakpoint LineBreakpoint BaseContext.java : 638,
>>> reason: No source root found for URL
>>> 'jar:file:/home/manish/Downloads/cayenne-server-3.1B1-sources.jar!/org/apache/cayenne/BaseContext.java'.
>>> Verify the setup of project sources.
>>> "
>>> I think if I can cross this - I am close to finding something for sure.
>>> 
>>> Anybody from the netbeans background please - your help is badly required?
>>> 
>>> Thanks
>>> Kanwar Manish
>>> 
>>> 
>>> On Fri, Aug 3, 2012 at 5:02 PM, Andrus Adamchik 
>>> <[email protected]>wrote:
>>> 
>>>> ObjectContext is an interface... When you are dealing with an object in
>>>> debugger, the instance will be of a specific implementation type (there
>>>> can't be an instance of an interface obviously). Which is normally
>>>> DataContext. So yes, not a problem.
>>>> 
>>>> On Aug 3, 2012, at 2:04 PM, Kanwar Manish wrote:
>>>> 
>>>>> Hey Thanks again
>>>>> 
>>>>> This worked out like a charm.
>>>>> 
>>>>> But I am using ObjectContext for creating my objects. I hope that is
>>>> not
>>>>> the problem?
>>>>> 
>>>>> Thanks
>>>>> Kanwar Manish
>>>>> 
>>>>> On Fri, Aug 3, 2012 at 3:54 PM, Andrus Adamchik <
>>>> [email protected]>wrote:
>>>>> 
>>>>>> I am an Eclipse user.. I have no NetBeans experience at all
>>>> unfortunately.
>>>>>> 
>>>>>> But you can get the source jars matching Cayenne binary jars straight
>>>> from
>>>>>> Maven repo. Here is the one you likely need:
>>>>>> 
>>>>>> 
>>>>>> 
>>>> http://search.maven.org/remotecontent?filepath=org/apache/cayenne/cayenne-server/3.1B1/cayenne-server-3.1B1-sources.jar
>>>>>> 
>>>>>> Andrus
>>>>>> 
>>>>>> On Aug 3, 2012, at 1:16 PM, Kanwar Manish wrote:
>>>>>> 
>>>>>>> Thanks Andrus.
>>>>>>> 
>>>>>>> I am afraid that will be a bit tough for me - for now. I am a
>>>> complete
>>>>>> Java
>>>>>>> and Linux noob, coming from .NET background.
>>>>>>> 
>>>>>>> I tried attaching 3.1B1 source to the binaries [in Netbeans 7.2] but
>>>>>>> failed. I just can't figure out which source folder to attach with
>>>> which
>>>>>>> Cayenne Jar [Client, server, tools or lifecycle].
>>>>>>> 
>>>>>>> Can anybody help me out here please?
>>>>>>> 
>>>>>>> Thanks
>>>>>>> Manish
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Fri, Aug 3, 2012 at 1:28 PM, Andrus Adamchik <
>>>> [email protected]
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> I am not aware of any issues with PostAdd. Your best bet is to debug
>>>>>>>> inside Cayenne DataContext.newObject(..). Specifically in
>>>> BaseContext
>>>>>> there
>>>>>>>> is a method "injectInitialValue" that has this line at the end:
>>>>>>>> 
>>>>>>>> // invoke callbacks
>>>>>>>> getEntityResolver().getCallbackRegistry().performCallbacks(
>>>>>>>>              LifecycleEvent.POST_ADD,
>>>>>>>>              object);
>>>>>>>> 
>>>>>>>> This is where callbacks are invoked. Please share what you find
>>>> here,
>>>>>> and
>>>>>>>> maybe based on those clues we can unwind it further.
>>>>>>>> 
>>>>>>>> Cheers,
>>>>>>>> Andrus
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Aug 3, 2012, at 9:08 AM, KM wrote:
>>>>>>>> 
>>>>>>>>> Removed the check for the key.
>>>>>>>>> 
>>>>>>>>> It seems that the problem is that this is not getting fired at all.
>>>>>>>>> Breakpoint is not being hit. This is strange.
>>>>>>>>> 
>>>>>>>>> I have checked for the abstract declaration in the parent class.
>>>>>> Setting
>>>>>>>>> this up in the modeler.
>>>>>>>>> 
>>>>>>>>> Has anyone faced this problem before?
>>>>>>>>> 
>>>>>>>>> Thanks
>>>>>>>>> Kanwar Manish
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>> 
>>>>>> 
>>>> http://cayenne.195.n3.nabble.com/Can-default-values-be-set-in-Constructor-instead-of-setPersistenceState-tp3320047p4024479.html
>>>>>>>>> Sent from the Cayenne - User mailing list archive at Nabble.com.
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>>>> 
>>>> 
>>>> 
>>> 
>> 

Reply via email to