yep, that seems to solve the problem. Should I fill a bug report? this is very, very important to me :)
cheers, Esteban El 08/09/2011, a las 4:35p.m., Henrik Sperre Johansen escribió: > On 08.09.2011 21:32, Henrik Sperre Johansen wrote: >> On 08.09.2011 21:30, Henrik Sperre Johansen wrote: >>> On 08.09.2011 21:19, Esteban Lorenzano wrote: >>>> Hi, >>>> (yep, I'm copying tree lists because I think is a vm problem, but can be a >>>> seaside problem, or a pharo problem) >>>> (yes, it can be MY problem too... but I don't think so... ;) >>>> >>>> I'm having this really, really strange problem (because it was working >>>> before, and I do not change anything... so, maybe a change in latest >>>> changes on pharo 1.3, the version I'm using, is the cause)... >>>> This is the problem: >>>> >>>> I'm creating an application who sends an announcement, to edit >>>> something... this announcement ends in a WAComponent>>#call: message... >>>> >>>> The problem is: continuation execution fires a notification >>>> (WARenderNotification), and SubscriptionRegistry>>deliver:to: process the >>>> announcement this way: >>>> >>>> deliver: anAnnouncement to: subs >>>> >>>> subs do: >>>> [:each | >>>> [each deliver: anAnnouncement] >>>> "each is always in subs, so error will be due to each being >>>> last element. >>>> So return, nothing more to process" >>>> ifCurtailed: [self deliver: anAnnouncement to: ([subs after: >>>> each] on: NotFound do: [^self])]] >>>> >>>> ...and curtailedBlock is being executed... and that throws an error. >>>> This was working on older versions of VM, so maybe this is a recent change? >>>> >>>> this error was confirmed in my builds, and also in latest Eliot build. >>>> Also... is confirmed NOT being there in older cogs or interpret >>>> >>>> >>>> and btw... >>>> >>>> self deliver: anAnnouncement to: ([subs after: each] on: NotFound do: >>>> [^self]) >>>> >>>> shouldn't be >>>> >>>> self deliver: anAnnouncement to: ([Array with: (subs after: each)] on: >>>> NotFound do: [^self]) >>>> >>>> (because #deliver:to: is expecting a collection, not a registry? >>>> >>>> thanks, >>>> Esteban >>> subs is a collection. >>> after: returns a collection of the elements after each, or raises a >>> NotFound error if the subscriber was the last one. >>> If the one which was curtailed was the last one (and an error is raised), >>> we don't need to handle delivering anything else, and thus simply return >>> self. >>> >>> At least that's how it's supposed to work... >>> >>> What kind of error is thrown? >>> >>> Cheers, >>> Henry >>> >> Oh yes, use of after: is wrong... >> I was of the impression it would return all objects after the argument, not >> just the next one :/ >> >> This is incompetence, not a VM bug :) >> >> Cheers, >> Henry >> > The correct code should be: > self deliver: anAnnouncement to: (subs copyAfter: each) > > sorry about that :/ > > Cheers, > Henry >
