/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
BufferedReader problem
Fra : Puk


Dato : 19-02-02 21:16

Hej alle sammen

Jeg har et lille problem med en BufferedReader, der
tilsyneladende aldrig bliver ready().

Jeg har et HttpServletRequest som jeg kalder metoden getReader()
på. Denne metode returnerer så en BufferedReader som jeg lige
skal være sikker på er klar til at blive læst fra, inden jeg
begynder at læse data fra den. Jeg kalder derfor metoden ready()
og hvis jeg får et false svar sleeper jeg min tråd i pt 100
millisekunder inden jeg igen forsøger at kalde ready() på
readeren. Men jeg får simpelthen aldrig nogen sinde et positivt
svar fra readeren og står derfor i en uendelig løkke og venter på
den (ja reelt set ved jeg jo ikke om readeren aldrig nogen sinde
kommer til fornuft, men løkken har da præsteret at stå og køre i
op mod 5 dage *G*).

Jeg har forsøgt at køre programmet, hvor jeg simpelthen læser den
første linie fra readeren uden at kalde ready() først, herefter
kalder jeg så ready() efter hver linie som før også. Her sker
der enten det at programmet kører fuldstændig som tiltænkt eller
at readeren melder false på ready() kaldet inden alt er læst fra
den og så herefter står og kører "uendeligt" og aldrig bliver
klar.

Jeg har ladet mig fortælle, at der vist nok er nogle kendte
problemer omkring BufferedReaders der kan resultere i denne slags
problemer, hvis man er lidt uheldig og det er jeg så åbenbart.
Kender nogen til problemstillingen eller hvad jeg kan gøre for at
komme ud af den?

På forhånd tak
Mange hilsner
Puk



 
 
Filip Larsen (19-02-2002)
Kommentar
Fra : Filip Larsen


Dato : 19-02-02 21:59

Puk skrev

> Jeg har et lille problem med en BufferedReader, der
> tilsyneladende aldrig bliver ready().

Som dokumentationen til BufferedReader siger, så er den ready hvis den kan
levere mindst et tegn uden at blokkere, og det kan den netop hvis der er
tegn i bufferen eller hvis den underliggende Reader er ready. Hvis den
underliggende Reader aldrig er ready, så vil BufferedReader en gang imellem
(når bufferen er tom) også "blive ved" med ikke at være ready. Selvom det er
ønskeligt, så er der ikke noget krav om, at en Reader skal være ready mindst
en gang i mellem.

Den eneste "sikre" måde at læse fra en Reader eller InputStream er at gøre
det i en separat tråd. Man skulle næsten tro det var muligt at skumme klasse
et sted på nettet der netop gør det for en vilkårlig Reader eller
InputStream.


Mvh,
--
Filip Larsen <filip.larsen@mail.dk>



Morten (19-02-2002)
Kommentar
Fra : Morten


Dato : 19-02-02 22:29

Puk wrote:
> Hej alle sammen
>
> Jeg har et lille problem med en BufferedReader, der
> tilsyneladende aldrig bliver ready().

Er du sikker på at den ikke har været det, og
nu bare er læst til ende? Det er sjældent at et
HTTP request ikke indeholder noget som helst...

Dit HttpServletRequest objekt indeholder masser af
metoder til at fiske parametrene ud med, hvorfor ikke
bruge dem?

Morten


Puk (20-02-2002)
Kommentar
Fra : Puk


Dato : 20-02-02 12:35

Morten <morten@kikobu.com> wrote in message news:<3C72C39A.5090203@kikobu.com>...

> Er du sikker på at den ikke har været det, og
> nu bare er læst til ende? Det er sjældent at et
> HTTP request ikke indeholder noget som helst...

Jep jeg er helt sikker. Jeg har en nohup fil på min Unix maskine hvor
min Weblogic server kører, hvor jeg kan se, at readeren aldrig bliver
ready() kva den debug jeg har indsat her og der.

> Dit HttpServletRequest objekt indeholder masser af
> metoder til at fiske parametrene ud med, hvorfor ikke
> bruge dem?

Det er sådan set fordi jeg i requestet blandt andet modtager en hel
fil fra et neuraltnetværk, som desværre er ren blackbox for mig.

Det neurale netværk ligger bag en applet som til sidst submitter til
en servlet i mit Weblogic miljø med et request. I det request
indeholdes en fil der er en slags vægtet simulering af 1000 vis af
besvarelser til spørgeskema samt input til en analyse der skal køres i
et andet neuralt netværk og til sidst munde ud i nogle anbefalinger af
hvor en virksomhed kan sætte ind for at øge kundetilfredshed,
medarbejder loyalitet eller hvad det nu måtte være.

Med alle disse fancy ting i værk, så irriterer mig det en kende, at
det er en s**** BufferedReader der volder mig problemer *G*.

Mange hilsner
Puk

Dennis Thrysøe (20-02-2002)
Kommentar
Fra : Dennis Thrysøe


Dato : 20-02-02 14:36



Puk wrote:
> Morten <morten@kikobu.com> wrote in message news:<3C72C39A.5090203@kikobu.com>...
>
>
>>Er du sikker på at den ikke har været det, og
>>nu bare er læst til ende? Det er sjældent at et
>>HTTP request ikke indeholder noget som helst...
>>
>
> Jep jeg er helt sikker. Jeg har en nohup fil på min Unix maskine hvor
> min Weblogic server kører, hvor jeg kan se, at readeren aldrig bliver
> ready() kva den debug jeg har indsat her og der.
>
>
>>Dit HttpServletRequest objekt indeholder masser af
>>metoder til at fiske parametrene ud med, hvorfor ikke
>>bruge dem?
>>
>
> Det er sådan set fordi jeg i requestet blandt andet modtager en hel
> fil fra et neuraltnetværk, som desværre er ren blackbox for mig.
>
> Det neurale netværk ligger bag en applet som til sidst submitter til
> en servlet i mit Weblogic miljø med et request. I det request
> indeholdes en fil der er en slags vægtet simulering af 1000 vis af
> besvarelser til spørgeskema samt input til en analyse der skal køres i
> et andet neuralt netværk og til sidst munde ud i nogle anbefalinger af
> hvor en virksomhed kan sætte ind for at øge kundetilfredshed,
> medarbejder loyalitet eller hvad det nu måtte være.
>
> Med alle disse fancy ting i værk, så irriterer mig det en kende, at
> det er en s**** BufferedReader der volder mig problemer *G*.

Du kunne evt. lave din egen. Jeg tror ikke det er 'rocket science'.

-dennis


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste