Tode problematic

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

Tode problematic

GLASS mailing list
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.

   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list


On Fri, Jul 7, 2017 at 10:38 AM, Trussardi Dario Romano via Glass <[hidden email]> wrote:
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.





Are you sure you are saving the method as an extension method? That is... under a protocol *YourPackage




 
   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list
Ciao,



On Fri, Jul 7, 2017 at 10:38 AM, Trussardi Dario Romano via Glass <[hidden email]> wrote:
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.





Are you sure you are saving the method as an extension method? That is... under a protocol *YourPackage

Yes,....

It's as if the method was not properly compiled ..... As if the class browser ( proxy method ?) had information that does not match what is defined in the real class.

And this creates problems.

Perhaps compile isNotNil  as symbol ?

Thanks....





 
   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list
Ciao,

when in the class browser i  do accept on:

isNotNil

^true

the system report:

1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>compileMethod:category:using:environmentId: @10 line 6
7. Object class(Behavior)>>compileMethod:category:using: @2 line 5
8. Object class(Behavior)>>compile:classified: @4 line 4
9. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>compileSource: @8 line 6
10. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>elementSource:clientSourceElement: @4 line 4
11. [] in TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>setBlock @2 line 4
12. TDMethodDefinitionElementBuilder(ExecBlock)>>value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

the line 5)

compiledMethodAt: aSelector environmentId: envId

"Returns the compiled method associated with the argument aSelector (a String).

 The argument must be a selector in the receiver's method dictionary; if it is

 not, this method generates an error.

| aMeth |

aMeth := self compiledMethodAt: aSelector environmentId: envId otherwise: nil.

aMeth == nil ifTrue:[ self _error: #rtErrKeyNotFound args: { aSelector } ].

^ aMeth

erase the error: 

  a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

( the aSelector is a string : 'isNotNil' )

Thanks.

Ciao,



On Fri, Jul 7, 2017 at 10:38 AM, Trussardi Dario Romano via Glass <[hidden email]> wrote:
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.





Are you sure you are saving the method as an extension method? That is... under a protocol *YourPackage

Yes,....

It's as if the method was not properly compiled ..... As if the class browser ( proxy method ?) had information that does not match what is defined in the real class.

And this creates problems.

Perhaps compile isNotNil  as symbol ?

Thanks....





 
   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list
In reply to this post by GLASS mailing list

Dario,

There is nothing special about isNotNil ... I guess I'd like to see the actual source code for the method in case there is something odd in the source --- most likely not ...

To get started, I would really like to see the whole stack for the LookupError. In tODE if you select debug to bring up a debugger, then in the stack frame list window use the `Window > print window` menu item, and then send me the printed stack.

With that I will know where the error is occuring and start looking into figuring out what went wrong and how to fix it ...

Dale

On 07/07/2017 06:38 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.

   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list
Dale,

Dario,

There is nothing special about isNotNil ... I guess I'd like to see the actual source code for the method in case there is something odd in the source --- most likely not ...

To get started, I would really like to see the whole stack for the LookupError. In tODE if you select debug to bring up a debugger, then in the stack frame list window use the `Window > print window` menu item, and then send me the printed stack.

this is the printed stack:

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>sourceCodeAt:environmentId: @2 line 7
6. Object class(Behavior)>>sourceCodeAt: @2 line 3
7. TDMethodDefinition>>source @4 line 2
8. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
9. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
11. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
12. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
13. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
14. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
15. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
16. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
17. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
18. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
19. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
20. TDTopezServer>>clientElementFor:using: @3 line 4
21. TDTopezServer>>edit:using: @2 line 3
22. TDMethodDefinition(Object)>>editUsing: @4 line 3
23. TDMethodDefinition>>itemSelected: @8 line 8
24. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
25. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @4 line 4
26. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
27. GsNMethod class>>_gsReturnToC @1 line 1

Thanks,

Dario

With that I will know where the error is occuring and start looking into figuring out what went wrong and how to fix it ...

Dale

On 07/07/2017 06:38 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.

   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list

Dario,

From the stack I was able to figure out what you might have done to create the method and I was finally able to reproduce your bug ...

You added the new method to Object in a pre-exisiting category that was not prefixed with a $* ... and this is a bug in tODE .... that's been around for quite awhile ...


You can patch tODE using the following in TDMethodDefinition>>source:

source
  self username
    ifNotNil: [
      ^ (self theBehavior perform: #'persistentMethodAt:' with: self selector)
        sourceString ].
  ^ (self theBehavior
    compiledMethodAt: self selector
    environmentId: 0
    otherwise: nil
    usePackages: true) sourceString


I'll submit a tODE bug and update the source with the patch when I get chance ... I'm under the gun for a project deadline ...

Dale

On 07/10/2017 12:24 AM, Trussardi Dario Romano via Glass wrote:
Dale,

Dario,

There is nothing special about isNotNil ... I guess I'd like to see the actual source code for the method in case there is something odd in the source --- most likely not ...

To get started, I would really like to see the whole stack for the LookupError. In tODE if you select debug to bring up a debugger, then in the stack frame list window use the `Window > print window` menu item, and then send me the printed stack.

this is the printed stack:

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>sourceCodeAt:environmentId: @2 line 7
6. Object class(Behavior)>>sourceCodeAt: @2 line 3
7. TDMethodDefinition>>source @4 line 2
8. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
9. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
11. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
12. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
13. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
14. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
15. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
16. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
17. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
18. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
19. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
20. TDTopezServer>>clientElementFor:using: @3 line 4
21. TDTopezServer>>edit:using: @2 line 3
22. TDMethodDefinition(Object)>>editUsing: @4 line 3
23. TDMethodDefinition>>itemSelected: @8 line 8
24. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
25. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @4 line 4
26. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
27. GsNMethod class>>_gsReturnToC @1 line 1

Thanks,

Dario

With that I will know where the error is occuring and start looking into figuring out what went wrong and how to fix it ...

Dale

On 07/07/2017 06:38 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.

   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list

Dale, 

From the stack I was able to figure out what you might have done to create the method and I was finally able to reproduce your bug ...

You added the new method to Object in a pre-exisiting category that was not prefixed with a $* ... and this is a bug in tODE .... that's been around for quite awhile ...


You can patch tODE using the following in TDMethodDefinition>>source:

source
  self username
    ifNotNil: [
      ^ (self theBehavior perform: #'persistentMethodAt:' with: self selector)
        sourceString ].
  ^ (self theBehavior
    compiledMethodAt: self selector
    environmentId: 0
    otherwise: nil
    usePackages: true) sourceString


I update the  TDMethodDefinition>>source  as above.

A) Now when in the class browser i select the isNotNil method the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'sourceString'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>source @12 line 10
7. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
8. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
9. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
11. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
12. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
13. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
14. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
15. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
16. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
17. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
18. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
19. TDTopezServer>>clientElementFor:using: @3 line 4
20. TDTopezServer>>edit:using: @2 line 3
21. TDMethodDefinition(Object)>>editUsing: @4 line 3
22. TDMethodDefinition>>itemSelected: @8 line 8
23. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
24. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelected:at:shiftPressed:listSelectionsDictionary: @2 line 4
25. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @8 line 7
26. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
27. GsNMethod class>>_gsReturnToC @1 line 1

B) If compile the new method  isNotNil in the class browser the system answer:

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

C) If i select the isNotNil   remove menu option  the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'inClass'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>methodCategory @5 line 6
7. TDMethodDefinition>>removeFromSystem: @4 line 4
8. TDClassicClassSelectorListElementBuilder>>cutObjectMenuAction:selectionIndex: @9 line 6
9. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
10. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
11. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
12. GsNMethod class>>_gsReturnToC @1 line 1


