Epicea and #name in #behaviorAffectedName

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Epicea and #name in #behaviorAffectedName

Torsten Bergmann
Hi,

in latest Pharo 6 image 60494 I run into some trouble today where the
deprecation warning dialog popped up and repeated itself unstoppable
due to Epicea.

It is hard to reproduce but what I found out was that I had a class
modification (represented by EpClassModification) which run into a state
where "newClass" was nil and therefore in EpClassModification>>#behaviorAffectedName
the message #name was sent to nil.

So #name was found in Object and as we all know we deprecated it now
which lead to the deprecation dialog, leading to the deprecation dialog,
leading to the deprecation dialog, ...

Nearly all implementors of Epiceas #behaviorAffectedName send #name
which is ok if there is a valid object it is sent to.

I do not know if we should protect them somehow in case something
goes wrong (like having nil in newClass) or if we should keep this
untouched.

At least I wanted to inform because I do not know if this later
gets others into trouble too and losing their changes because Epicea
does not record.

Thanks
T.

Reply | Threaded
Open this post in threaded view
|

Re: Epicea and #name in #behaviorAffectedName

tinchodias
Hi Torsten, just copied your report into here:


I'll see it ASAP. Thanks and sorry for my delay.

Martín


El 19/5/2017 17:45, "Torsten Bergmann" <[hidden email]> escribió:
Hi,

in latest Pharo 6 image 60494 I run into some trouble today where the
deprecation warning dialog popped up and repeated itself unstoppable
due to Epicea.

It is hard to reproduce but what I found out was that I had a class
modification (represented by EpClassModification) which run into a state
where "newClass" was nil and therefore in EpClassModification>>#behaviorAffectedName
the message #name was sent to nil.

So #name was found in Object and as we all know we deprecated it now
which lead to the deprecation dialog, leading to the deprecation dialog,
leading to the deprecation dialog, ...

Nearly all implementors of Epiceas #behaviorAffectedName send #name
which is ok if there is a valid object it is sent to.

I do not know if we should protect them somehow in case something
goes wrong (like having nil in newClass) or if we should keep this
untouched.

At least I wanted to inform because I do not know if this later
gets others into trouble too and losing their changes because Epicea
does not record.

Thanks
T.