2010-06-08 5 views
4

Je suis en train de mettre en place un téléchargement de fichier de base à blobstore, mais je reçois ce OutOfMemoryError:OutOfMemoryError essayant de télécharger sur blobstore localement

AVERTISSEMENT: erreur pour/_ah/upload/ aghvbWdkcmVzc3IcCxIVX19CbG9iVXBsb2FkU2Vzc2lvbl9fGMACDA java.lang. OutOfMemoryError: Java d'espace de tas à java.util.Arrays.copyOf (Arrays.java:2786) à java.io.ByteArrayOutputStream.write (ByteArrayOutputStream.java:71) à javax.mail.internet.MimeMultipart.readTillFirstBoundary (MimeMultipart.java: 316) à javax.mail.internet.Mim eMultipart.parse (MimeMultipart.java:186) à javax.mail.internet.MimeMultipart.getCount (MimeMultipart.java:109) à com.google.appengine.api.blobstore.dev.UploadBlobServlet.handleUpload (UploadBlobServlet.java : 135) à com.google.appengine.api.blobstore.dev.UploadBlobServlet.access 000 $ (UploadBlobServlet.java:72) à com.google.appengine.api.blobstore.dev.UploadBlobServlet 1.run $ (UploadBlobServlet.java:100) à java.security.AccessController.doPrivileged (Méthode natif) à com.google.appengine.api.blobstore.dev.UploadBlobServlet.doPost (UploadBlobServlet.java: 98) à jav ax.servlet.http.HttpServlet.service (HttpServlet.java:713) à javax.servlet.http.HttpServlet.service (HttpServlet.java:806) à org.mortbay.jetty.servlet.ServletHolder.handle (ServletHolder. java: 511);

J'ai utilisé l'analyseur de mémoire sur Eclipse et il a déclaré que la fuite de mémoire suspect est QueuedThreadPool. J'ai trouvé cette information sur un bug de fuite de mémoire :

http://jira.codehaus.org/browse/JETTY-1188

Quelqu'un d'autre a ce problème?

Merci, Jean

Répondre

6

Au cas où quelqu'un rencontrerait cela, il est probable que le problème soit réellement causé par un attribut 'nom' manquant dans le champ de saisie du fichier.

Voir: Uploading to Blobstore gives a Java heap OutOfMemoryError

Vous devriez être en mesure de télécharger des fichiers de toute taille une fois ce problème résolu.

0

Il est probable que le serveur de développement conserve le fichier en mémoire pendant qu'il est en cours de téléchargement et de traitement. Ce n'est pas le cas sur le serveur de production.

Quelle est la taille du fichier que vous testez? La solution la plus simple consiste à tester avec des fichiers plus petits. Je l'obtiens avec n'importe quelle taille de fichier sur le serveur de dev.