I'll submit a tODE bug and update the source with the patch when I get chance ... I'm under the gun for a project deadline ...

I think to replicate the code in a new gemstone environment  ( i hope without this problematic )

The only strangeness I remember is that by mistake i do the revert command on the project entry.

I'm available in any case to solve this problematic if you have other considerations.

Thanks,

Dario


Dale

On 07/10/2017 12:24 AM, Trussardi Dario Romano via Glass wrote:
Dale,

Dario,

There is nothing special about isNotNil ... I guess I'd like to see the actual source code for the method in case there is something odd in the source --- most likely not ...

To get started, I would really like to see the whole stack for the LookupError. In tODE if you select debug to bring up a debugger, then in the stack frame list window use the `Window > print window` menu item, and then send me the printed stack.

this is the printed stack:

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>sourceCodeAt:environmentId: @2 line 7
6. Object class(Behavior)>>sourceCodeAt: @2 line 3
7. TDMethodDefinition>>source @4 line 2
8. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
9. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
11. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
12. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
13. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
14. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
15. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
16. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
17. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
18. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
19. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
20. TDTopezServer>>clientElementFor:using: @3 line 4
21. TDTopezServer>>edit:using: @2 line 3
22. TDMethodDefinition(Object)>>editUsing: @4 line 3
23. TDMethodDefinition>>itemSelected: @8 line 8
24. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
25. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @4 line 4
26. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
27. GsNMethod class>>_gsReturnToC @1 line 1

Thanks,

Dario

With that I will know where the error is occuring and start looking into figuring out what went wrong and how to fix it ...

Dale

On 07/07/2017 06:38 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.

   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

Another possibility is that you have somehow gotten the category/selector dictionary for Object out-of sync with the method dictionaries, but I haven't seen any evidence of that in the stacks ... yet.

Dale

On 7/11/17 2:25 AM, Trussardi Dario Romano via Glass wrote:

Dale, 

From the stack I was able to figure out what you might have done to create the method and I was finally able to reproduce your bug ...

You added the new method to Object in a pre-exisiting category that was not prefixed with a $* ... and this is a bug in tODE .... that's been around for quite awhile ...


You can patch tODE using the following in TDMethodDefinition>>source:

source
  self username
    ifNotNil: [
      ^ (self theBehavior perform: #'persistentMethodAt:' with: self selector)
        sourceString ].
  ^ (self theBehavior
    compiledMethodAt: self selector
    environmentId: 0
    otherwise: nil
    usePackages: true) sourceString


I update the  TDMethodDefinition>>source  as above.

A) Now when in the class browser i select the isNotNil method the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'sourceString'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>source @12 line 10
7. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
8. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
9. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
11. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
12. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
13. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
14. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
15. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
16. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
17. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
18. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
19. TDTopezServer>>clientElementFor:using: @3 line 4
20. TDTopezServer>>edit:using: @2 line 3
21. TDMethodDefinition(Object)>>editUsing: @4 line 3
22. TDMethodDefinition>>itemSelected: @8 line 8
23. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
24. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelected:at:shiftPressed:listSelectionsDictionary: @2 line 4
25. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @8 line 7
26. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
27. GsNMethod class>>_gsReturnToC @1 line 1

B) If compile the new method  isNotNil in the class browser the system answer:

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

C) If i select the isNotNil   remove menu option  the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'inClass'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>methodCategory @5 line 6
7. TDMethodDefinition>>removeFromSystem: @4 line 4
8. TDClassicClassSelectorListElementBuilder>>cutObjectMenuAction:selectionIndex: @9 line 6
9. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
10. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
11. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
12. GsNMethod class>>_gsReturnToC @1 line 1


I'll submit a tODE bug and update the source with the patch when I get chance ... I'm under the gun for a project deadline ...

