Salve ragazzi.
Ho un problema. Sto eseguendo su un server due thread nei quali ricevo dal client una stringa di comando e successivamente in base al comando dato eseguo un azione.
In particolare ricevo dal client due file xml.
In un caso non ho nessun problema. Il file viene correttamente ricevuto.
Nell'altro caso invece ho un eccezione molto strana dato che è esattamente tutto uguale al primo caso:
il codice è il seguente:
L'eccezione che mi capita è:
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at java.io.BufferedOutputStream.write(Unknown Source)
at agenda.bean.TCPDesktopServer.run(TCPDesktopServer. java:104)
at java.lang.Thread.run(Unknown Source)
dove la riga TCPDesktopServer.java:104 è la seguente:
bos2.write(mybytearray2, 0 , current2);
....quello che non capisco è come mai quando vado a togliere l'altra parte di codice che è identica a quella in questione a differenza della stringa di comando che viene inviata dal client e letta dal server (ma il resto è tutto uguale, in quanto ricevo un file e lo memorizzo alla stessa maniera) non mi viene generata l'eccezione e funziona in quanto mi ritrovo il file xml correttamente scritto, invece se lascio entrambe le parti mi si genera l'eccezione e uno dei due file xml ricevuti (quello per cui si genera l'eccezione risulta vuoto).
Vi ringrazio ciao