Mark,

OK, I see, _EOExpressionArray is a very bad exemple of inheritance... 
pretending to be a NSMutableArray but in fact using a NSMutableArray and 
implement some parts of it.

I do not see an easy way to patch this except by adding another fixed 
reimplemented class in ERExtensions. 

I reimplemented it by removing the _array member and adjusting the Clone 
method. Just adding the objectsNoCopy() will not solve other NSMutableArray 
method mis behaviours. 

Either the class is really a NSMutableArray or should not extend it and only 
the implemented methods will exists. With the current situation where we do not 
compile the WO frameworks, I think adjusting the hierarchy is not possible.

Here is my Clone method. All references to _array including methods that only 
forwarded the call are removed.

        public Object clone()
        {
                _EOExpressionArray aCopy = new _EOExpressionArray(_prefix, 
_infix, _suffix);
                aCopy.addObjectsFromArray(this);
                return aCopy;
        }

Do you compile your wonder frameworks ? If you do, I will send you the java 
file or you can create it yourself.

Regards,

Samuel


> Le 13 août 2018 à 10:23, Morris, Mark <mark.mor...@experian.com> a écrit :
> 
> Hi Samuel,
>  
> Thanks for the response!
>  
> Sorry, it was a long night. The problem does indeed occur when 
> objectsNoCopy() returns null, even though there are objects in the 
> EOExpressionArray. However, the method directly in EOAttribute is actually 
> addObjectsFromArray(), which calls objectsNoCopy() in its implementation.
>  
> Regards,
> Mark
>  
> From: Samuel Pelletier <sam...@samkar.com>
> Date: Monday, August 13, 2018 at 6:31 AM
> To: "Morris, Mark" <mark.mor...@experian.com>
> Cc: "webobjects-dev@lists.apple.com" <webobjects-dev@lists.apple.com>
> Subject: Re: EOF bug?
>  
> Hi Mark, 
>  
> I checked my version of EOAttribute and was unable find call to 
> objectsNoCopy() in the code. I checked the WO and ERAttributeExtension 
> versions of the class.
>  
> Are you on an older version of WO ?
>  
> Samuel
>  
> 
> 
> Le 13 août 2018 à 05:32, Morris, Mark <mark.mor...@experian.com 
> <mailto:mark.mor...@experian.com>> a écrit :
>  
> Hi all,
>  
> After much time and effort, I’ve traced a problem in my code to what appears 
> to be a bug in EOF’s _EOExpressionArray.
>  
> Let me state first that we’re way behind in our Wonder version, so it’s 
> possible that Wonder has fixed this already, but a quick search didn’t find 
> it. (We’re planning to catch up to current in the next few months.)
>  
> The problem seems to stem from the fact that _EOExpressionArray extends 
> NSMutableArray, but it doesn’t reimplement objectsNoCopy(). This is a 
> problem, because _EOExpressionArray uses it’s own internal array, not the 
> superclass’s. There’s a critical point in 
> EOAttribute._normalizeDefinitionPath() where objectsNoCopy() is called but 
> returns null, even though the _EOExpressionArray has elements, because it’s 
> referencing the superclass array instead of the one local to 
> _EOExpressionArray.
>  
> Has anyone seen this? Has it been patched? Thanks!
>  
> Regards,
> Mark
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com 
> <mailto:Webobjects-dev@lists.apple.com>)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com 
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.apple.com_mailman_options_webobjects-2Ddev_samuel-2540samkar.com&d=DwMFaQ&c=BNNF-YNv0CLLslhP2Bcx5Q&r=R0ZqsewJs3eSJk7vLCqZv0r5kJlLXQLnGTeg9t8MlqA&m=AdvAfKTkUyccvBpaKhr9GvlfY3653NxMU8J5XO6ue2A&s=yDB_Rzh491N9j7il8RMpWcTkZo6Q_-nHy8gitXhx_28&e=>
> 
> This email sent to sam...@samkar.com <mailto:sam...@samkar.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