I think to replicate the code in a new gemstone environment  ( i hope without this problematic )

The only strangeness I remember is that by mistake i do the revert command on the project entry.

I'm available in any case to solve this problematic if you have other considerations.

Thanks,

Dario


Dale

On 07/10/2017 12:24 AM, Trussardi Dario Romano via Glass wrote:
Dale,

Dario,

There is nothing special about isNotNil ... I guess I'd like to see the actual source code for the method in case there is something odd in the source --- most likely not ...

To get started, I would really like to see the whole stack for the LookupError. In tODE if you select debug to bring up a debugger, then in the stack frame list window use the `Window > print window` menu item, and then send me the printed stack.

this is the printed stack:

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>sourceCodeAt:environmentId: @2 line 7
6. Object class(Behavior)>>sourceCodeAt: @2 line 3
7. TDMethodDefinition>>source @4 line 2
8. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
9. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
11. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
12. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
13. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
14. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
15. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
16. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
17. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
18. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
19. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
20. TDTopezServer>>clientElementFor:using: @3 line 4
21. TDTopezServer>>edit:using: @2 line 3
22. TDMethodDefinition(Object)>>editUsing: @4 line 3
23. TDMethodDefinition>>itemSelected: @8 line 8
24. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
25. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @4 line 4
26. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
27. GsNMethod class>>_gsReturnToC @1 line 1

Thanks,

Dario

With that I will know where the error is occuring and start looking into figuring out what went wrong and how to fix it ...

Dale

On 07/07/2017 06:38 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.

   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list
Ciao,

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

Yes the method list is update.

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

I add the stack to B)

I confirm stack for: A) and C)

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

D) When on the method   isNotNil i do the move to protocol menu options,

the system answer : 

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
7. Object class(Behavior)>>classify:under: @9 line 7
8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
9. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex: @16 line 11
10. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
11. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
12. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

After refreshed the method list the method is right  moved to new protocol but  A B C  point don't work.

They erase the relative error as report in this email.

Thanks

Another possibility is that you have somehow gotten the category/selector dictionary for Object out-of sync with the method dictionaries, but I haven't seen any evidence of that in the stacks ... yet.

Dale

On 7/11/17 2:25 AM, Trussardi Dario Romano via Glass wrote:

Dale, 

From the stack I was able to figure out what you might have done to create the method and I was finally able to reproduce your bug ...

You added the new method to Object in a pre-exisiting category that was not prefixed with a $* ... and this is a bug in tODE .... that's been around for quite awhile ...


You can patch tODE using the following in TDMethodDefinition>>source:

source
  self username
    ifNotNil: [
      ^ (self theBehavior perform: #'persistentMethodAt:' with: self selector)
        sourceString ].
  ^ (self theBehavior
    compiledMethodAt: self selector
    environmentId: 0
    otherwise: nil
    usePackages: true) sourceString


I update the  TDMethodDefinition>>source  as above.

A) Now when in the class browser i select the isNotNil method the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'sourceString'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>source @12 line 10
7. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
8. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
9. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
11. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
12. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
13. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
14. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
15. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
16. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
17. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
18. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
19. TDTopezServer>>clientElementFor:using: @3 line 4
20. TDTopezServer>>edit:using: @2 line 3
21. TDMethodDefinition(Object)>>editUsing: @4 line 3
22. TDMethodDefinition>>itemSelected: @8 line 8
23. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
24. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelected:at:shiftPressed:listSelectionsDictionary: @2 line 4
25. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @8 line 7
26. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
27. GsNMethod class>>_gsReturnToC @1 line 1

B) If compile the new method  isNotNil in the class browser the system answer:

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key 'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>compileMethod:category:using:environmentId: @10 line 6
7. Object class(Behavior)>>compileMethod:category:using: @2 line 5
8. Object class(Behavior)>>compile:classified: @4 line 4
9. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>compileSource: @8 line 6
10. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>elementSource:clientSourceElement: @4 line 4
11. [] in TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>setBlock @2 line 4
12. TDMethodDefinitionElementBuilder(ExecBlock)>>value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1


C) If i select the isNotNil   remove menu option  the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'inClass'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>methodCategory @5 line 6
7. TDMethodDefinition>>removeFromSystem: @4 line 4
8. TDClassicClassSelectorListElementBuilder>>cutObjectMenuAction:selectionIndex: @9 line 6
9. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
10. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
11. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
12. GsNMethod class>>_gsReturnToC @1 line 1


I'll submit a tODE bug and update the source with the patch when I get chance ... I'm under the gun for a project deadline ...

I think to replicate the code in a new gemstone environment  ( i hope without this problematic )

The only strangeness I remember is that by mistake i do the revert command on the project entry.

I'm available in any case to solve this problematic if you have other considerations.

Thanks,

Dario


Dale

On 07/10/2017 12:24 AM, Trussardi Dario Romano via Glass wrote:
Dale,

Dario,

There is nothing special about isNotNil ... I guess I'd like to see the actual source code for the method in case there is something odd in the source --- most likely not ...

To get started, I would really like to see the whole stack for the LookupError. In tODE if you select debug to bring up a debugger, then in the stack frame list window use the `Window > print window` menu item, and then send me the printed stack.

this is the printed stack:

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>sourceCodeAt:environmentId: @2 line 7
6. Object class(Behavior)>>sourceCodeAt: @2 line 3
7. TDMethodDefinition>>source @4 line 2
8. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
9. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
11. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
12. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
13. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
14. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
15. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
16. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
17. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
18. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
19. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
20. TDTopezServer>>clientElementFor:using: @3 line 4
21. TDTopezServer>>edit:using: @2 line 3
22. TDMethodDefinition(Object)>>editUsing: @4 line 3
23. TDMethodDefinition>>itemSelected: @8 line 8
24. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
25. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @4 line 4
26. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
27. GsNMethod class>>_gsReturnToC @1 line 1

