Bonjour à tous,

Pour pouvoir exécuter un traitement (Ghost4j), j'ai dû augmenter les capacités mémoire de la JVM ; ainsi j'ai pu exécuter mes tests :
-Xms64m
-Xmx512m
-XX:MaxPermSize=128m
Comme ces traitements sont répétitifs et prennent pas mal de temps par rapport au temps d'exécution de l'application, j'ai voulu passer la section concernée dans un thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
this.executor = Executors.newCachedThreadPool();
...
this.executor.execute(new Runnable() {
	public void run() {
		File thumbnail = generatePdfThumbnail(file); // Ghost4j
		if (thumbnail != null) {
			String thumbnailLink = buildLink(refDir, thumbnail);
			builder.buildThumbnailNode(node, thumbnail, thumbnailLink);
		}
	}
});
...
this.executor.shutdown();
Seulement, lorsque j'exécute le traitement, il s'avère que les paramètres mémoire ne sont manifestement pas transmis au thread :
Exception in thread "pool-1-thread-13" java.lang.OutOfMemoryError: Java heap space
Quelqu'un sait-il ce qu'il convient de faire, SVP ?
Merci d'avance.