--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "JUG Padova" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a jugpadova+...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/jugpadova/965ab143-e20b-4511-98f5-d0f3c105f2a5n%40googlegroups.com.
Scusate, senza accorgemene avevo risposto a Marco solo privatamente. Reinoltro alla lista l'ultimo scambio di messaggi.
Lucio
Oggetto: | Re: [jugpadova] Potrebbe esserci un errore nel JDK in BufferedOutputStream? |
---|---|
Data: | Mon, 15 Feb 2021 15:19:42 +0100 |
Mittente: | Marco Scarpa <qwert...@gmail.com> |
A: | Lucio Benfante <lucio.b...@jugpadova.it> |
Ciao.
No, il count conta appunto il numero di byte scritti nel buffer fino a quel momento.
Quindi, se una precedente scrittura ha riempito il buffer, viene controllato ed eventualmente svuotato, prima di eseguirne un'altra.
Lucio
Il 15/02/21 11:51, Marco Scarpa ha scritto:
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/jugpadova/e99ad96d-3605-416c-b8eb-3f6c9d50d84an%40googlegroups.com.
Ok avevo capito male il tuo commento ma lo stesso non mi pare
scritto male il codice.
Se non passa da if vuol dire che count<buf.length, quindi buf[count] non va in out of bounds (alla peggio count==buf.length-1). Alla write successiva fa il flushBuffer.
lo so, ma il fatto è che non viene lanciata se count non è maggiore o uguale a buf.length e questa situazione non mi risulta che accada mai in quel metodo ed essendo tutti synchronized non mi risulta ci siano metodi di altri thread che potrebbero portare a questa situazione (guadrando il resto del codice); secondo me avrebbero prima dovuto incrementare count, fare la verifica e poi in caso il flush
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/jugpadova/e99ad96d-3605-416c-b8eb-3f6c9d50d84an%40googlegroups.com.