Opened 2 years ago
Last modified 2 years ago
#305 testing defect
libscm bug - comparing class with the newest in the repository
Reported by: | Patrik Svestka | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | default | Keywords: | |
Cc: | Also affects CVS HEAD (eXept version): | no |
Description
Action description:
click on message in a class and select a method => clicked on 'Compare class with the newest in the repository'
Error description:
[SubscriptOutOfBoundsError]: subscript (0) out of bounds in process NewSystemBrowser [79]
Complete walkback:
[SubscriptOutOfBoundsError]: subscript (0) out of bounds in process NewSystemBrowser [79] OrderedCollection(Object) >> subscriptBoundsError: 0 {3350528} [11] OrderedCollection >> at: 0 {3354624} [8] [] in HGSourceCodeManager class>>revisionLogOf:fromRevision:toRevision:numberOfRevisions:fileName:directory:module: >> value {3358720} [82] (1) SmallInteger >> timesRepeat: [] in HGSourceCodeManager class>>revisionLogOf:f...sion:numberOfRevisions:fileName:directory:module: {3362816} [5] HGSourceCodeManager class >> revisionLogOf:fromRevision:toRevision:numberOfRevisions:fileName:directory:module: ASMenuTree '398:02afc7d0970e' '398:02afc7d0970e' nil 'ASMenuTree.st' 'asume' 'ps' {3366912} [80] HGSourceCodeManager class(AbstractSourceCodeManager class) >> revisionLogOf:fromRevision:toRevision:finishAfter: ASMenuTree '398:02afc7d0970e' '398:02afc7d0970e' nil {3371008} [50] HGSourceCodeManager class(AbstractSourceCodeManager class) >> revisionLogOf:fromRevision:toRevision: ASMenuTree '398:02afc7d0970e' '398:02afc7d0970e' {3375104} [41] HGSourceCodeManagerUtilities(SourceCodeManagerUtilities) >> compareClassWithRepository:askForRevision: ASMenuTree false {3379200} [151] Tools::NewSystemBrowser >> compareAgainstNewestInRepository:usingManager: ASMenuTree HGSourceCodeManager {3383296} [12] Tools::NewSystemBrowser >> doCompareClassesWithRepository:usingManager: Set(ASMenuTree) HGSourceCodeManager {3387392} [9] [] in Tools::NewSystemBrowser>>selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: >> value {3391488} [10] [] in WindowGroup>>withCursor:do: >> value {3395584} [32] Block >> ensure: [] in WindowGroup>>withCursor:do: {3399680} [12] WindowGroup >> withCursor:do: Cursor(wait) [] in Tools::NewSystemBrowser>>selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: {3403776} [37] ApplicationWindow(TopView) >> withCursor:do: Cursor(wait) [] in Tools::NewSystemBrowser>>selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: {3407872} [6] Tools::NewSystemBrowser(ApplicationModel) >> withCursor:do: Cursor(wait) [] in Tools::NewSystemBrowser>>selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: {3411968} [9] Tools::NewSystemBrowser(ApplicationModel) >> withWaitCursorDo: [] in Tools::NewSystemBrowser>>selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: {3416064} [5] Tools::NewSystemBrowser >> selectorMenuCompareClassAgainstNewestInRepositoryUsingManager: HGSourceCodeManager {3420160} [9] Tools::NewSystemBrowser >> selectorMenuCompareClassAgainstNewestInRepositoryUsingManagerNamed: #HGSourceCodeManager {3424256} [6] Tools::NewSystemBrowser(Object) >> perform:with:with: #selectorMenuCompareClassAgainstNewestInRepositoryUsingManagerNamed: #HGSourceCodeManager HGSourceCodeManager {3428352} [31] [] in Tools::NewSystemBrowser>>scmMenuForManagerNamed:selector: >> value {3432448} [30] Block >> valueWithArguments: nil {3436544} [38] MenuPanel >> accept:index:toggle:receiver: MenuPanel::Item('Compare Class with Newest in Repository') 5 nil a Tools::NewSystemBrowser {3440640} [38] [] in MenuPanel>>processMenuSelectItemEvent: >> value {3444736} [15] MenuPanel >> processMenuSelectItemEvent: MenuEvent::MenuSelectItemEvent(#processMenuSelec...temEvent: view: MenuPanel args: #("recursive")))) {3461120} [22] MenuPanel(Object) >> perform:withArguments: #processMenuSelectItemEvent: #(MenuEvent::MenuSelectItemEvent(#processMenuSelectItemEvent: view: MenuPanel args: #("recursive"))) {3477504} [88] MenuPanel(DisplaySurface) >> dispatchEvent:type:arguments:withFocusOn:delegate: MenuEvent::MenuSelectItemEvent(#processMenuSelec...temEvent: view: MenuPanel args: #("recursive")))) #processMenuSelectItemEvent: #(MenuEvent::MenuSelectItemEvent(#processMenuSelectItemEvent: view: MenuPanel args: #("recursive"))) a SelectionInListView false {3506176} [238] MenuPanel(DisplaySurface) >> dispatchEvent:withFocusOn:delegate: MenuEvent::MenuSelectItemEvent(#processMenuSelec...temEvent: view: MenuPanel args: #("recursive")))) a SelectionInListView false {3522560} [5] MenuPanel >> dispatchEvent:withFocusOn:delegate: MenuEvent::MenuSelectItemEvent(#processMenuSelec...temEvent: view: MenuPanel args: #("recursive")))) a SelectionInListView true {3538944} [28] [] in WindowGroup>>processEventsWithModalGroup: >> value {3543040} [221] Block >> on:do:ensure: LastEventQuery (private in WindowGroup) [] in WindowGroup>>processEventsWithModalGroup: [] in WindowGroup>>processEventsWithModalGroup: {3547136} [15] WindowGroup >> processEventsWithModalGroup: nil {3551232} [232] [] in WindowGroup>>eventLoopWhile:onLeave: >> value {3555328} [152] SignalSet >> handle:do: [] in WindowGroup>>eventLoopWhile:onLeave: [] in WindowGroup>>eventLoopWhile:onLeave: {3559424} [14] [] in WindowGroup>>eventLoopWhile:onLeave: >> value {3563520} [81] Block >> ensure: [] in WindowGroup>>startupWith: (optimized) {3567616} [12] [] in WindowGroup>>eventLoopWhile:onLeave: >> value {3571712} [184] WindowGroup::WindowGroupQuery class(Notification class) >> answer:do: WindowGroup(NewSystemBrowser) [] in WindowGroup>>eventLoopWhile:onLeave: {3575808} [10] [] in WindowGroup::WindowGroupQuery class>>answer:do: >> value {3579904} [4] Block >> ensure: [] in WindowGroup::WindowGroupQuery class>>answer:do: (optimized) {3584000} [12] WindowGroup::WindowGroupQuery class >> answer:do: WindowGroup(NewSystemBrowser) [] in WindowGroup>>eventLoopWhile:onLeave: {3588096} [5] WindowGroup >> eventLoopWhile:onLeave: [] in WindowGroup>>startupWith: (optimized) [] in WindowGroup>>startupWith: (optimized) {3592192} [25] [] in WindowGroup>>startupWith: >> value {3596288} [26] Block >> ensure: [] in WindowGroup>>startupWith: {3600384} [12] [] in WindowGroup>>startupWith: >> value {3604480} [27] ExceptionHandlerSet >> handleDo: [] in WindowGroup>>startupWith: {3608576} [14] [] in Process>>start >> value {3612672} [34] Block >> on:do:ensure: SignalSet(AbortAllOperationRequest RestartProcessRequest TerminateProcessRequest) [] in Process>>start [] in Process>>start {3616768} [15] Process >> start {3620864} [35] UndefinedObject >> nil {3624960} [0]
Attachments (2)
Change History (6)
comment:1 Changed 2 years ago by
Changed 2 years ago by
Attachment: | comparing_class.jpg added |
---|
comment:2 Changed 2 years ago by
The method version works for me. The issue is on a ASMenuTree Class
.
It can be found in the walkback here:
HGSourceCodeManager class >> revisionLogOf:fromRevision:toRevision:numberOfRevisions:fileName:directory:module: ASMenuTree '398:02afc7d0970e' '398:02afc7d0970e' nil 'ASMenuTree.st' 'asume' 'ps' {3366912} [80] HGSourceCodeManager class(AbstractSourceCodeManager class) >> revisionLogOf:fromRevision:toRevision:finishAfter: ASMenuTree '398:02afc7d0970e' '398:02afc7d0970e' nil {3371008} [50] HGSourceCodeManager class(AbstractSourceCodeManager class) >> revisionLogOf:fromRevision:toRevision: ASMenuTree '398:02afc7d0970e' '398:02afc7d0970e' {3375104} [41] HGSourceCodeManagerUtilities(SourceCodeManagerUtilities) >> compareClassWithRepository:askForRevision: ASMenuTree false {3379200} [151]
I'm including a screenshot to make sure you are at the right place:
comment:3 Changed 2 years ago by
Steps to reproduce:
- In fresh Smalltalk/X, locate
Change >> #isForSameAs:
- Make change to the comment and accept.
- In class context menu, select Repository > Compare with Newest in Repository
Changed 2 years ago by
comment:4 Changed 2 years ago by
Status: | new → testing |
---|
Attached patch libscm_fix_1_of_1_rev_935264ad298a_Rework_and_fix_HGSourceCodeManager_____revisionLogOf____directory_module__.patch seems to fix it.
Please test it for a while, the SourceCodeManager? API design is so CVS-centric that so many hacks have to be implemented to answer what so many callers expect. I'll do the same, just to make sure no new regressions crop up.
What method did you try? I tried few and could not reproduce this.