Thanks,

Dario

With that I will know where the error is occuring and start looking into figuring out what went wrong and how to fix it ...

Dale

On 07/07/2017 06:38 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

i have a Tode problematic.

I submit this to the:  [hidden email]

but i doubt it's not the right procedure.

Ciao,

   i have a tode image working with  on 3.2.12 environment.

   Now in the tode class browser i found ( i don't remember when and how i create it )

   the      Object isNotNil     message.

   When in the class browser i select this method the system answer:

       a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

   Any other command:

       remove the relative protocol

       compile a new isNotNil method

       remove the method with:  method remove Object >>isNotNil

   answer the same error.

   When i save the relative package the Object isNotNil method is not saved.

   When the code call:         isNotNil     the system answer: does not understand.

   Thanks for considerations,

       Dario


Does anyone know the right procedure?

If in the meantime you have an indication regarding my problem, 

i would be grateful.

Dario


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list

On 7/11/17 8:40 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

Yes the method list is update.

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

I add the stack to B)

I confirm stack for: A) and C)

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

D) When on the method   isNotNil i do the move to protocol menu options,

the system answer : 

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
7. Object class(Behavior)>>classify:under: @9 line 7
8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
9. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex: @16 line 11
10. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
11. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
12. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

After refreshed the method list the method is right  moved to new protocol but  A B C  point don't work.
Okay, the method Behavior>>compiledMethodAt:environmentId:otherwise: appears to be the culprit in all of these errors ... there are quite a few of the higher level methods that pass through Behavior>>compiledMethodAt:environmentId:otherwise: and Behavior>>compiledMethodAt:environmentId:otherwise: ignores methods that are installed in the session method dictionary and that is leading to the rash of lookup errors as the code is looking in the wrong place ...

This problem has been around for a while, but in tODE I rarely/never add methods to system classes without creating a protocol starting with * first and then crate the method in that protocol (new method menu item) --- and that combo works ... My suggested patch solved one problem but there appear to be quite a few potential problems. I am quite busy with 3.4 work at the moment and do not have the time to properly fix all of the problems ...

Sooo, I think that if you can create a protocol starting with a * and add create your method in that protocol, then you should be good to go ... I was able to take my experimental method from yesterday that was n a non-* protocol and re-create it in a * protocol, so this should get you out of the woods ...

If you are still having troubld, I will try to give you instructions about cleaning up your method dictionaries...

Dale


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list
Ciao,

Ciao,

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

Yes the method list is update.

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

I add the stack to B)

I confirm stack for: A) and C)

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

D) When on the method   isNotNil i do the move to protocol menu options,

the system answer : 

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
7. Object class(Behavior)>>classify:under: @9 line 7
8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
9. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex: @16 line 11
10. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
11. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
12. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

After refreshed the method list the method is right  moved to new protocol but  A B C  point don't work.
Okay, the method Behavior>>compiledMethodAt:environmentId:otherwise: appears to be the culprit in all of these errors ... there are quite a few of the higher level methods that pass through Behavior>>compiledMethodAt:environmentId:otherwise: and Behavior>>compiledMethodAt:environmentId:otherwise: ignores methods that are installed in the session method dictionary and that is leading to the rash of lookup errors as the code is looking in the wrong place ...

This problem has been around for a while, but in tODE I rarely/never add methods to system classes without creating a protocol starting with * first and then crate the method in that protocol (new method menu item) --- and that combo works ... My suggested patch solved one problem but there appear to be quite a few potential problems. I am quite busy with 3.4 work at the moment and do not have the time to properly fix all of the problems ...

No problem.....

I do this work only for document the question ...


Sooo, I think that if you can create a protocol starting with a * and add create your method in that protocol, then you should be good to go ... I was able to take my experimental method from yesterday that was n a non-* protocol and re-create it in a * protocol, so this should get you out of the woods ...

The isNotNil method is in a protocol begin with *

and i can move it into another protocol begin with * as i report at point D

But the  A  B C  problematic don't change.

In any case when compile the   isNotNil method i a new *... protocol   the system behaves  like B

B) If compile the new method   isNotNil  in the class browser the system answer:

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using
       the non-existent key #'isNotNil' was made into the dictionary Object

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key 'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>compileMethod:category:using:environmentId: @10 line 6
7. Object class(Behavior)>>compileMethod:category:using: @2 line 5
8. Object class(Behavior)>>compile:classified: @4 line 4
9. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>compileSource: @8 line 6
10. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>elementSource:clientSourceElement: @4 line 4
11. [] in TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>setBlock @2 line 4
12. TDMethodDefinitionElementBuilder(ExecBlock)>>value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1



If you are still having troubld, I will try to give you instructions about cleaning up your method dictionaries...

Maybe it's the solution.......

Thanks,

Dario



_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list



On 7/11/17 10:28 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

Ciao,

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

Yes the method list is update.

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

I add the stack to B)

I confirm stack for: A) and C)

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

D) When on the method   isNotNil i do the move to protocol menu options,

the system answer : 

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
7. Object class(Behavior)>>classify:under: @9 line 7
8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
9. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex: @16 line 11
10. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
11. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
12. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

After refreshed the method list the method is right  moved to new protocol but  A B C  point don't work.
Okay, the method Behavior>>compiledMethodAt:environmentId:otherwise: appears to be the culprit in all of these errors ... there are quite a few of the higher level methods that pass through Behavior>>compiledMethodAt:environmentId:otherwise: and Behavior>>compiledMethodAt:environmentId:otherwise: ignores methods that are installed in the session method dictionary and that is leading to the rash of lookup errors as the code is looking in the wrong place ...

