Problem with Protocols.DecodedStream

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Problem with Protocols.DecodedStream

kobetic
How's the stream created ? DecodedStream is sort of an inverse of EncodedStream in that it produces/cosumes bytes (when in binary mode) and expects to read/write characters to/from the underlying stream. In text mode it just passes the characters through.
There seems to be something wrong with how the stream is applied here.

HTH,

Martin

"Andrés Garagiola"<[hidden email]> wrote:

> In the following method, implemented on DecodedStream class:
>
> on: aStream encodedBy: aStreamEncoder
>
>     super on: aStream encodedBy: aStreamEncoder.
>     binary := true.
>     cache := ReadWriteStream on: (ByteArray new: 10).
>     crPreceeding := false.
>
> asume that aStreamEncoder is a binary encoder.
> I´m trying upload a text file in a Seaside FileLibrary and occurs this error
> "Strings only store Characters" becouse this metods answer a binary stream
> when is expected a text stream.
>
> Any body know if this is a bug?
>
> Thanks
> Andrés
>
> Strings only store Characters
> ByteString(Object)>>error:
> ByteString>>at:put:
> WriteStream(InternalStream)>>pastEndPut:
> WriteStream>>nextPut:
> optimized [] in Grease.GRVisualWorksPlatform>>convertToSmalltalkNewlines:
> String class(SequenceableCollection class)>>streamContents:
> Grease.GRVisualWorksPlatform>>convertToSmalltalkNewlines:
> IpsGSG.ApplicationLibrary(Seaside.WAFileLibrary)>>addFile:
> Grease.GRUnboundDelayedSend>>valueWithArguments:
> Grease.GRUnboundDelayedSend>>valueWithPossibleArguments:
> Seaside.WAUploadCallback(Seaside.WAValueCallback)>>evaluateWithArgument:
> Seaside.WAUploadCallback(Seaside.WACallback)>>evaluateWithField:
> optimized [] in Seaside.WACallbackRegistry>>handle:
> SortedCollection(OrderedCollection)>>do:
> Seaside.WACallbackRegistry>>handle:
> optimized [] in [] in Seaside.WAActionPhaseContinuation>>runCallbacks
> BlockClosure>>on:do:
> Seaside.WAFlowActionPhaseContinuation(Seaside.WARenderLoopContinuation)>>withNotificationHandlerDo:
> optimized [] in Seaside.WAActionPhaseContinuation>>runCallbacks
> BlockClosure>>ensure:
> Seaside.WAFlowActionPhaseContinuation(Seaside.WAActionPhaseContinuation)>>runCallbacks
> Seaside.WAFlowActionPhaseContinuation>>runCallbacks
> Seaside.WAFlowActionPhaseContinuation(Seaside.WAActionPhaseContinuation)>>handleRequest
> optimized [] in Seaside.WASessionContinuation>>basicValue
> BlockClosure>>on:do:
> Seaside.WAFlowActionPhaseContinuation(Seaside.WASessionContinuation)>>withUnregisteredHandlerDo:
> Seaside.WAFlowActionPhaseContinuation(Seaside.WASessionContinuation)>>basicValue
> Seaside.WAFlowActionPhaseContinuation(Seaside.WASessionContinuation)>>value
> Seaside.WASession>>handleFiltered:
> Seaside.WAMutualExclusionFilter(Seaside.WARequestFilter)>>handleFiltered:
> optimized [] in Seaside.WAMutualExclusionFilter>>handleFiltered:
> BlockClosure>>ensure:
> optimized [] in Seaside.WAMutex>>critical:
> BlockClosure>>ensure:
> Semaphore>>critical:
> Seaside.WAMutex>>critical:
> Seaside.WAMutualExclusionFilter>>handleFiltered:
> optimized [] in Seaside.WARequestHandler>>handle:
> BlockClosure>>on:do:
> Seaside.WACurrentRequestContext class(Seaside.WADynamicVariable
> class)>>use:during:
> optimized [] in Seaside.WARequestContext>>push:while:
> BlockClosure>>ensure:
> Seaside.WARequestContext>>push:while:
> Seaside.WASession(Seaside.WARequestHandler)>>handle:
> Seaside.WAApplication(Seaside.WARegistry)>>dispatch:to:
> Seaside.WAApplication(Seaside.WARegistry)>>handleKeyed:with:
> Seaside.WAApplication(Seaside.WARegistry)>>handleFiltered:
> Seaside.WAApplication>>handleFiltered:
> Seaside.WAExceptionFilter(Seaside.WARequestFilter)>>handleFiltered:
> optimized [] in Seaside.WAExceptionFilter>>handleFiltered:
> BlockClosure>>on:do:
> Seaside.WAWalkbackErrorHandler(Seaside.WAExceptionHandler)>>handleExceptionsDuring:
> Seaside.WAWalkbackErrorHandler class(Seaside.WAExceptionHandler
> class)>>handleExceptionsDuring:context:
> Seaside.WAExceptionFilter>>handleFiltered:
> optimized [] in Seaside.WARequestHandler>>handle:
> BlockClosure>>on:do:
> Seaside.WACurrentRequestContext class(Seaside.WADynamicVariable
> class)>>use:during:
> optimized [] in Seaside.WARequestContext>>push:while:
> BlockClosure>>ensure:
> Seaside.WARequestContext>>push:while:
> Seaside.WAApplication(Seaside.WARequestHandler)>>handle:
> Seaside.WADispatcher>>handleFiltered:named:
> Seaside.WADispatcher>>handleFiltered:
> optimized [] in Seaside.WARequestHandler>>handle:
> BlockClosure>>on:do:
> Seaside.WACurrentRequestContext class(Seaside.WADynamicVariable
> class)>>use:during:
> optimized [] in Seaside.WARequestContext>>push:while:
> BlockClosure>>ensure:
> Seaside.WARequestContext>>push:while:
> Seaside.WADispatcher(Seaside.WARequestHandler)>>handle:
> optimized [] in Opentalk.SeasideRequest>>doTheWorkFor:
> BlockClosure>>on:do:
> Opentalk.SeasideRequest>>doTheWorkFor:
> Opentalk.SeasideRequest(Opentalk.RemoteRequest)>>evaluateFor:
> Opentalk.SeasideRequest(Opentalk.RemoteRequestWithEnvironment)>>evaluateFor:
> optimized [] in Opentalk.RemoteMessage>>dispatchFor:
> BlockClosure>>on:do:
> Opentalk.SeasideRequest(Opentalk.RemoteMessage)>>dispatchFor:
> optimized [] in Opentalk.RemoteRequest>>dispatchFor:
> BlockClosure>>on:do:
> optimized [] in Process class>>forBlock:priority:
>
> ----------------------------------------------------------------------
> ByteString(Object)>>error:
> Receiver:
>     a ByteString
> Arguments:
>     aStringOrMessage = an UserMessage('Strings only store Characters',
> #errStoreCharacters, #dialogs)
> Context PC = 6
>
> ----------------------------------------------------------------------
> ByteString>>at:put:
> Receiver:
>     a ByteString
> Arguments:
>     index = 1
>     aCharacter = 104
> Temporaries:
>     two = nil
> Context PC = 65
>
> ----------------------------------------------------------------------
> WriteStream(InternalStream)>>pastEndPut:
> Receiver:
>     a WriteStream
> Instance Variables:
>     collection = '
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc