Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Window Uncloser bug :) #17860

Open
Ducasse opened this issue Feb 20, 2025 · 0 comments
Open

Window Uncloser bug :) #17860

Ducasse opened this issue Feb 20, 2025 · 0 comments
Assignees

Comments

@Ducasse
Copy link
Member

Ducasse commented Feb 20, 2025

Transcript open 

then close the transcript...

we get an Error ... because it is not a SpPresenter

isWindowRejected: aWindow

	(aWindow model notNil and: [
		 (rejectedWindows includes: aWindow model class) or:
			 (aWindow model presenter notNil and: [
                                                       ^^^^^^^^^^^^^^^
				  rejectedWindows includes: aWindow model presenter class ]) ])
		ifTrue: [ ^ true ].


	^ false
ThreadSafeTranscript(Object)>>doesNotUnderstand: #presenter
SpClosedWindowListPresenter>>isWindowRejected:
SpClosedWindowListPresenter>>addClosedWindow:
[ :ann | self uniqueInstance addClosedWindow: ann window ] in SpClosedWindowListPresenter class>>subscribeToWindowClosedAnnoucements in Block: [ :ann | self uniqueInstance addClosedWindow: [..]
FullBlockClosure(BlockClosure)>>cull:
FullBlockClosure(BlockClosure)>>cull:cull:
[ action cull: anAnnouncement cull: announcer ] in AnnouncementSubscription(AbstractAnnouncementSubscription)>>deliver: in Block: [ action cull: anAnnouncement cull: announcer ]
FullBlockClosure(BlockClosure)>>on:do:
[ Processor terminateRealActive ] in [ :ex |
			  | onDoCtx handler bottom thisCtx |
			  onDoCtx := thisContext.
			  thisCtx := onDoCtx home.

			  "find the context on stack for which this method's is sender"

			  [ onDoCtx sender == thisCtx ] whileFalse: [
				  onDoCtx := onDoCtx sender.
				  onDoCtx ifNil: [ "Can't find our home context. seems like we're already forked
				and handling another exception in new thread. In this case, just pass it through handler."
					  ^ handlerAction cull: ex ] ].

			  bottom := [ Processor terminateRealActive ] asContext.
			  onDoCtx privSender: bottom.

			  handler := [ handlerAction cull: ex ] asContext.
			  handler privSender: thisContext sender.

			  (Process forContext: handler priority: Processor activePriority) resume.

			  "cut the stack of current process"
			  thisContext privSender: thisCtx.
			  nil ] in FullBlockClosure(BlockClosure)>>on:fork: in Block: [ Processor terminateRealActive ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants