Re: [smartweb-user] Smartweb 1.2.6 vs 1.2.5 is almost backward compatible??
Brought to you by:
rlogiacco
From: Roberto Lo G. <rlo...@sm...> - 2008-10-11 17:49:38
|
Giuseppe Contartese wrote: > Hi, > recently I migrated ,in a "progress" project ,from smartweb 1.2.5 to > 1.2.6 > ...I noted some small things changed.. and I found warnigs during > compile-phase e.g. getSearchInfo and getSelectionList methods of > AbstractArchiveAction were changed in static methods.. > At first I didn't give them so much importance..but during filter > execution > get by SearchInfo properties i found a bug on an Enumeration search field > so I had replace in inappropriate way an override of getSearchInfo from > AbstractArchiveAction to avoid this glitch.. > and what result? > A static method cannot be override ..it can 'cause a possible > StackOverFlow > during processing..so I had to change every part of my inherit Action > super.getSearchInfo() ..into getSerachInfoPlus method to retrieve and > filter correct search fields..and so on. > My question is : > Is it "almost" backward-compatible.? > > Waiting for reply You are right, but I wasn't expecting someone were overriding the getSearchInfo() method... Anyway I think the behavior is confusing and I'll try to explain why the base class defines a static method named getSearchInfo while your class tries to override it (as it was non static in previous base class version) and call the method on the super class, something like public SearchInfo getSearchInfo(...) { SearchInfo info = super.getSearchInfo(); // your stuff here } the strange behavior is the StackOverflowException caused because the super call is "converted" to a self call, causing the overflow.... Anyway, the main reason for me to make the utility methods static was to make them available to Actions which can not inherit from AbstractArchiveAction for some reason. I'm sorry if I caused any trouble, but if no one has any other evidence of problems I think we could leave those methods static.... on the contrary, there are no valid reasons to break backward compatibility, so please... let us know if this change is a problem for someone else In the meanwhile, the SearchInfo problems has been fixed with your help, so I hope no one will have to override any more the getSearchInfo method |