[aida] Deploying application to server

Janko Mivšek janko.mivsek at eranova.si
Sat Aug 6 21:54:24 CEST 2011


Hi Martin,

Bravo, you found a bug in Aida :) It is in WebStyle and because a
DefaultWebStyle is used in aidademo, noone noticed :) But in any case it
is better to use a DefaultWebStyle instead, until you won't do your
completely own "styling". So, by changing the style class it should work.

About security, login as admin, click Security down in navigation, tab
Groups, click AllUsers, then for access without limits click Access
rights, then your App classes and set View all to them.

Best regards
Janko

S, Martin Polák piše:
> 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
> ------------------------------------------------------------
> 
> 
> _______________________________________________
> Aida mailing list
> Aida na aidaweb.si
> http://lists.aidaweb.si/mailman/listinfo/aida
> 

-- 
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si


More information about the Aida mailing list