• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Qualifier Evaluation with Object in Multiple Editing Contexts
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Qualifier Evaluation with Object in Multiple Editing Contexts


  • Subject: Qualifier Evaluation with Object in Multiple Editing Contexts
  • From: Henrique Prange <email@hidden>
  • Date: Mon, 20 May 2019 19:52:51 -0300

Hey guys,

I've been using the EOQualifier.evaluateWithObject method to filter some EOs in
memory. Everything works fine except for one particular case. It always returns
false if I try to evaluate a qualifier containing EOs with an EO from another
editing context.

The code below demonstrates the problem:

EOEditingContext ec1 = // create new ERXEC;
Foo foo = ... // Fetch Foo using ec1
EOQualifier q = Bar.FOO.is(foo);

EOEditingContext ec2 = // create new ERXEC;
Bar bar = ... // Fetch bar related to foo using ec2

q.evaluateWithObject(bar); // returns false
ERXEOControlUtilities.eoEquals(bar.foo(), foo); // returns true

The qualifier evaluates to false because the editing contexts of bar.foo() and
foo are different, even though their EOGlobalIDs are the same. This behavior is
not consistent with the result of the same qualifier being applied to a fetch
specification (fetching from the database). In this case, EOF will return the
instance of Bar as expected.

After some research, I found that I can extend the
EOQualifier.ComparisonSupport class to evaluate all EOGenericRecord objects
according to the ERXEOControlUtilities.eoEquals contract. I had a positive
outcome after a preliminary experiment.

I'd be interested to hear your views about this.

- IMO, it is a bug. Do you agree?
- Can you imagine any side effects of this fix?
- Since this change affects the in-memory evaluation of every type of EO, do
you think it's appropriate to fix it on Wonder?

I'm willing to contribute a pull request if that makes sense.

Cheers,

HP

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Qualifier Evaluation with Object in Multiple Editing Contexts
      • From: Paul Hoadley via Webobjects-dev <email@hidden>
  • Prev by Date: Re: Problem Downloading Large Files
  • Next by Date: RE: EXTERNAL-Re: Maven builds and fetchSpecs
  • Previous by thread: WOToOneRelationship vs ERXToOneRelationship weirdness
  • Next by thread: Re: Qualifier Evaluation with Object in Multiple Editing Contexts
  • Index(es):
    • Date
    • Thread