[aida] Deploying application to server

Martin Polák nigol at nigol.cz
Sat Aug 6 21:08:19 CEST 2011


HI Janko,


6. 8. 2011 v 20:24, Janko Mivšek:

> Ahoj Martin,
> 
> Is the login an expected behavior? What is a stack trace of that halt?

I think so, because on local machine, login is showed too. Correct me if I'm wrong, by default every page in application is accessible only after one log in as admin, right? But I'm not sure, how to deal with these user privileges, so I'm not able to set my application visible for everyone. 

> 
> Self halt is namely a way to raise an exception when occurs in Aida on
> Squeak/Pharo, well, once we will make this better :) That is, there is
> some error in your or Aida code, that it the reason for that halt and we
> need a full stack to find a reason.

I'm almost sure, that problem is in my code :). I'm appending content of PharoDebug.log at end of this mail.

Cheers
Martin

PharoDebug.log-----------------------------

THERE_BE_DRAGONS_HERE
Halt: 
6 August 2011 6:48:16 pm

VM: unix - i686 - linux - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
Image: Pharo1.2.1 [Latest update: #12345]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /opt/Pharo121.app/Contents/Resources
Trusted Dir /opt/Pharo121.app/Contents/Resources/secure
Untrusted Dir /opt/Pharo121.app/Contents/Resources/My Squeak

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: 	'pokusSite'
		serving: 	true
		style: 	a WebStyle
		settings: 	a Dictionary(#countingPolicy->#all #diagnostics->false #helpURL->'/he...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Router->a W...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo #myPokus->a PAPokus )
		timestamps: 	an IdentityDictionary(#Created->3489939861 #LastRequest->3490109295...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: 	'pokusSite'
		serving: 	true
		style: 	a WebStyle
		settings: 	a Dictionary(#countingPolicy->#all #diagnostics->false #helpURL->'/he...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Router->a W...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo #myPokus->a PAPokus )
		timestamps: 	an IdentityDictionary(#Created->3489939861 #LastRequest->3490109295...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: Object>>clear
	Receiver's instance variables: 
		outerContext: 	AIDASite>>answerTo:
		startpc: 	284
		numArgs: 	1


[(self tempAt: 2)
		cull: exception] in MethodContext(ContextPart)>>handleSignal:
	Receiver: BlockClosure>>on:do:
	Arguments and temporary variables: 
		exception: 	MessageNotUnderstood: Object>>clear
	Receiver's instance variables: 
		sender: 	AIDASite>>answerTo:
		pc: 	17
		stackp: 	3
		method: 	(BlockClosure>>#on:do: "a CompiledMethod(25427968)")
		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: 	90
		numArgs: 	0


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


MessageNotUnderstood(Exception)>>signal
	Receiver: MessageNotUnderstood: Object>>clear
	Arguments and temporary variables: 

	Receiver's instance variables: 
		messageText: 	nil
		tag: 	nil
		signalContext: 	MessageNotUnderstood(Exception)>>signal
		handlerContext: 	BlockClosure>>on:do:
		outerContext: 	nil
		message: 	clear
		receiver: 	a WebAdminApp
		reachedDefaultHandler: 	false


WebAdminApp(Object)>>doesNotUnderstand: #clear
	Receiver: a WebAdminApp
	Arguments and temporary variables: 
		aMessage: 	clear
		exception: 	MessageNotUnderstood: Object>>clear
		resumeValue: 	nil
	Receiver's instance variables: 
		session: 	a WebSession
		observee: 	a WebAdmin
		contexts: 	a Dictionary(57825->a WebContextFirst )
		other: 	nil
		username: 	nil
		password: 	nil
		newUser: 	nil
		newSite: 	nil


WebAdminApp(WebApplication)>>clear
	Receiver: a WebAdminApp
	Arguments and temporary variables: 

	Receiver's instance variables: 
		session: 	a WebSession
		observee: 	a WebAdmin
		contexts: 	a Dictionary(57825->a WebContextFirst )
		other: 	nil
		username: 	nil
		password: 	nil
		newUser: 	nil
		newSite: 	nil


WebStyle>>pageFrameWith:title:
	Receiver: a WebStyle
	Arguments and temporary variables: 
		aWebElement: 	a WebElement
		aTitleString: 	'AIDA/Web Login'
		element: 	nil
	Receiver's instance variables: 
		site: 	an AIDASite
		resources: 	a Dictionary(#cssPrint->a WebMethodResource #cssScreen->a WebMethodR...etc...
		searchButton: 	nil
		style: 	nil


WebAdminApp>>viewLogin
	Receiver: a WebAdminApp
	Arguments and temporary variables: 
		e: 	a WebElement
		l: 	a WebFieldSet
	Receiver's instance variables: 
		session: 	a WebSession
		observee: 	a WebAdmin
		contexts: 	a Dictionary(57825->a WebContextFirst )
		other: 	nil
		username: 	nil
		password: 	nil
		newUser: 	nil
		newSite: 	nil


WebAdminApp(WebApplication)>>printWebView:for:
	Receiver: a WebAdminApp
	Arguments and temporary variables: 
		aViewSymbol: 	#login
		aRequest: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
...etc...
		method: 	#viewLogin
		page: 	nil
		form: 	nil
	Receiver's instance variables: 
		session: 	a WebSession
		observee: 	a WebAdmin
		contexts: 	a Dictionary(57825->a WebContextFirst )
		other: 	nil
		username: 	nil
		password: 	nil
		newUser: 	nil
		newSite: 	nil


WebAdminApp(WebApplication)>>printWebPageStepTwoFor:
	Receiver: a WebAdminApp
	Arguments and temporary variables: 
		aRequest: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
...etc...
		toLogin: 	false
	Receiver's instance variables: 
		session: 	a WebSession
		observee: 	a WebAdmin
		contexts: 	a Dictionary(57825->a WebContextFirst )
		other: 	nil
		username: 	nil
		password: 	nil
		newUser: 	nil
		newSite: 	nil


WebAdminApp(WebApplication)>>printWebPageFor:
	Receiver: a WebAdminApp
	Arguments and temporary variables: 
		aRequest: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
...etc...
		ctx: 	a WebContextFirst
	Receiver's instance variables: 
		session: 	a WebSession
		observee: 	a WebAdmin
		contexts: 	a Dictionary(57825->a WebContextFirst )
		other: 	nil
		username: 	nil
		password: 	nil
		newUser: 	nil
		newSite: 	nil


WebAdmin(Object)>>printWebPageFor:on:
	Receiver: a WebAdmin
	Arguments and temporary variables: 
		aRequest: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
...etc...
		aSession: 	a WebSession
		webApp: 	a WebAdminApp
	Receiver's instance variables: 
		host: 	nil
		ip: 	nil
		port: 	nil


[page := anObject printWebPageFor: aRequest on: aWebSession] in AIDASite>>answer:toGetOrPost:on:
	Receiver: an AIDASite
	Arguments and temporary variables: 
		anObject: 	a WebAdmin
		aRequest: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
...etc...
		aWebSession: 	a WebSession
		page: 	#(nil)
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'pokusSite'
		serving: 	true
		style: 	a WebStyle
		settings: 	a Dictionary(#countingPolicy->#all #diagnostics->false #helpURL->'/he...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Router->a W...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo #myPokus->a PAPokus )
		timestamps: 	an IdentityDictionary(#Created->3489939861 #LastRequest->3490109295...etc...
		counters: 	an IdentityDictionary(#NewVisitors->a WebCounter #NotFound->a WebCoun...etc...
		other: 	a Dictionary(#activityAnnouncers->a Dictionary() )


BlockClosure>>ifCurtailed:
	Receiver: [page := anObject printWebPageFor: aRequest on: aWebSession]
	Arguments and temporary variables: 
		aBlock: 	[self finalizeExecutingRequest: aRequest]
		complete: 	nil
		result: 	nil
	Receiver's instance variables: 
		outerContext: 	AIDASite>>answer:toGetOrPost:on:
		startpc: 	184
		numArgs: 	0


AIDASite>>answer:toGetOrPost:on:
	Receiver: an AIDASite
	Arguments and temporary variables: 
		anObject: 	a WebAdmin
		aRequest: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
...etc...
		aWebSession: 	a WebSession
		stream: 	nil
		response: 	nil
		properContent: 	nil
		page: 	#(nil)
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'pokusSite'
		serving: 	true
		style: 	a WebStyle
		settings: 	a Dictionary(#countingPolicy->#all #diagnostics->false #helpURL->'/he...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Router->a W...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo #myPokus->a PAPokus )
		timestamps: 	an IdentityDictionary(#Created->3489939861 #LastRequest->3490109295...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 WebAdmin
		aRequest: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
...etc...
		aWebSession: 	a WebSession
	Receiver's instance variables: 
		enabled: 	true
		uriPattern: 	an OrderedCollection(a SiteIdentifier)
		parent: 	a ServerRootComposite
		children: 	an OrderedCollection()
		name: 	'pokusSite'
		serving: 	true
		style: 	a WebStyle
		settings: 	a Dictionary(#countingPolicy->#all #diagnostics->false #helpURL->'/he...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Router->a W...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo #myPokus->a PAPokus )
		timestamps: 	an IdentityDictionary(#Created->3489939861 #LastRequest->3490109295...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: 	'pokusSite'
		serving: 	true
		style: 	a WebStyle
		settings: 	a Dictionary(#countingPolicy->#all #diagnostics->false #helpURL->'/he...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Router->a W...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo #myPokus->a PAPokus )
		timestamps: 	an IdentityDictionary(#Created->3489939861 #LastRequest->3490109295...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: 	166
		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: 	'pokusSite'
		serving: 	true
		style: 	a WebStyle
		settings: 	a Dictionary(#countingPolicy->#all #diagnostics->false #helpURL->'/he...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Router->a W...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo #myPokus->a PAPokus )
		timestamps: 	an IdentityDictionary(#Created->3489939861 #LastRequest->3490109295...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: 	'pokusSite'
		serving: 	true
		style: 	a WebStyle
		settings: 	a Dictionary(#countingPolicy->#all #diagnostics->false #helpURL->'/he...etc...
		systemServices: 	a Dictionary(#Admin->a WebAdmin #Cache->a WebCache #Router->a W...etc...
		userServices: 	a Dictionary(#WebDemo->a WebDemo #myPokus->a PAPokus )
		timestamps: 	an IdentityDictionary(#Created->3489939861 #LastRequest->3490109295...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: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
	...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: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
	...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: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
	...etc...


URIResolution>>resolveTransparentComposite:
	Receiver: an URIResolution
	Arguments and temporary variables: 
		aCompositeResource: 	a ServerRootComposite
	Receiver's instance variables: 
		position: 	1
		request: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
	...etc...


URIResolution>>resolveServerRoot:
	Receiver: an URIResolution
	Arguments and temporary variables: 
		aServerRoot: 	a ServerRootComposite
	Receiver's instance variables: 
		position: 	1
		request: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
	...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: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
	...etc...


URIResolution class>>resolveRequest:startingAt:
	Receiver: URIResolution
	Arguments and temporary variables: 
		aRequest: 	a HTTPRequest GET
	 from: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
...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: 	('private' advance currentIdentifier currentPath getAnswerFrom: p...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: 46.135.89.8
	 at: 6 August 2011 6:48:15 pm
...etc...
		response: 	nil
	Receiver's instance variables: 
		ip: 	'aida.nigol.cz'
		port: 	80
		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: 	nil


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: 	nil


[[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: 	nil


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: 	89
		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: 	nil


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: 	85
		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
WebAdminApp(Object)>>doesNotUnderstand: #clear
WebAdminApp(WebApplication)>>clear
WebStyle>>pageFrameWith:title:
WebAdminApp>>viewLogin
WebAdminApp(WebApplication)>>printWebView:for:
WebAdminApp(WebApplication)>>printWebPageStepTwoFor:
WebAdminApp(WebApplication)>>printWebPageFor:
WebAdmin(Object)>>printWebPageFor:on:
[page := anObject printWebPageFor: aRequest on: aWebSession] in AIDASite>>answer:toGetOrPost:on:
BlockClosure>>ifCurtailed:
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 Aida mailing list