[BUG] HTTPSocket primitive failure

Andreas Raab andreas.raab at gmx.de
Tue May 13 17:47:02 UTC 2003


Hi,

Failing the primitive if the connection has been closed by the server seems
like the right thing to do. Or not?

Cheers,
  - Andreas

> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org 
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On 
> Behalf Of Brent Vukmer
> Sent: Tuesday, May 13, 2003 6:47 PM
> To: Squeak-Dev (E-mail)
> Subject: [BUG] HTTPSocket primitive failure
> 
> 
> I see this error after calling HTTPSocket>>httpGetDocument 
> about 1000 times:
> 
> 13 May 2003 12:30:08 pm
> 
> VM: Win32 - Squeak3.4 of 1 March 2003 [latest update: #5170]
> Image: Squeak3.6alpha [latest update: #5205]
> 
> HTTPSocket(Object)>>error:
> 	Receiver: a HTTPSocket[otherEndClosedButNotThisEnd]
> 	Arguments and temporary variables: 
> 		aString: 	'a primitive has failed'
> 	Receiver's instance variables: 
> 		semaphore: 	a Semaphore()
> 		socketHandle: 	a ByteArray(19 241 99 5 0 0 0 0 
> 128 47 10 0)
> 		readSemaphore: 	a Semaphore()
> 		writeSemaphore: 	a Semaphore()
> 		primitiveOnlySupportsOneSemaphore: 	true
> 		buffer: 	nil
> 		bufferPos: 	nil
> 		headerTokens: 	nil
> 		headers: 	nil
> 		responseCode: 	nil
> 
> HTTPSocket(Object)>>primitiveFailed
> 	Receiver: a HTTPSocket[otherEndClosedButNotThisEnd]
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> 		semaphore: 	a Semaphore()
> 		socketHandle: 	a ByteArray(19 241 99 5 0 0 0 0 
> 128 47 10 0)
> 		readSemaphore: 	a Semaphore()
> 		writeSemaphore: 	a Semaphore()
> 		primitiveOnlySupportsOneSemaphore: 	true
> 		buffer: 	nil
> 		bufferPos: 	nil
> 		headerTokens: 	nil
> 		headers: 	nil
> 		responseCode: 	nil
> 
> HTTPSocket(Socket)>>primSocket:receiveDataInto:startingAt:count:
> 	Receiver: a HTTPSocket[otherEndClosedButNotThisEnd]
> 	Arguments and temporary variables: 
> 		socketID: 	a ByteArray(19 241 99 5 0 0 0 0 
> 128 47 10 0)
> 		aStringOrByteArray: 	'                       
>                                    ...etc...
> 		startIndex: 	1
> 		count: 	2000
> 	Receiver's instance variables: 
> 		semaphore: 	a Semaphore()
> 		socketHandle: 	a ByteArray(19 241 99 5 0 0 0 0 
> 128 47 10 0)
> 		readSemaphore: 	a Semaphore()
> 		writeSemaphore: 	a Semaphore()
> 		primitiveOnlySupportsOneSemaphore: 	true
> 		buffer: 	nil
> 		bufferPos: 	nil
> 		headerTokens: 	nil
> 		headers: 	nil
> 		responseCode: 	nil
> 
> HTTPSocket>>getResponseUpTo:ignoring:
> 	Receiver: a HTTPSocket[otherEndClosedButNotThisEnd]
> 	Arguments and temporary variables: 
> 		markerString: 	'
> 
> '
> 		ignoreString: 	'
> '
> 		buf: 	'                                       
>                                   ...etc...
> 		response: 	a WriteStream
> 		bytesRead: 	nil
> 		tester: 	1
> 		mm: 	1
> 		skipped: 	0
> 		tt: 	1
> 		ttLimiT: 	0
> 	Receiver's instance variables: 
> 		semaphore: 	a Semaphore()
> 		socketHandle: 	a ByteArray(19 241 99 5 0 0 0 0 
> 128 47 10 0)
> 		readSemaphore: 	a Semaphore()
> 		writeSemaphore: 	a Semaphore()
> 		primitiveOnlySupportsOneSemaphore: 	true
> 		buffer: 	nil
> 		bufferPos: 	nil
> 		headerTokens: 	nil
> 		headers: 	nil
> 		responseCode: 	nil
> 
> 
> --- The full stack ---
> HTTPSocket(Object)>>error:
> HTTPSocket(Object)>>primitiveFailed
> HTTPSocket(Socket)>>primSocket:receiveDataInto:startingAt:count:
> HTTPSocket>>getResponseUpTo:ignoring:
>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> [] in HTTPSocket class>>httpGetDocument:args:accept:request:
> SmallInteger(Integer)>>timesRepeat:
> HTTPSocket class>>httpGetDocument:args:accept:request:
> HTTPSocket class>>httpGetDocument:
> BugFixArchive class>>httpGet:
> BugFixArchive class>>htmlDocForArchivePost:
> BugFixArchive>>htmlDocForArchivePost:
> ArchivePost>>htmlDoc
> ArchivePost>>initialize
> [] in OrderedCollection>>DoIt
> OrderedCollection>>do:
> OrderedCollection>>DoIt
> Compiler>>evaluate:in:to:notifying:ifFail:
> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
> BlockContext>>on:do:
> TextMorphEditor(ParagraphEditor)>>evaluateSelection
> [] in PluggableTextMorph>>doIt
> [] in PluggableTextMorph>>handleEdit:
> TextMorphForEditView(TextMorph)>>handleEdit:
> PluggableTextMorph>>handleEdit:
> PluggableTextMorph>>doIt
> OrderedCollectionInspector(StringHolder)>>perform:orSendTo:
> [] in MenuItemMorph>>invokeWithEvent:
> BlockContext>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> MenuItemMorph>>invokeWithEvent:
> MenuItemMorph>>mouseUp:
> MenuItemMorph>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> MenuItemMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuItemMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuMorph(Morph)>>processEvent:using:
> MenuMorph(Morph)>>processEvent:
> MenuMorph>>handleFocusEvent:
> [] in HandMorph>>sendFocusEvent:to:clear:
> PasteUpMorph>>becomeActiveDuring:
> ...etc...
> 



More information about the Squeak-dev mailing list