This problem has been around for a while, but in tODE I rarely/never add methods to system classes without creating a protocol starting with * first and then crate the method in that protocol (new method menu item) --- and that combo works ... My suggested patch solved one problem but there appear to be quite a few potential problems. I am quite busy with 3.4 work at the moment and do not have the time to properly fix all of the problems ...

No problem.....

I do this work only for document the question ...


Sooo, I think that if you can create a protocol starting with a * and add create your method in that protocol, then you should be good to go ... I was able to take my experimental method from yesterday that was n a non-* protocol and re-create it in a * protocol, so this should get you out of the woods ...

The isNotNil method is in a protocol begin with *

and i can move it into another protocol begin with * as i report at point D
but point D is an error, so you are not able to move it to another protocol, correct? You have not been able to do anything without error correct?

But the  A  B C  problematic don't change.

In any case when compile the   isNotNil method i a new *... protocol   the system behaves  like B
This is not my experience so there is something that you are doing that I'm not doing ... I don't "move" the method. I compile the method in the new * protocol and after that I can look at source, move the method to other * protocols, etc.

Have you tried creating a new * protocol and creating the method in that protocol?

If that doesn't work, provide me with a fresh stack that produces an error (please provide method source) and I will see if I can work out a repair script.

Dale

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list

On 7/11/17 10:28 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

Ciao,

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

Yes the method list is update.

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

I add the stack to B)

I confirm stack for: A) and C)

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

D) When on the method   isNotNil i do the move to protocol menu options,

the system answer : 

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
7. Object class(Behavior)>>classify:under: @9 line 7
8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
9. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex: @16 line 11
10. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
11. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
12. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

After refreshed the method list the method is right  moved to new protocol but  A B C  point don't work.
Okay, the method Behavior>>compiledMethodAt:environmentId:otherwise: appears to be the culprit in all of these errors ... there are quite a few of the higher level methods that pass through Behavior>>compiledMethodAt:environmentId:otherwise: and Behavior>>compiledMethodAt:environmentId:otherwise: ignores methods that are installed in the session method dictionary and that is leading to the rash of lookup errors as the code is looking in the wrong place ...

This problem has been around for a while, but in tODE I rarely/never add methods to system classes without creating a protocol starting with * first and then crate the method in that protocol (new method menu item) --- and that combo works ... My suggested patch solved one problem but there appear to be quite a few potential problems. I am quite busy with 3.4 work at the moment and do not have the time to properly fix all of the problems ...

No problem.....

I do this work only for document the question ...


Sooo, I think that if you can create a protocol starting with a * and add create your method in that protocol, then you should be good to go ... I was able to take my experimental method from yesterday that was n a non-* protocol and re-create it in a * protocol, so this should get you out of the woods ...

The isNotNil method is in a protocol begin with *

and i can move it into another protocol begin with * as i report at point D
but point D is an error, so you are not able to move it to another protocol, correct? You have not been able to do anything without error correct?

Yes point D erase the error but the method after it is moved to new *... protocol.   ( really strange ) 

But the  A  B C  problematic don't change.

In any case when compile the   isNotNil method i a new *... protocol   the system behaves  like B
This is not my experience so there is something that you are doing that I'm not doing ... I don't "move" the method. I compile the method in the new * protocol and after that I can look at source, move the method to other * protocols, etc.

The method is defined in the *... protocol and i can't do anything... No remove ....  | No new method compile  | No *... protocol remove....

I don't remember when and as i compile the method in *.. protocol 


Have you tried creating a new * protocol and creating the method in that protocol?

Yes, it's same of the B case.


If that doesn't work, provide me with a fresh stack that produces an error (please provide method source

What do you mean with method source ?

) and I will see if I can work out a repair script.

In the case C)  If i select the  isNotNil   remove menu option  the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'inClass'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>methodCategory @5 line 6
7. TDMethodDefinition>>removeFromSystem: @4 line 4
8. TDClassicClassSelectorListElementBuilder>>cutObjectMenuAction:selectionIndex: @9 line 6
9. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
10. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
11. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
12. GsNMethod class>>_gsReturnToC @1 line 1


The source of methodCategory is:

methodCategory
 methodCategory
   ifNil: [
     | method category |
     method := self method.
     methodCategory := method inClass categoryOfSelector: self selector.
     methodCategory ifNil: [ category := ClassOrganizer default ] ].
 ^ methodCategory

At line 6 the method variable  is nil.

Thanks,

Dario

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list

Could you supply the source code of isNotNil?


On 7/11/17 12:31 PM, Trussardi Dario Romano via Glass wrote:

On 7/11/17 10:28 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

Ciao,

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

Yes the method list is update.

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

I add the stack to B)

I confirm stack for: A) and C)

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

D) When on the method   isNotNil i do the move to protocol menu options,

the system answer : 

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
7. Object class(Behavior)>>classify:under: @9 line 7
8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
9. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex: @16 line 11
10. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
11. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
12. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

After refreshed the method list the method is right  moved to new protocol but  A B C  point don't work.
Okay, the method Behavior>>compiledMethodAt:environmentId:otherwise: appears to be the culprit in all of these errors ... there are quite a few of the higher level methods that pass through Behavior>>compiledMethodAt:environmentId:otherwise: and Behavior>>compiledMethodAt:environmentId:otherwise: ignores methods that are installed in the session method dictionary and that is leading to the rash of lookup errors as the code is looking in the wrong place ...

This problem has been around for a while, but in tODE I rarely/never add methods to system classes without creating a protocol starting with * first and then crate the method in that protocol (new method menu item) --- and that combo works ... My suggested patch solved one problem but there appear to be quite a few potential problems. I am quite busy with 3.4 work at the moment and do not have the time to properly fix all of the problems ...

No problem.....

I do this work only for document the question ...


