[Glass] Two versions of the same classes ...

James Foster james.foster at gemtalksystems.com
Sun Jan 19 08:38:47 PST 2014


Marten,

Jade certainly should not be doing this and I’d like to understand things better so that I can fix it.

The first anomaly is the '(0/2)' class version and the second is the inability to find a class. It seems that both might be a symptom of the same problem since the ‘(0/2)’ reflects a situation in which Jade is showing you a class that isn’t in the class history of the class it found. 

While I doubt that it will fix things, I’d like to know what is the date on your version of Jade. From the Login window, select the Help menu and the ‘About Jade’ menu command. What is the date there? I ask because the method you provide below is not exactly the same as the current version and there is a small chance that something has been fixed. Please make sure you are on the latest version (http://seaside.gemtalksystems.com/jade/ has one from 22-Dec-13; the method you show was last edited on 29-Nov-13). 

Next, did you commit after the problem or did you abort/logout so that the problem can be reproduced? Either is fine, I just want to know where we are at the moment.

The situation of Jade showing you a class that it can’t find later is certainly a problem. The suspicion I have at the moment is that part of Jade is looking at the transient symbol list and another part is looking at the persistent symbol list. If this is the case, it is possible that a work-around would be to commit, log out, and log in so that the two symbol lists are back in sync. Of course, doing a commit will limit our ability to reproduce the problem but is a chance I’m willing to take.

Another work-around would be to create a new class with a different name, copy the methods, and then remove the old one and rename the new one.

These are just ideas but if you are willing to work with me then we should certainly be able to avoid reinstalling the whole database!

James


On Jan 19, 2014, at 3:50 AM, itlists at schrievkrom.de wrote:

> Now I'm stopped with the development:
> 
> Jade shows me two versions of the same class - when I remove prior
> versions of that class the (0/2)-versioned classes go away - but I can
> not recompile that class because jadeServer throws an error:
> 
> sbClassFrom: anOrderedCollection
> 
> 	| selectedClassName selectedClassOop set myClass |
> 	selectedClassName := (anOrderedCollection removeFirst subStrings:
> Character space) first.
> 	selectedClassOop := anOrderedCollection removeFirst asNumber.
> 	set := IdentitySet new.
> 	self symbolList do: [:eachDict |
> 		eachDict do: [:eachGlobal |
> 			eachGlobal isBehavior ifTrue: [
> 				set addAll: (self historyOf: eachGlobal).
> 			].
> 		].
> 	].
> 	myClass := set detect: [:each | each asOop = selectedClassOop].
> 	myClass name asString = selectedClassName ifFalse: [self error: 'Class
> not found!'].
> 	anOrderedCollection removeFirst = 'classTab' ifTrue: [myClass :=
> myClass class].
> 	^myClass.
> 
> The statement
> 
> myClass := set detect: [:each | each asOop = selectedClassOop].
> 
> does not find any class any more. I can instantiate the class - but I
> can not change the class configurations (by the way: the a dbTransient
> class).
> 
> Any idea how to go on ? Otherwise I would remove the database and
> reinstall the whole system again ... :-(
> 
> 
> 
> -- 
> Marten Feldtmann
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass



More information about the Glass mailing list