[squeak-dev] Re: Error "opaque URL with no scheme--shouldn't
happen!" after updating trunk from 10474 to 10500
Levente Uzonyi
leves at elte.hu
Tue Jan 11 01:40:54 UTC 2011
Quoting Frank Shearar <frank.shearar at angband.za.org>:
> On 2011/01/02 11:13, Levente Uzonyi wrote:
>> On Fri, 31 Dec 2010, Frank Shearar wrote:
>>
>>> On 2010/12/31 16:12, Levente Uzonyi wrote:
>>>> On Fri, 31 Dec 2010, Frank Shearar wrote:
>>>>
>>>>> On 2010/12/31 13:59, Enrico Spinielli wrote:
>>>>>> Hi,
>>>>>> I still have the following applied in my image and I see it is still
>>>>>> not yet in Trunk.
>>>>>> Any core developer willing to commit it?
>>>>>
>>>>> It's not in the Inbox anymore and you're right, it wasn't applied. I
>>>>> have a local copy I can put back in the Inbox, if it's convenient? Or
>>>>> if preferred I can remake the submission based on Network's latest
>>>>> version.
>>>>
>>>> I moved it to the treated inbox, because another solution was applied.
>>>> SchemeRegistry has HttpUrl at nil, so Url urlClassForScheme: nil should
>>>> return HttpUrl.
>>>
>>> Right, I see so. My confusion in reconstructing history came from
>>> Andreas suggesting the fix I implemented in Network-fbs.91, after
>>> suggesting we either fix the call sites causing the issue or what you
>>> then did on 2010/10/28, Levente, and then not seeing anything happen
>>> after that (in my possibly too-brief investigation).
>>>
>>> (Why, by the way, do we _not_ call super initialize?)
>>
>>> From which method?
>
> Url class>>initialize. In a git-like diff we have
>
> +++ SchemeRegistry := Dictionary new
> --- super initialize.
> --- SchemeRegistry := Dictionary new.
> --- SchemeRegistry
> at: 'browser' put: BrowserUrl;
> at: 'file' put: FileUrl;
> at: 'ftp' put: FtpUrl;
> at: 'http' put: HttpUrl;
> at: 'https' put: HttpUrl;
> at: 'mailto' put: MailtoUrl;
> at: nil put: HttpUrl;
> yourself
> --- at: 'mailto' put: MailtoUrl.
There are a few reasons why we shouldn't send #initialize to super
from the class side. In this case it doesn't make a real difference,
because Url is a subclass of Object, and Object implements #initialize
on the class side relatively safely. What are the problems with the
super sends?
- if your class is not a subclass of Object, but ProtoObject, then
sending #initialize to super will mess up your class, because you will
execute Behavior >> #initialize.
- a superclass may initialize class variables which are shared by it's
subclasses, doing that from the subclasses may break some stuff.
Levente
>
> frank
>>
>>
>> Levente
>>
>>>
>>> frank
>>>>
>>>>
>>>> Levente
>>>>
>>>>>
>>>>> frank
>>>>>
>>>>>>
>>>>>> Hope it helps
>>>>>> Bye
>>>>>> Enrico
>>>>>>
>>>>>> On Wed, Sep 8, 2010 at 08:31, Frank Shearar
>>>>>> <frank.shearar at angband.za.org> wrote:
>>>>>>> On 2010/09/08 08:04, Andreas Raab wrote:
>>>>>>>>
>>>>>>>> On 9/7/2010 11:01 PM, Frank Shearar wrote:
>>>>>>>>>
>>>>>>>>> There's a quicker test: Do It with: Url absoluteFromText: 'foo'
>>>>>>>>>
>>>>>>>>> Up until my submission (which is causing this trouble), "no scheme"
>>>>>>>>> meant "use an HttpUrl".
>>>>>>>>>
>>>>>>>>> I can see two ways forward: (a) fix the calling sites like C. A.
>>>>>>>>> Oliver's submission, or (b) add "at: nil put: HttpUrl" in the
>>>>>>>>> SchemeRegistry.
>>>>>>>>>
>>>>>>>>> I prefer (a) myself: 'foo' isn't any kind of valid _absolute_ URI.
>>>>>>>>>
>>>>>>>>> The Inbox contains Network-fbs.90, which contains (b)'s fix.
>>>>>>>>
>>>>>>>> Perhaps even easier:
>>>>>>>>
>>>>>>>> ^SchemeRegistry at: (scheme ifNil:['http']) ifAbsent:[GenericUrl]
>>>>>>>
>>>>>>> I prefer this to my submission: it doesn't pollute SchemeRegistry.
>>>>>>>
>>>>>>> Network-fbs.91 contains it.
>>>>>>>
>>>>>>> frank
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
More information about the Squeak-dev
mailing list
|