Sooo, I think that if you can create a protocol starting with a * and add create your method in that protocol, then you should be good to go ... I was able to take my experimental method from yesterday that was n a non-* protocol and re-create it in a * protocol, so this should get you out of the woods ...

The isNotNil method is in a protocol begin with *

and i can move it into another protocol begin with * as i report at point D
but point D is an error, so you are not able to move it to another protocol, correct? You have not been able to do anything without error correct?

Yes point D erase the error but the method after it is moved to new *... protocol.   ( really strange ) 

But the  A  B C  problematic don't change.

In any case when compile the   isNotNil method i a new *... protocol   the system behaves  like B
This is not my experience so there is something that you are doing that I'm not doing ... I don't "move" the method. I compile the method in the new * protocol and after that I can look at source, move the method to other * protocols, etc.

The method is defined in the *... protocol and i can't do anything... No remove ....  | No new method compile  | No *... protocol remove....

I don't remember when and as i compile the method in *.. protocol 


Have you tried creating a new * protocol and creating the method in that protocol?

Yes, it's same of the B case.


If that doesn't work, provide me with a fresh stack that produces an error (please provide method source

What do you mean with method source ?

) and I will see if I can work out a repair script.

In the case C)  If i select the  isNotNil   remove menu option  the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'inClass'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>methodCategory @5 line 6
7. TDMethodDefinition>>removeFromSystem: @4 line 4
8. TDClassicClassSelectorListElementBuilder>>cutObjectMenuAction:selectionIndex: @9 line 6
9. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
10. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
11. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
12. GsNMethod class>>_gsReturnToC @1 line 1


The source of methodCategory is:

methodCategory
 methodCategory
   ifNil: [
     | method category |
     method := self method.
     methodCategory := method inClass categoryOfSelector: self selector.
     methodCategory ifNil: [ category := ClassOrganizer default ] ].
 ^ methodCategory

At line 6 the method variable  is nil.

Thanks,

Dario


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list
In reply to this post by GLASS mailing list



On 7/11/17 12:31 PM, Trussardi Dario Romano via Glass wrote:

On 7/11/17 10:28 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

Ciao,

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

Yes the method list is update.

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

I add the stack to B)

I confirm stack for: A) and C)

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

D) When on the method   isNotNil i do the move to protocol menu options,

the system answer : 

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
7. Object class(Behavior)>>classify:under: @9 line 7
8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
9. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex: @16 line 11
10. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
11. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
12. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

After refreshed the method list the method is right  moved to new protocol but  A B C  point don't work.
Okay, the method Behavior>>compiledMethodAt:environmentId:otherwise: appears to be the culprit in all of these errors ... there are quite a few of the higher level methods that pass through Behavior>>compiledMethodAt:environmentId:otherwise: and Behavior>>compiledMethodAt:environmentId:otherwise: ignores methods that are installed in the session method dictionary and that is leading to the rash of lookup errors as the code is looking in the wrong place ...

This problem has been around for a while, but in tODE I rarely/never add methods to system classes without creating a protocol starting with * first and then crate the method in that protocol (new method menu item) --- and that combo works ... My suggested patch solved one problem but there appear to be quite a few potential problems. I am quite busy with 3.4 work at the moment and do not have the time to properly fix all of the problems ...

No problem.....

I do this work only for document the question ...


Sooo, I think that if you can create a protocol starting with a * and add create your method in that protocol, then you should be good to go ... I was able to take my experimental method from yesterday that was n a non-* protocol and re-create it in a * protocol, so this should get you out of the woods ...

The isNotNil method is in a protocol begin with *

and i can move it into another protocol begin with * as i report at point D
but point D is an error, so you are not able to move it to another protocol, correct? You have not been able to do anything without error correct?

Yes point D erase the error but the method after it is moved to new *... protocol.   ( really strange ) 

But the  A  B C  problematic don't change.

In any case when compile the   isNotNil method i a new *... protocol   the system behaves  like B
This is not my experience so there is something that you are doing that I'm not doing ... I don't "move" the method. I compile the method in the new * protocol and after that I can look at source, move the method to other * protocols, etc.

The method is defined in the *... protocol and i can't do anything... No remove ....  | No new method compile  | No *... protocol remove....

I don't remember when and as i compile the method in *.. protocol 


Have you tried creating a new * protocol and creating the method in that protocol?

Yes, it's same of the B case.


If that doesn't work, provide me with a fresh stack that produces an error (please provide method source

What do you mean with method source ?

) and I will see if I can work out a repair script.

In the case C)  If i select the  isNotNil   remove menu option  the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'inClass'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>methodCategory @5 line 6
7. TDMethodDefinition>>removeFromSystem: @4 line 4
8. TDClassicClassSelectorListElementBuilder>>cutObjectMenuAction:selectionIndex: @9 line 6
9. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
10. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
11. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
12. GsNMethod class>>_gsReturnToC @1 line 1


The source of methodCategory is:

methodCategory
 methodCategory
   ifNil: [
     | method category |
     method := self method.
     methodCategory := method inClass categoryOfSelector: self selector.
     methodCategory ifNil: [ category := ClassOrganizer default ] ].
 ^ methodCategory

At line 6 the method variable  is nil.
I guess is thinking of one of your many Lookup errors ... obviously it is not finding the method (returning nil), but I'm looking for a method on behavior where an error occurs ... iI think I mentioned that it is possible that the category structure is messed up and I'm looking for evidence ... the evidence here is that the method is not found, but there are too many explanations for that ... especially without a more specific error from Behavior

Dale

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list
In reply to this post by GLASS mailing list

Could you supply the source code of isNotNil?

I can't display the source code of the compiled isNotNil  method.

