Opened 3 years ago

Last modified 3 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)

comparing_class.jpg (354.6 KB ) - added by patrik.svestka@… 3 years ago.
libscm_fix_1_of_1_rev_935264ad298a_Rework_and_fix_HGSourceCodeManager_____revisionLogOf____directory_module__.patch (11.5 KB ) - added by jan vrany 3 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 by jan vrany, 3 years ago

What method did you try? I tried few and could not reproduce this.

by patrik.svestka@…, 3 years ago

Attachment: comparing_class.jpg added

comment:2 by patrik.svestka@…, 3 years ago

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:

No image "comparing_class#comparing_class.jpg" attached to Ticket #305

Version 0, edited 3 years ago by patrik.svestka@… (next)

comment:3 by jan vrany, 3 years ago

Steps to reproduce:

  1. In fresh Smalltalk/X, locate Change >> #isForSameAs:
  2. Make change to the comment and accept.
  3. In class context menu, select Repository > Compare with Newest in Repository

comment:4 by jan vrany, 3 years ago

Status: newtesting

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.

Note: See TracTickets for help on using tickets.