[squeak-dev] [ANN] Aida 6.3 Holiday Edition, first beta

David Shaffer cdshaffer at acm.org
Wed Jul 13 14:55:17 UTC 2011


On Jul 13, 2011, at 10:37 AM, Janko Mivšek wrote:

>> 
> 
> Hi David, yes I'm just resolving this problem, on WebSocket enabled
> browsers only and from default installation. Fast meantime solution is
> to evaluate:
> 
> 	AIDASite default host: 'localhost' ip: 'localhost' port: 8888.
> 	SwazooServer stop; start.
> 
> Let me know it this solves for you the problem

Thanks.  Here's what I'm finding under OS X Snow Leopard with the one-click Pharo image Aida 6.1 beta1:

Chrome (12.0): none of the AJAX demo features seem to work (with or without evaluating code above)
Firefox (5.0): all AJAX features work fine
Safari (5.0.5): Causes the attached walkback when visiting Aida home page

David

13 July 2011 10:53:52 am

VM: Mac OS - intel - 1068 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.35] Aida 1.0
Image: Pharo1.3 [Latest update: #13286]

AIDASite(Object)>>halt
	Receiver: an AIDASite
	Arguments and temporary variables: 

	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'aidademo'
		serving: 	true
		style: 	a DefaultWebStyle
		settings: 	a Dictionary(#contextProcesses->false #countingPolicy->#all #diagnost...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Help->a Web...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo )
		timestamps: 	an IdentityDictionary(#Created->3487951614 #LastRequest->3488007153...etc...
		counters: 	an IdentityDictionary(#NewVisitors->a WebCounter #NotFound->a WebCoun...etc...
		other: 	a Dictionary(#activityAnnouncers->a Dictionary() )

[:exception | 
self halt.
	exception class == HTTPException
		ifTrue: [^ exception response].
	exception class == SpSocketError
		ifTrue: [self reportSocketError: exception request: aRequest]
		ifFalse: [self reportException: exception.
			exception defaultAction].
	errorResponse := self httpResponseOnException: exception.
	HTTPException raiseResponse: errorResponse.
	^ errorResponse] in AIDASite>>answerTo:
	Receiver: an AIDASite
	Arguments and temporary variables: 
<<error during printing>
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'aidademo'
		serving: 	true
		style: 	a DefaultWebStyle
		settings: 	a Dictionary(#contextProcesses->false #countingPolicy->#all #diagnost...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Help->a Web...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo )
		timestamps: 	an IdentityDictionary(#Created->3487951614 #LastRequest->3488007153...etc...
		counters: 	an IdentityDictionary(#NewVisitors->a WebCounter #NotFound->a WebCoun...etc...
		other: 	a Dictionary(#activityAnnouncers->a Dictionary() )

BlockClosure>>cull:
	Receiver: [:exception | 
self halt.
	exception class == HTTPException
		ifTrue: [^ exception respons...etc...
	Arguments and temporary variables: 
		anArg: 	MessageNotUnderstood: ByteArray>>asByteString
	Receiver's instance variables: 
		outerContext: 	AIDASite>>answerTo:
		startpc: 	292
		numArgs: 	1

[(self tempAt: 2)
		cull: exception] in MethodContext(ContextPart)>>handleSignal:
	Receiver: BlockClosure>>on:do:
	Arguments and temporary variables: 
		exception: 	MessageNotUnderstood: ByteArray>>asByteString
	Receiver's instance variables: 
		sender: 	AIDASite>>answerTo:
		pc: 	17
		stackp: 	3
		method: 	(BlockClosure>>#on:do: "a CompiledMethod(106692608)")
		closureOrNil: 	nil
		receiver: 	[self log: self cr
			, (self logStringFor: aRequest) , self cr , '  ...etc...

BlockClosure>>ensure:
	Receiver: [(self tempAt: 2)
		cull: exception]
	Arguments and temporary variables: 
		aBlock: 	[self tempAt: 3 put: true]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	MethodContext(ContextPart)>>handleSignal:
		startpc: 	98
		numArgs: 	0

MethodContext(ContextPart)>>handleSignal:
	Receiver: BlockClosure>>on:do:
	Arguments and temporary variables: 
		exception: 	MessageNotUnderstood: ByteArray>>asByteString
		val: 	nil
	Receiver's instance variables: 
		sender: 	AIDASite>>answerTo:
		pc: 	17
		stackp: 	3
		method: 	(BlockClosure>>#on:do: "a CompiledMethod(106692608)")
		closureOrNil: 	nil
		receiver: 	[self log: self cr
			, (self logStringFor: aRequest) , self cr , '  ...etc...

MessageNotUnderstood(Exception)>>signal
	Receiver: MessageNotUnderstood: ByteArray>>asByteString
	Arguments and temporary variables: 

	Receiver's instance variables: 
		messageText: 	nil
		tag: 	nil
		signaler: 	#[104 60 80 88 247 106 229 254 95 102 245 6 229 63 220 173]
		signalContext: 	MessageNotUnderstood(Exception)>>signal
		handlerContext: 	BlockClosure>>on:do:
		outerContext: 	nil
		message: 	asByteString
		receiver: 	#[104 60 80 88 247 106 229 254 95 102 245 6 229 63 220 173]
		reachedDefaultHandler: 	false

ByteArray(Object)>>doesNotUnderstand: #asByteString
	Receiver: #[104 60 80 88 247 106 229 254 95 102 245 6 229 63 220 173]
	Arguments and temporary variables: 
		aMessage: 	asByteString
		exception: 	MessageNotUnderstood: ByteArray>>asByteString
		resumeValue: 	nil
	Receiver's instance variables: 
#[104 60 80 88 247 106 229 254 95 102 245 6 229 63 220 173]

WebRealtimeHandler>>streamWebSocketOn:for:on:
	Receiver: a WebRealtimeHandler
	Arguments and temporary variables: 
		aStream: 	a WriteStream ''
		aRequest: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 ...etc...
		aWebSession: 	a WebSession
		realtimeConn: 	a WebRealtimeConnection
		response: 	a HTTPResponse
	Receiver's instance variables: 
		session: 	a WebSession
		connections: 	an OrderedCollection(a WebRealtimeConnection)

WebSession>>printHTMLPageOn:for:on:
	Receiver: a WebSession
	Arguments and temporary variables: 
		aStream: 	a WriteStream ''
		aRequest: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 ...etc...
		aWebSession: 	a WebSession
		url: 	'/aidasession/websocket'
	Receiver's instance variables: 
		ids: 	#(143337102 907561099)
		created: 	a SpTimestamp
		cookies: 	#(true false)
		parent: 	a WebSessionManager
		user: 	a WebUser
		appsForObjects: 	an IdentityDictionary(a WebAdmin->a Dictionary(#web->a WebAdmin...etc...
		queue: 	nil
		userValues: 	nil
		other: 	a Dictionary(#BrowserSupported->true #RealtimeHandler->a WebRealtimeHand...etc...

[page
		printHTMLPageOn: stream
		for: aRequest
		on: aWebSession] in AIDASite>>answer:toGetOrPost:on:
	Receiver: an AIDASite
	Arguments and temporary variables: 
		aRequest: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 ...etc...
		aWebSession: 	a WebSession
		stream: 	a WriteStream ''
		page: 	an Array(a WebSession)
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'aidademo'
		serving: 	true
		style: 	a DefaultWebStyle
		settings: 	a Dictionary(#contextProcesses->false #countingPolicy->#all #diagnost...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Help->a Web...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo )
		timestamps: 	an IdentityDictionary(#Created->3487951614 #LastRequest->3488007153...etc...
		counters: 	an IdentityDictionary(#NewVisitors->a WebCounter #NotFound->a WebCoun...etc...
		other: 	a Dictionary(#activityAnnouncers->a Dictionary() )

BlockClosure>>ensure:
	Receiver: [page
		printHTMLPageOn: stream
		for: aRequest
		on: aWebSession]
	Arguments and temporary variables: 
		aBlock: 	[self finalizeExecutingRequest: aRequest]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	AIDASite>>answer:toGetOrPost:on:
		startpc: 	318
		numArgs: 	0

AIDASite>>answer:toGetOrPost:on:
	Receiver: an AIDASite
	Arguments and temporary variables: 
		anObject: 	a WebSession
		aRequest: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 ...etc...
		aWebSession: 	a WebSession
		stream: 	a WriteStream ''
		response: 	a HTTPResponse
		properContent: 	nil
		page: 	an Array(a WebSession)
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'aidademo'
		serving: 	true
		style: 	a DefaultWebStyle
		settings: 	a Dictionary(#contextProcesses->false #countingPolicy->#all #diagnost...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Help->a Web...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo )
		timestamps: 	an IdentityDictionary(#Created->3487951614 #LastRequest->3488007153...etc...
		counters: 	an IdentityDictionary(#NewVisitors->a WebCounter #NotFound->a WebCoun...etc...
		other: 	a Dictionary(#activityAnnouncers->a Dictionary() )

AIDASite>>answer:to:on:
	Receiver: an AIDASite
	Arguments and temporary variables: 
		anObject: 	a WebSession
		aRequest: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 ...etc...
		aWebSession: 	a WebSession
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'aidademo'
		serving: 	true
		style: 	a DefaultWebStyle
		settings: 	a Dictionary(#contextProcesses->false #countingPolicy->#all #diagnost...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Help->a Web...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo )
		timestamps: 	an IdentityDictionary(#Created->3487951614 #LastRequest->3488007153...etc...
		counters: 	an IdentityDictionary(#NewVisitors->a WebCounter #NotFound->a WebCoun...etc...
		other: 	a Dictionary(#activityAnnouncers->a Dictionary() )

[self log: self cr
			, (self logStringFor: aRequest) , self cr , '              s'.
	self shouldRedirect
		ifTrue: [^ self redirectToOtherHost: aRequest].
	aRequest isPing
		ifTrue: [^ HTTPResponse ok].
	session := self sessionManager findOrCreateSessionFor: aRequest.
	aRequest session: session.
	session isHttpAuthenticationNeeded
		ifTrue: [session authenticateFrom: aRequest].
	session isHttpAuthenticationNeeded
		ifTrue: [^ self unauthorizedResponse].
	self log: 'p'.
	object := self router resourceFor: aRequest.
	self countRequest: aRequest onObject: object.
	object isNil
		ifTrue: [session removeIfNewGuest.
			^ HTTPResponse notFound].
	^ self
		answer: object
		to: aRequest
		on: session] in AIDASite>>answerTo:
	Receiver: an AIDASite
	Arguments and temporary variables: 
<<error during printing>
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'aidademo'
		serving: 	true
		style: 	a DefaultWebStyle
		settings: 	a Dictionary(#contextProcesses->false #countingPolicy->#all #diagnost...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Help->a Web...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo )
		timestamps: 	an IdentityDictionary(#Created->3487951614 #LastRequest->3488007153...etc...
		counters: 	an IdentityDictionary(#NewVisitors->a WebCounter #NotFound->a WebCoun...etc...
		other: 	a Dictionary(#activityAnnouncers->a Dictionary() )

BlockClosure>>on:do:
	Receiver: [self log: self cr
			, (self logStringFor: aRequest) , self cr , '              s'.
	self...etc...
	Arguments and temporary variables: 
		exception: 	an ExceptionSet
		handlerAction: 	[:exception | 
self halt.
	exception class == HTTPException
		if...etc...
		handlerActive: 	false
	Receiver's instance variables: 
		outerContext: 	AIDASite>>answerTo:
		startpc: 	174
		numArgs: 	0

AIDASite>>answerTo:
	Receiver: an AIDASite
	Arguments and temporary variables: 
<<error during printing>
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'aidademo'
		serving: 	true
		style: 	a DefaultWebStyle
		settings: 	a Dictionary(#contextProcesses->false #countingPolicy->#all #diagnost...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Help->a Web...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo )
		timestamps: 	an IdentityDictionary(#Created->3487951614 #LastRequest->3488007153...etc...
		counters: 	an IdentityDictionary(#NewVisitors->a WebCounter #NotFound->a WebCoun...etc...
		other: 	a Dictionary(#activityAnnouncers->a Dictionary() )

AIDASite>>helpResolve:
	Receiver: an AIDASite
	Arguments and temporary variables: 
		aResolution: 	an URIResolution
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'aidademo'
		serving: 	true
		style: 	a DefaultWebStyle
		settings: 	a Dictionary(#contextProcesses->false #countingPolicy->#all #diagnost...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Help->a Web...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo )
		timestamps: 	an IdentityDictionary(#Created->3487951614 #LastRequest->3488007153...etc...
		counters: 	an IdentityDictionary(#NewVisitors->a WebCounter #NotFound->a WebCoun...etc...
		other: 	a Dictionary(#activityAnnouncers->a Dictionary() )

URIResolution>>visitResource:
	Receiver: an URIResolution
	Arguments and temporary variables: 
		aResource: 	an AIDASite
	Receiver's instance variables: 
		position: 	1
		request: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 h...etc...

[:each | 
response := self visitResource: each.
	response isNil
		ifFalse: [^ response]] in URIResolution>>visitChildrenOf:advancing:
	Receiver: an URIResolution
	Arguments and temporary variables: 
		response: 	an AIDASite
		each: 	#(nil)
	Receiver's instance variables: 
		position: 	1
		request: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 h...etc...

OrderedCollection>>do:
	Receiver: an OrderedCollection(an AIDASite)
	Arguments and temporary variables: 
		aBlock: 	[:each | 
response := self visitResource: each.
	response isNil
		ifFal...etc...
		index: 	3
	Receiver's instance variables: 
		array: 	an Array(nil nil an AIDASite nil nil nil nil nil nil nil)
		firstIndex: 	3
		lastIndex: 	3

URIResolution>>visitChildrenOf:advancing:
	Receiver: an URIResolution
	Arguments and temporary variables: 
		aResource: 	a ServerRootComposite
		aBoolean: 	false
		response: 	#(nil)
	Receiver's instance variables: 
		position: 	1
		request: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 h...etc...

URIResolution>>resolveTransparentComposite:
	Receiver: an URIResolution
	Arguments and temporary variables: 
		aCompositeResource: 	a ServerRootComposite
	Receiver's instance variables: 
		position: 	1
		request: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 h...etc...

URIResolution>>resolveServerRoot:
	Receiver: an URIResolution
	Arguments and temporary variables: 
		aServerRoot: 	a ServerRootComposite
	Receiver's instance variables: 
		position: 	1
		request: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 h...etc...

ServerRootComposite>>helpResolve:
	Receiver: a ServerRootComposite
	Arguments and temporary variables: 
		aResolution: 	an URIResolution
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	''
		parent: 	nil
		children: 	an OrderedCollection(an AIDASite)

URIResolution>>visitResource:
	Receiver: an URIResolution
	Arguments and temporary variables: 
		aResource: 	a ServerRootComposite
	Receiver's instance variables: 
		position: 	1
		request: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 h...etc...

URIResolution class>>resolveRequest:startingAt:
	Receiver: URIResolution
	Arguments and temporary variables: 
		aRequest: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 ...etc...
		aResource: 	a ServerRootComposite
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#advance->(URIResolution>>#advance "a CompiledMe...etc...
		format: 	134
		instanceVariables: 	#('position' 'request')
		organization: 	('accessing' atEnd fullPath position request resourcePath tailPat...etc...
		subclasses: 	nil
		name: 	#URIResolution
		classPool: 	nil
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'Swazoo-HTTP'
		traitComposition: 	{}
		localSelectors: 	nil

HTTPServer>>answerTo:
	Receiver: a HTTPServer
	Arguments and temporary variables: 
		aRequest: 	a HTTPRequest GET
	 from: 127.0.0.1
	 at: 13 July 2011 10:52:33 am
	 ...etc...
		response: 	nil
	Receiver's instance variables: 
		ip: 	'localhost'
		port: 	8888
		connections: 	an OrderedCollection(a HTTPConnection a HTTPConnection a HTTPConne...etc...
		sites: 	a ServerRootComposite
		socket: 	a SwazooSocket
		loop: 	a Process in [self schedule.
	beingWaitedOn
		ifTrue: [delaySemaphore wai...etc...
		isMultiThreading: 	true

HTTPConnection>>produceResponseFor:
	Receiver: a HTTPConnection
	Arguments and temporary variables: 
		aSwazooTask: 	a SwazooTask
	Receiver's instance variables: 
		stream: 	a SwazooStream
		loop: 	a Process in MorphicUIManager>>openDebuggerOn:context:label:contents:full...etc...
		server: 	a HTTPServer
		task: 	a SwazooTask
		other: 	a Dictionary(#SwazooWebSocket->a SwazooWebSocket #Upgrade->true #Upgrade...etc...

HTTPConnection>>getAndDispatchMessages
	Receiver: a HTTPConnection
	Arguments and temporary variables: 

	Receiver's instance variables: 
		stream: 	a SwazooStream
		loop: 	a Process in MorphicUIManager>>openDebuggerOn:context:label:contents:full...etc...
		server: 	a HTTPServer
		task: 	a SwazooTask
		other: 	a Dictionary(#SwazooWebSocket->a SwazooWebSocket #Upgrade->true #Upgrade...etc...

[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil] in [[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]] in [[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]]
		ifCurtailed: [(Delay forMilliseconds: 50) wait.
			self close]] in HTTPConnection>>interact
	Receiver: a HTTPConnection
	Arguments and temporary variables: 

	Receiver's instance variables: 
		stream: 	a SwazooStream
		loop: 	a Process in MorphicUIManager>>openDebuggerOn:context:label:contents:full...etc...
		server: 	a HTTPServer
		task: 	a SwazooTask
		other: 	a Dictionary(#SwazooWebSocket->a SwazooWebSocket #Upgrade->true #Upgrade...etc...

BlockClosure>>on:do:
	Receiver: [[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
	Arguments and temporary variables: 
		exception: 	Error
		handlerAction: 	[:ex | nil]
		handlerActive: 	true
	Receiver's instance variables: 
		outerContext: 	[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor ...etc...
		startpc: 	97
		numArgs: 	0

[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]] in [[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]]
		ifCurtailed: [(Delay forMilliseconds: 50) wait.
			self close]] in HTTPConnection>>interact
	Receiver: a HTTPConnection
	Arguments and temporary variables: 

	Receiver's instance variables: 
		stream: 	a SwazooStream
		loop: 	a Process in MorphicUIManager>>openDebuggerOn:context:label:contents:full...etc...
		server: 	a HTTPServer
		task: 	a SwazooTask
		other: 	a Dictionary(#SwazooWebSocket->a SwazooWebSocket #Upgrade->true #Upgrade...etc...

BlockClosure>>ifCurtailed:
	Receiver: [[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error...etc...
	Arguments and temporary variables: 
		aBlock: 	[(Delay forMilliseconds: 50) wait.
	self close]
		complete: 	nil
		result: 	nil
	Receiver's instance variables: 
		outerContext: 	[[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor...etc...
		startpc: 	93
		numArgs: 	0

[[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]]
		ifCurtailed: [(Delay forMilliseconds: 50) wait.
			self close]] in HTTPConnection>>interact
	Receiver: a HTTPConnection
	Arguments and temporary variables: 

	Receiver's instance variables: 
		stream: 	a SwazooStream
		loop: 	a Process in MorphicUIManager>>openDebuggerOn:context:label:contents:full...etc...
		server: 	a HTTPServer
		task: 	a SwazooTask
		other: 	a Dictionary(#SwazooWebSocket->a SwazooWebSocket #Upgrade->true #Upgrade...etc...

[self value.
	Processor terminateActive] in BlockClosure>>newProcess
	Receiver: [[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Erro...etc...
	Arguments and temporary variables: 

	Receiver's instance variables: 
		outerContext: 	HTTPConnection>>interact
		startpc: 	89
		numArgs: 	0


--- The full stack ---
AIDASite(Object)>>halt
[:exception | 
self halt.
	exception class == HTTPException
		ifTrue: [^ exception response].
	exception class == SpSocketError
		ifTrue: [self reportSocketError: exception request: aRequest]
		ifFalse: [self reportException: exception.
			exception defaultAction].
	errorResponse := self httpResponseOnException: exception.
	HTTPException raiseResponse: errorResponse.
	^ errorResponse] in AIDASite>>answerTo:
BlockClosure>>cull:
[(self tempAt: 2)
		cull: exception] in MethodContext(ContextPart)>>handleSignal:
BlockClosure>>ensure:
MethodContext(ContextPart)>>handleSignal:
MessageNotUnderstood(Exception)>>signal
ByteArray(Object)>>doesNotUnderstand: #asByteString
WebRealtimeHandler>>streamWebSocketOn:for:on:
WebSession>>printHTMLPageOn:for:on:
[page
		printHTMLPageOn: stream
		for: aRequest
		on: aWebSession] in AIDASite>>answer:toGetOrPost:on:
BlockClosure>>ensure:
AIDASite>>answer:toGetOrPost:on:
AIDASite>>answer:to:on:
[self log: self cr
			, (self logStringFor: aRequest) , self cr , '              s'.
	self shouldRedirect
		ifTrue: [^ self redirectToOtherHost: aRequest].
	aRequest isPing
		ifTrue: [^ HTTPResponse ok].
	session := self sessionManager findOrCreateSessionFor: aRequest.
	aRequest session: session.
	session isHttpAuthenticationNeeded
		ifTrue: [session authenticateFrom: aRequest].
	session isHttpAuthenticationNeeded
		ifTrue: [^ self unauthorizedResponse].
	self log: 'p'.
	object := self router resourceFor: aRequest.
	self countRequest: aRequest onObject: object.
	object isNil
		ifTrue: [session removeIfNewGuest.
			^ HTTPResponse notFound].
	^ self
		answer: object
		to: aRequest
		on: session] in AIDASite>>answerTo:
BlockClosure>>on:do:
AIDASite>>answerTo:
AIDASite>>helpResolve:
URIResolution>>visitResource:
[:each | 
response := self visitResource: each.
	response isNil
		ifFalse: [^ response]] in URIResolution>>visitChildrenOf:advancing:
OrderedCollection>>do:
URIResolution>>visitChildrenOf:advancing:
URIResolution>>resolveTransparentComposite:
URIResolution>>resolveServerRoot:
ServerRootComposite>>helpResolve:
URIResolution>>visitResource:
URIResolution class>>resolveRequest:startingAt:
HTTPServer>>answerTo:
HTTPConnection>>produceResponseFor:
HTTPConnection>>getAndDispatchMessages
[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil] in [[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]] in [[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]]
		ifCurtailed: [(Delay forMilliseconds: 50) wait.
			self close]] in HTTPConnection>>interact
BlockClosure>>on:do:
[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]] in [[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]]
		ifCurtailed: [(Delay forMilliseconds: 50) wait.
			self close]] in HTTPConnection>>interact
BlockClosure>>ifCurtailed:
[[[[true]
		whileTrue: [self getAndDispatchMessages.
			Processor yield].
	nil]
		on: Error
		do: [:ex | nil]]
		ifCurtailed: [(Delay forMilliseconds: 50) wait.
			self close]] in HTTPConnection>>interact
[self value.
	Processor terminateActive] in BlockClosure>>newProcess




More information about the Squeak-dev mailing list