When i click on the isNotNil method the system erase the error:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'sourceString'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>source @12 line 10
7. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
8. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
9. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
11. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
12. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
13. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
14. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
15. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
16. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
17. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
18. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
19. TDTopezServer>>clientElementFor:using: @3 line 4
20. TDTopezServer>>edit:using: @2 line 3
21. TDMethodDefinition(Object)>>editUsing: @4 line 3
22. TDMethodDefinition>>itemSelected: @8 line 8
23. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
24. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @4 line 4
25. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
26. GsNMethod class>>_gsReturnToC @1 line 1

When I try to re-compile the method I tried with

isNotNil
^true

On 7/11/17 12:31 PM, Trussardi Dario Romano via Glass wrote:

On 7/11/17 10:28 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

Ciao,

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

Yes the method list is update.

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

I add the stack to B)

I confirm stack for: A) and C)

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

D) When on the method   isNotNil i do the move to protocol menu options,

the system answer : 

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
7. Object class(Behavior)>>classify:under: @9 line 7
8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
9. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex: @16 line 11
10. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
11. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
12. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

After refreshed the method list the method is right  moved to new protocol but  A B C  point don't work.
Okay, the method Behavior>>compiledMethodAt:environmentId:otherwise: appears to be the culprit in all of these errors ... there are quite a few of the higher level methods that pass through Behavior>>compiledMethodAt:environmentId:otherwise: and Behavior>>compiledMethodAt:environmentId:otherwise: ignores methods that are installed in the session method dictionary and that is leading to the rash of lookup errors as the code is looking in the wrong place ...

This problem has been around for a while, but in tODE I rarely/never add methods to system classes without creating a protocol starting with * first and then crate the method in that protocol (new method menu item) --- and that combo works ... My suggested patch solved one problem but there appear to be quite a few potential problems. I am quite busy with 3.4 work at the moment and do not have the time to properly fix all of the problems ...

No problem.....

I do this work only for document the question ...


Sooo, I think that if you can create a protocol starting with a * and add create your method in that protocol, then you should be good to go ... I was able to take my experimental method from yesterday that was n a non-* protocol and re-create it in a * protocol, so this should get you out of the woods ...

The isNotNil method is in a protocol begin with *

and i can move it into another protocol begin with * as i report at point D
but point D is an error, so you are not able to move it to another protocol, correct? You have not been able to do anything without error correct?

Yes point D erase the error but the method after it is moved to new *... protocol.   ( really strange ) 

But the  A  B C  problematic don't change.

In any case when compile the   isNotNil method i a new *... protocol   the system behaves  like B
This is not my experience so there is something that you are doing that I'm not doing ... I don't "move" the method. I compile the method in the new * protocol and after that I can look at source, move the method to other * protocols, etc.

The method is defined in the *... protocol and i can't do anything... No remove ....  | No new method compile  | No *... protocol remove....

I don't remember when and as i compile the method in *.. protocol 


Have you tried creating a new * protocol and creating the method in that protocol?

Yes, it's same of the B case.


If that doesn't work, provide me with a fresh stack that produces an error (please provide method source

What do you mean with method source ?

) and I will see if I can work out a repair script.

In the case C)  If i select the  isNotNil   remove menu option  the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'inClass'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>methodCategory @5 line 6
7. TDMethodDefinition>>removeFromSystem: @4 line 4
8. TDClassicClassSelectorListElementBuilder>>cutObjectMenuAction:selectionIndex: @9 line 6
9. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
10. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
11. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
12. GsNMethod class>>_gsReturnToC @1 line 1


The source of methodCategory is:

methodCategory
 methodCategory
   ifNil: [
     | method category |
     method := self method.
     methodCategory := method inClass categoryOfSelector: self selector.
     methodCategory ifNil: [ category := ClassOrganizer default ] ].
 ^ methodCategory

At line 6 the method variable  is nil.

Thanks,

Dario


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: Tode problematic

GLASS mailing list
Dale,

I let this environment loose. In a new environment, the problem does not exist.

Thanks, 

Dario

Could you supply the source code of isNotNil?

I can't display the source code of the compiled isNotNil  method.

When i click on the isNotNil method the system erase the error:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'sourceString'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>source @12 line 10
7. TDMethodDefinitionElementBuilder>>elementSource @3 line 2
8. TDMethodDefinitionElementBuilder(TDClientCodeElementBuilder)>>formattedElementSource @2 line 3
9. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>firstSource @2 line 2
10. TDMethodDefinitionElementBuilder(TDClientSourceElementBuilder)>>buildClientElementUsing:editorAspect: @6 line 8
11. TDMethodDefinitionElementBuilder(TDClientMethodElementBuilder)>>buildClientElementUsing:editorAspect: @2 line 2
12. TDMethodDefinitionElementBuilder>>buildClientElementUsing:editorAspect: @2 line 2
13. [] in ExecBlock2(TDTopezServer)>>clientElementFor:using: @4 line 9
14. [] in TDTopezServer>>editorNodeFor:aspect:do: @8 line 9
15. [] in ExecBlock1(TDTopezServer)>>editorNodeClassNameFor:aspect:do: @5 line 10
16. TDTopezServer>>lookupClassNameFor:aspect:defaultAspect:in:do: @24 line 28
17. TDTopezServer>>editorNodeClassNameFor:aspect:do: @5 line 3
18. TDTopezServer>>editorNodeFor:aspect:do: @2 line 3
19. TDTopezServer>>clientElementFor:using: @3 line 4
20. TDTopezServer>>edit:using: @2 line 3
21. TDMethodDefinition(Object)>>editUsing: @4 line 3
22. TDMethodDefinition>>itemSelected: @8 line 8
23. TDClassicClassSelectorListElementBuilder>>itemSelected:at:shiftPressed: @10 line 7
24. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>itemSelectedBlock @4 line 4
25. TDClassicClassSelectorListElementBuilder(ExecBlock)>>cull:cull:cull:cull: @7 line 4
26. GsNMethod class>>_gsReturnToC @1 line 1

