J'ai une méthode void qui fait partie d'un flux exécuté par une tâche de planificateur à quartz.pourquoi ce code génère une exception?
Le contenu de cette méthode est le code:
try {
InputStream ris = this.getClass().getResourceAsStream("arialuni.ttf");
byte[] ttfAfm = new byte[1];
if (ris != null) {
System.out.println("toByteArray START");
ttfAfm = IOUtils.toByteArray(ris);
System.out.println("toByteArray END");
} else
System.out.println("input stream from arailuni.ttf is null!!!");
ris.close();
ris = null;
bfChinese =
BaseFont.createFont("arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, true, ttfAfm, null);
System.out.println("in myinit() try catch END");
} catch (Exception e) {
System.out.println("exception encountered at myinit() " + e);
}
Il est très étrange que cela fonctionne belles environ 30 fois (essentiellement, le planificateur scanne un répertoire, prendre une PCL trouvé et la convertit en PDF en utilisant cette police ARIALUNI.TTF) mais tout à coup, il donne l'exception follwing:
19:06:24,316 INFO [STDOUT] toByteArray START
19:06:28,218 ERROR [ReportPollingJob] java.lang.reflect.InvocationTargetExceptio
n
//nothing else here (yes, the exception is only one line...)
à IOUtils.toByteArray(ris)
Peut-il être à cause de la mémoire? Il est très étrange que cela ne va pas à mes prises, mais jette juste cette exception ...
Pouvez-vous donner un indice?
MISE À JOUR: Merci à MDMA: Je l'ai changé pour attraper (Throwable e) et maintenant je vois:
java.lang.OutOfMemory: JavaHeap Space
qui ne sera pas facile à résoudre ...
Plus d'infos sur l'exception, sur ce dont elle se plaint réellement? – BugFinder
C'est fondamentalement le problème principal, que je n'ai aucune autre sortie après cette erreur courte .... –
Normalement java est incroyablement vocal sur ses exceptions. Souvent au point que vous souhaitez, ce n'était pas le cas. – BugFinder