[squeak-dev] [ANN] Aida 6.3 Holiday Edition, first beta
Janko Mivšek
janko.mivsek at eranova.si
Wed Jul 13 20:49:17 UTC 2011
Hi David,
I prepared a new Aida which should work now well on WebSocket enabled
browsers. Download plain Pharo one-click then:
Gofer new
squeaksource: 'MetacelloRepository';
package: 'ConfigurationOfAida';
load.
(Smalltalk at: #ConfigurationOfAida) load.
Then open http://localhost:8888
I'd be glad if you report the status of this Aida on different browsers
on Mac.
Best regards
Janko
S, David Shaffer piše:
>
> 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
>
>
>
--
Janko Mivšek
Aida/Web
Smalltalk Web Application Server
http://www.aidaweb.si
More information about the Squeak-dev
mailing list
|