When I try to re-compile the method I tried with

isNotNil
^true

On 7/11/17 12:31 PM, Trussardi Dario Romano via Glass wrote:

On 7/11/17 10:28 AM, Trussardi Dario Romano via Glass wrote:
Ciao,

Ciao,

This looks like a different problem now ... you shouldn't have gotten a reference to the method isNotNil if it is not present in the method dictionaries for Object ...

Have you refreshed the method list (by clicking on the Object class in the class pane)? tODE does not automatically update the lists when methods are removed, so this is one possibility for the error ..

Yes the method list is update.

You are missing a stack for B), so I cannot comment on that error --- it would be useful to see the stack when you are trying to define the method again ...

I add the stack to B)

I confirm stack for: A) and C)

At this point in time it does not appear that the method is present and that it is possible that the method list is just out of date ...

Try refreshing the method list ... and reporting stacks at each point where you hit an error ...

D) When on the method   isNotNil i do the move to protocol menu options,

the system answer : 

a LookupError occurred (error 2021), reason:rtErrKeyNotFound, A reference using the non-existent key #'isNotNil' was made into the dictionary Object
--------------------
1. LookupError(AbstractException)>>_signalWith: @5 line 25
2. LookupError(AbstractException)>>signal @2 line 47
3. Object class(Object)>>_error:args: @15 line 11
4. Object class(Behavior)>>compiledMethodAt:environmentId: @5 line 9
5. Object class(Behavior)>>compiledMethodAt: @2 line 2
6. Object class(Behavior)>>moveMethod:toCategory: @13 line 10
7. Object class(Behavior)>>classify:under: @9 line 7
8. TDMethodDefinition>>moveToProtocolNamed: @4 line 2
9. TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>moveMethodToProtocolMenuAction:selectionIndex: @16 line 11
10. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
11. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
12. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
13. GsNMethod class>>_gsReturnToC @1 line 1

After refreshed the method list the method is right  moved to new protocol but  A B C  point don't work.
Okay, the method Behavior>>compiledMethodAt:environmentId:otherwise: appears to be the culprit in all of these errors ... there are quite a few of the higher level methods that pass through Behavior>>compiledMethodAt:environmentId:otherwise: and Behavior>>compiledMethodAt:environmentId:otherwise: ignores methods that are installed in the session method dictionary and that is leading to the rash of lookup errors as the code is looking in the wrong place ...

This problem has been around for a while, but in tODE I rarely/never add methods to system classes without creating a protocol starting with * first and then crate the method in that protocol (new method menu item) --- and that combo works ... My suggested patch solved one problem but there appear to be quite a few potential problems. I am quite busy with 3.4 work at the moment and do not have the time to properly fix all of the problems ...

No problem.....

I do this work only for document the question ...


Sooo, I think that if you can create a protocol starting with a * and add create your method in that protocol, then you should be good to go ... I was able to take my experimental method from yesterday that was n a non-* protocol and re-create it in a * protocol, so this should get you out of the woods ...

The isNotNil method is in a protocol begin with *

and i can move it into another protocol begin with * as i report at point D
but point D is an error, so you are not able to move it to another protocol, correct? You have not been able to do anything without error correct?

Yes point D erase the error but the method after it is moved to new *... protocol.   ( really strange ) 

But the  A  B C  problematic don't change.

In any case when compile the   isNotNil method i a new *... protocol   the system behaves  like B
This is not my experience so there is something that you are doing that I'm not doing ... I don't "move" the method. I compile the method in the new * protocol and after that I can look at source, move the method to other * protocols, etc.

The method is defined in the *... protocol and i can't do anything... No remove ....  | No new method compile  | No *... protocol remove....

I don't remember when and as i compile the method in *.. protocol 


Have you tried creating a new * protocol and creating the method in that protocol?

Yes, it's same of the B case.


If that doesn't work, provide me with a fresh stack that produces an error (please provide method source

What do you mean with method source ?

) and I will see if I can work out a repair script.

In the case C)  If i select the  isNotNil   remove menu option  the system answer:

a MessageNotUnderstood occurred (error 2010), a UndefinedObject does not understand  #'inClass'
--------------------
1. MessageNotUnderstood>>defaultAction @2 line 3
2. MessageNotUnderstood(AbstractException)>>_signalWith: @5 line 25
3. MessageNotUnderstood(AbstractException)>>signal @2 line 47
4. UndefinedObject(Object)>>doesNotUnderstand: @9 line 10
5. UndefinedObject(Object)>>_doesNotUnderstand:args:envId:reason: @7 line 12
6. TDMethodDefinition>>methodCategory @5 line 6
7. TDMethodDefinition>>removeFromSystem: @4 line 4
8. TDClassicClassSelectorListElementBuilder>>cutObjectMenuAction:selectionIndex: @9 line 6
9. TDClassicClassSelectorListElementBuilder(TDWindowBuilder)>>handleMenuActions:listElement:actionArg: @12 line 10
10. [] in TDClassicClassSelectorListElementBuilder(TDClientListElementBuilder)>>menuActionBlock @2 line 7
11. TDClassicClassSelectorListElementBuilder(ExecBlock)>>value:value:value: @2 line 11
12. GsNMethod class>>_gsReturnToC @1 line 1


The source of methodCategory is:

methodCategory
 methodCategory
   ifNil: [
     | method category |
     method := self method.
     methodCategory := method inClass categoryOfSelector: self selector.
     methodCategory ifNil: [ category := ClassOrganizer default ] ].
 ^ methodCategory

At line 6 the method variable  is nil.

Thanks,

Dario


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass