Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Applet - problemi sa memorijom (java.lang.OutOfMemoryError: Java heap space)

  • 9 odgovora
  • 3.901 pregleda

Najnovija ↓

Applet - problemi sa memorijom (java.lang.OutOfMemoryError: Java heap space) 14.10.2008. u 14:10 · pre 219 meseci #1
Koristim aplet za upload fajlova, kada selektujem malo vise fajlova (npr. 40MB), javlja se problem sa memorijom.

U konzoli dobijam:

Code:

java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin.liveconnect.SecureInvocation$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.plugin.liveconnect.SecureInvocation.CallMethod(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
    at sun.plugin.liveconnect.PrivilegedCallMethodAction.run(Unknown Source)
    ... 4 more
Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Unknown Source)
    at java.io.ByteArrayOutputStream.write(Unknown Source)
    at sun.net.www.http.PosterOutputStream.write(Unknown Source)
    at umpirsky.ClientHttpRequest.pipe(Unknown Source)
    at umpirsky.ClientHttpRequest.setParameter(Unknown Source)
    at umpirsky.ClientHttpRequest.setParameter(Unknown Source)
    at umpirsky.ClientHttpRequest.setParameter(Unknown Source)
    at umpirsky.ClientHttpRequest.setParameters(Unknown Source)
    at umpirsky.ClientHttpRequest.post(Unknown Source)
    at umpirsky.ClientHttpRequest.post(Unknown Source)
    at umpirsky.UmpirskyUploader.upload(UmpirskyUploader.java:195)
    ... 14 more


Da li je moguće povećati memoriju za aplet, ali ne u podešavanjem JVM na klijentovoj mašini, nego u samom apletu, na primer prilikom komajliranja da se navede mem. ograničenje ili tako nešto?
Potpis
http://automobi.li/
Re: Applet - problemi sa memorijom (java.lang.OutOfMemoryError: Java heap space) 14.10.2008. u 16:09 · pre 219 meseci #9
Gde si javax.activation nasao? Jel to uopste deo Jave ili ti trebaju neke posebne biblioteke?
Nesto mislim da ti ucitavas sve fajlove u istom trenutku, i to u trenutku kada kliknes na Upload dugme (tako mi izgleda iz stack tracea). Ono sto bi mogao da uradis je da prolazis kroz svaki fajl i uploadujes kroz stream jedan po jedan. Kad vidis da ti to radi, onda kreni da optimizujes pa probaj odjednom 10 MB i nekako pazi da ne prodjes kroz taj limit (bolje 9,5 MB nego 19). Dakle ako imas 50 MB, onda uploaduj iz (recimo) 5 iteracija.
Re: Applet - problemi sa memorijom (java.lang.OutOfMemoryError: Java heap space) 14.10.2008. u 19:48 · pre 219 meseci #10
Nije problem u ArrayList<File>, u pravu si ona čuva samo reference. Znam da nije tu problem jer ne puca na browse, nego na upload. Za upload koristim http://www.koders.com/java/fid...5BB56629AD65C1FF272EE51A0.aspx , malo sam je modifikovao tako da ima metod koji prima listu fajlova, ali je engine ostao isti (naravno, dajem joj fajl po fajl). Obrati čežnju na metod :

Code:

 private static void pipe(InputStream in, OutputStream out) throws IOException {
    byte[] buf = new byte[500000];
    int nread;
    int total = 0;

    synchronized (in) {
      while((nread = in.read(buf, 0, buf.length)) >= 0) {
        out.write(buf, 0, nread);
        total += nread;
      }
    }
    out.flush();
    buf = null;
  }

Potpis
http://automobi.li/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme