On Sep 3, 2010, at 7:16 PM, Farrukh Ijaz wrote:
> On 2010-09-04, at 2:04 AM, Chuck Hill wrote:
>> On Sep 3, 2010, at 2:53 PM, Farrukh Ijaz wrote:
>>
>>> Hi,
>>>
>>> Is there a way to check if the editingContext is disposed?
>>
>> There is, but it is not exposed.
>>
>>
>>> I guess there should be something called isDisposed(), it is useful for
>>> following scenario.
>>>
>>> private EOEditingContext _editingContext;
>>>
>>> public EOEditingContext editingContext() {
>>> if(_editingContext == null || _editingContext.isDisposed()) {
>>> _editingContext = ERXEC.newEditingContext();
>>> }
>>> return _editingContext;
>>> }
>>>
>>> This ensures that whenever the call is made to editingContext(), the
>>> editing context will be valid.
>>>
>>> Just a thought.
>>
>>
>> I can't think of a good coding practice that would want that code.
>> dispose() is normally called by finalization. If you dispose of your ECs
>> manually, earlier, you should either null the reference or replace the EC.
>> That would be good coding practice. Keeping a reference to a disposed EC
>> seems... undesirable.
>
> I've seen this in practice (good or bad I don't know) when we needed to
> process large amount of data and nullifying EC or replacing EC was not
> releasing the memory consumed by original EC (monitored using JConsole), the
> call to dispose() released the memory. What would be the reason then? Perhaps
> terribly bad code or are there any strong references to EC?
I did not say that calling dispose() was bad practice. I said that keeping a
reference around to a disposed EC was bad practice. I can think of stronger
words for it. :-)
What you should be doing:
...
if (haveProcessedALotOfObjects) {
_editingContext.dispose();
_editingContext = null;
}
...
public EOEditingContext editingContext() {
if(_editingContext == null) {
_editingContext = ERXEC.newEditingContext();
}
return _editingContext;
}
Simple, totally safe, and no need for additional API.
Chuck
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their overall
knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
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]