About AnObsoleteSunitNameResolver

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

About AnObsoleteSunitNameResolver

Maurzio Boriani

Hi all,        
   some day until now everytime I run a test (written by me or not) I got
this error message (in debug )

AnObsoleteSUnitNameResolver class>> classNamed (messageNotUnderstand).

This class (AnObsoleteSunitNameResolver) cannot be found in SystemBrowser...

As last thing before this I done a massive update by SqueakMap...

Anyone has any idea about this or how to debug this error
 (as said I cannot find this class nowhere :( )

thanks in advance.

--
Maurizio Boriani
GPG key: 0xCC0FBF8F
 => E429 A37C 5259 763C 9DEE  FC8B 5D61 C796 CC0F BF8F <=

Reply | Threaded
Open this post in threaded view
|

Re: About AnObsoleteSunitNameResolver

Edgar J. De Cleene
Maurizio Boriani puso en su mail :

> Hi all,        
>    some day until now everytime I run a test (written by me or not) I got
> this error message (in debug )
>
> AnObsoleteSUnitNameResolver class>> classNamed (messageNotUnderstand).
>
> This class (AnObsoleteSunitNameResolver) cannot be found in SystemBrowser...
>
> As last thing before this I done a massive update by SqueakMap...
>
> Anyone has any idea about this or how to debug this error
>  (as said I cannot find this class nowhere :( )
>
> thanks in advance.

Save your image and in a backup copy you could do:

SmalltalkImage current fixObsoleteReference

If still have obsoletes , you could try:

| outputStream arreglar|
Transcript open.
    outputStream _ ReferenceStream fileNamed: 'clasesObsoletas.txt'.
arreglar _ (Smalltalk obsoleteClasses).
Transcript show: arreglar size;cr.
  1 to: arreglar size do: [:c | (arreglar at:c )
 allInstancesDo: [ :i | i becomeForward: nil].
outputStream nextPut: (arreglar at:c ) printString.
Transcript show: (arreglar at:c ) printString  ;cr.
(arreglar at:c )  becomeForward: nil.].
outputStream close.
3 timesRepeat: [Smalltalk garbageCollect].

And beg you image don't blow :=)

Edgar



       
       
               
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas


Reply | Threaded
Open this post in threaded view
|

Re: About AnObsoleteSunitNameResolver

Maurzio Boriani
>>>>> "Lic" == Lic Edgar J De Cleene <[hidden email]> writes:

    Lic> Save your image and in a backup copy you could do:

ok

    Lic> SmalltalkImage current fixObsoleteReference

this one drop out two classes

    Lic> If still have obsoletes , you could try:

    Lic> | outputStream arreglar| Transcript open.  outputStream _
    Lic> ReferenceStream fileNamed: 'clasesObsoletas.txt'.  arreglar _
    Lic> (Smalltalk obsoleteClasses).  Transcript show: arreglar
    Lic> size;cr.  1 to: arreglar size do: [:c | (arreglar at:c )
    Lic> allInstancesDo: [ :i | i becomeForward: nil].  outputStream
    Lic> nextPut: (arreglar at:c ) printString.  Transcript show:
    Lic> (arreglar at:c ) printString ;cr.  (arreglar at:c )
    Lic> becomeForward: nil.].  outputStream close.  3 timesRepeat:
    Lic> [Smalltalk garbageCollect].

    Lic> And beg you image don't blow :=)

with this vm crash :(

    Lic> Edgar

is there a method to remove only one Obsolete? (most of them are
etoy related, I'm interested in having sunit working again...)

Also, what's these obsolete stuff?

thanks

--
Maurizio Boriani
GPG key: 0xCC0FBF8F
 => E429 A37C 5259 763C 9DEE  FC8B 5D61 C796 CC0F BF8F <=

Reply | Threaded
Open this post in threaded view
|

Re: About AnObsoleteSunitNameResolver

Pavel Krivanek
In reply to this post by Edgar J. De Cleene
On 8/3/06, Lic. Edgar J. De Cleene <[hidden email]> wrote:

> Maurizio Boriani puso en su mail :
>
> > Hi all,
> >    some day until now everytime I run a test (written by me or not) I got
> > this error message (in debug )
> >
> > AnObsoleteSUnitNameResolver class>> classNamed (messageNotUnderstand).
> >
> > This class (AnObsoleteSunitNameResolver) cannot be found in SystemBrowser...
> >
> > As last thing before this I done a massive update by SqueakMap...
> >
> > Anyone has any idea about this or how to debug this error
> >  (as said I cannot find this class nowhere :( )
> >
> > thanks in advance.
>
> Save your image and in a backup copy you could do:
>
> SmalltalkImage current fixObsoleteReference
>
> If still have obsoletes , you could try:
>
> | outputStream arreglar|
> Transcript open.
>     outputStream _ ReferenceStream fileNamed: 'clasesObsoletas.txt'.
> arreglar _ (Smalltalk obsoleteClasses).
> Transcript show: arreglar size;cr.
>   1 to: arreglar size do: [:c | (arreglar at:c )
>  allInstancesDo: [ :i | i becomeForward: nil].
> outputStream nextPut: (arreglar at:c ) printString.
> Transcript show: (arreglar at:c ) printString  ;cr.
> (arreglar at:c )  becomeForward: nil.].
> outputStream close.
> 3 timesRepeat: [Smalltalk garbageCollect].
>
> And beg you image don't blow :=)
>
> Edgar

Removing of obsolete classes using becomeForward: nil is *very bad
idea*. You have to find all references to obsoleteClasses manually,
clean all source codes, recompile stricken methods and so on.

-- Pavel

Reply | Threaded
Open this post in threaded view
|

Re: About AnObsoleteSunitNameResolver

Maurzio Boriani
>>>>> "Pavel" == Pavel Krivanek <[hidden email]> writes:

    Pavel> Removing of obsolete classes using becomeForward: nil is
    Pavel> *very bad idea*. You have to find all references to
    Pavel> obsoleteClasses manually, clean all source codes, recompile
    Pavel> stricken methods and so on.

how can I do that? If search for AnObsoleteSunitNameResolver I don't
find anything...

    Pavel> -- Pavel

thanks


--
Maurizio Boriani
GPG key: 0xCC0FBF8F
 => E429 A37C 5259 763C 9DEE  FC8B 5D61 C796 CC0F BF8F <=

Reply | Threaded
Open this post in threaded view
|

Re: About AnObsoleteSunitNameResolver

Pavel Krivanek
On 8/4/06, Maurizio Boriani <[hidden email]> wrote:
> >>>>> "Pavel" == Pavel Krivanek <[hidden email]> writes:
>
>     Pavel> Removing of obsolete classes using becomeForward: nil is
>     Pavel> *very bad idea*. You have to find all references to
>     Pavel> obsoleteClasses manually, clean all source codes, recompile
>     Pavel> stricken methods and so on.
>
> how can I do that? If search for AnObsoleteSunitNameResolver I don't
> find anything...

Using "SystemNavigation default obsoleteClasses" or "Smalltalk
obsoleteClasses" you will see the list of obsoleteClasses. Then you
can continue with the hunt.

(SystemNavigation default obsoleteClasses detect: [:c | c name =
#AnObsoleteSunitNameResolver]) allInstances inspect

or then

(Utilities pointersTo: (SystemNavigation default obsoleteClasses
detect: [:c | c name = #AnObsoleteSunitNameResolver])) inspect

or (in <= 3.8)

(Smalltalk pointersTo: (Smalltalk obsoleteClasses detect: [:c | c name
= #AnObsoleteSunitNameResolver])) inspect

In the inspectors you can find next references using "object pointing
to this value"

-- Pavel

Reply | Threaded
Open this post in threaded view
|

Re: About AnObsoleteSunitNameResolver

Maurzio Boriani
>>>>> "Pavel" == Pavel Krivanek <[hidden email]> writes:

    Pavel> Using "SystemNavigation default obsoleteClasses" or
    Pavel> "Smalltalk obsoleteClasses" you will see the list of
    Pavel> obsoleteClasses. Then you can continue with the hunt.

[...]

    Pavel> or (in <= 3.8)

    Pavel> (Smalltalk pointersTo: (Smalltalk obsoleteClasses detect:
    Pavel> [:c | c name = #AnObsoleteSunitNameResolver])) inspect

using this I got an Array inspector with seven elements

    Pavel> In the inspectors you can find next references using
    Pavel> "object pointing to this value"

doing this I got new inspectors... but I cannot understand how culd I
remove (or rebuild or... I don't know) this reference and subtisute them
with newer.

I suppose there are old references (to object which doesn't exists anymore
in the system) which must be substituted with newer. How could I do that?

    Pavel> -- Pavel

thanks very much for your support.



--
Maurizio Boriani
GPG key: 0xCC0FBF8F
 => E429 A37C 5259 763C 9DEE  FC8B 5D61 C796 CC0F BF8F <=

Reply | Threaded
Open this post in threaded view
|

Re: About AnObsoleteSunitNameResolver

Edgar J. De Cleene
In reply to this post by Maurzio Boriani
Maurizio Boriani puso en su mail :

> with this vm crash :
As Pavel said, is dangerous, and as I said ALWAYS do with a BACKUP image.
> is there a method to remove only one Obsolete? (most of them are
> etoy related, I'm interested in having sunit working again...)
>
> Also, what's these obsolete stuff?

See what in your directory , the "bad cure" should produce a .txt file named
clasesObsoletas.txt.
So , here you could do a forensic analysis of if any obsolete go caught

The complete is  replace ' AnObsoleteUrl' by what was the last in your image
(the last saved to clasesObsoletas.txt)

| outputStream arreglar|
Transcript open.
    outputStream _ ReferenceStream fileNamed: 'clasesObsoletas.txt'.
arreglar _ (Smalltalk obsoleteClasses).
Transcript show: arreglar size;cr.
  1 to: arreglar size do: [:c | (arreglar at:c )
 allInstancesDo: [ :i | i becomeForward: nil].
>>>(arreglar at:c ) printString = 'AnObsoleteUrl' ifTrue: [self halt].
outputStream nextPut: (arreglar at:c ) printString.
Transcript show: (arreglar at:c ) printString  ;cr.
(arreglar at:c )  becomeForward: nil.].
outputStream close.
3 timesRepeat: [Smalltalk garbageCollect].

Instead of "nil" , you could put String new, but the image could blow also.
Sometimes if you change to arreglar _ (Smalltalk obsoleteClasses) reverse,
all obsolete goes.
Or you could need put a self halt and do class by class
It's black art, and we have different spells.
I do many times and if the procedure completes, never have problem again.

> Also, what's these obsolete stuff?
Sounds like someone delete class badly,

I don't know what Squeak are using you
> SmalltalkImage current fixObsoleteReference
>
> this one drop out two classes
So if you save in this point, you have a cleaner system .

I afraid what the Pavel tip is more tedious but safer.
Could send mail whit what Smalltalk obsoleteClasses prints ?

Good luck

Edgar



       
       
               
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas


Reply | Threaded
Open this post in threaded view
|

Re: About AnObsoleteSunitNameResolver

Maurzio Boriani
In reply to this post by Maurzio Boriani
>>>>> "Maurizio" == Maurizio Boriani <[hidden email]> writes:

>>>>> "Pavel" == Pavel Krivanek <[hidden email]> writes:
    Pavel> Using "SystemNavigation default obsoleteClasses" or
    Pavel> "Smalltalk obsoleteClasses" you will see the list of
    Pavel> obsoleteClasses. Then you can continue with the hunt.

    Maurizio> [...]

    Pavel> or (in <= 3.8)

    Pavel> (Smalltalk pointersTo: (Smalltalk obsoleteClasses detect:
    Pavel> [:c | c name = #AnObsoleteSunitNameResolver])) inspect

    Maurizio> using this I got an Array inspector with seven elements

    Pavel> In the inspectors you can find next references using
    Pavel> "object pointing to this value"

    Maurizio> doing this I got new inspectors... but I cannot
    Maurizio> understand how culd I remove (or rebuild or... I don't
    Maurizio> know) this reference and subtisute them with newer.

done :) all references are substituted with new ones :))


    Maurizio> I suppose there are old references (to object which
    Maurizio> doesn't exists anymore in the system) which must be
    Maurizio> substituted with newer. How could I do that?

using inspectors all works well :)

    Pavel> -- Pavel

thanks very much for your support :))

bye

--
Maurizio Boriani
GPG key: 0xCC0FBF8F
 => E429 A37C 5259 763C 9DEE  FC8B 5D61 C796 CC0F BF8F <=