Bonjour à tous!
J'ai une exception qui est déclenchée pendant un téléchargement d'un fichier mp4 depuis la 3G.
Voici l'exception :
Voici le bout de code déclenchant l'exception:07-27 16:03:34.776: ERROR/FOO(12705): java.io.IOException: unexpected end of stream
07-27 16:03:34.776: ERROR/FOO(12705): at org.apache.harmony.luni.internal.net.www.protocol.http.FixedLengthInputStream.read(FixedLengthInputStream.>java:47)
07-27 16:03:34.776: ERROR/FOO(12705): at java.io.BufferedInputStream.read(BufferedInputStream.java:319)
07-27 16:03:34.776: ERROR/FOO(12705): at fr.FOO.FOO.core.FileManager.download(FileManager.java:157)
07-27 16:03:34.776: ERROR/FOO(12705): at fr.FOO.FOO.smartContent.SmartGalleryAdapter$3.run(SmartGalleryAdapter.java:198)
07-27 16:03:34.776: ERROR/FOO(12705): at java.lang.Thread.run(Thread.java:1027)
Cette exception est générée aléatoirement pendant le téléchargement. Je ne vois pas du tout d'où cela peut provenir....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 public synchronized static File download(String url) throws IOException{ URL u = new URL(url); synchronized(u){ URLConnection uc = u.openConnection(); uc.setConnectTimeout(3600000); uc.setUseCaches(true); int taille = uc.getContentLength(); InputStream brut = uc.getInputStream(); InputStream entree = new BufferedInputStream(brut); byte[] donnees = new byte[taille]; int octetsLus = 0; int deplacement = 0; float alreadyRead = 0; while(deplacement < taille){ // The exception is here octetsLus = entree.read(donnees, deplacement, donnees.length-deplacement); alreadyRead = alreadyRead + octetsLus; if(octetsLus == -1) break; deplacement += octetsLus; } entree.close(); String fichier = slugFilename(url); File f = new File(BTCore.getInstance().context.getExternalCacheDir(), fichier); f.createNewFile(); FileOutputStream fichierSortie = new FileOutputStream(f); fichierSortie.write(donnees); fichierSortie.flush(); fichierSortie.close(); return f; } }
Est-ce que ça vient de mon code ou du serveur ?
Merci beaucoup pour les pistes que vous pouvez me donner...
Partager