Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1503 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Exception java.lang.reflect.InvocationTargetException RenderedImage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Exception java.lang.reflect.InvocationTargetException RenderedImage

n°1612348
Eyban
Posté le 17-09-2007 à 17:12:35  profilanswer
 

Bonjour, voilà j'ai une exception "java.lang.reflect.InvocationTargetException" que je n'arrive pas à catcher.
Cette exception intervient lors de l'appel de la methode getWidth() d'une RenderedImage. Elle vient du fait que mon image est trop grande en taille et entraine un OutOfMemory dans la methode getwidth(). Voici un extrait de mon code :
 
 
 String extOut;
     if (ext.toUpperCase().equals("JPEG" ) || ext.toUpperCase().equals("JPG" ))
             extOut="JPEG";
            else
             if (ext.toUpperCase().equals("TIFF" ) || ext.toUpperCase().equals("TIF" ))
              extOut="TIFF";
             else
              if (ext.toUpperCase().equals("GIF" ))
               extOut="GIF";
              else
               if (ext.toUpperCase().equals("PNG" ))
                extOut="PNG";
               else
         extOut="unknow";  
     
     FileSeekableStream s = new FileSeekableStream(cheminFichierEntree);
     
      // Create the ParameterBlock and add the SeekableStream to it.
                  ParameterBlock pb = new ParameterBlock();
                  pb.add(s);
      RenderedOp img;
           
      if (extOut.equals("unknow" ))  
       img = JAI.create("FileLoad",cheminFichierEntree);
      else
       img = JAI.create(extOut, pb);
     
       
       
   //Calcul du ratio pour le redimensionnement des images
   double ratio;
   ratio = (double) larg / (double) img.getWidth();
 
J'ai donc un exception :  
 
Error: One factory fails for the operation "JPEG"
Occurs in: javax.media.jai.ThreadSafeOperationRegistry
java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
 at java.lang.reflect.Method.invoke(Method.java:391)
 at javax.media.jai.FactoryCache.invoke(FactoryCache.java:122)
 at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1674)
 at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:473)
 at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:332)
 at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:819)
 at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:867)
 at javax.media.jai.RenderedOp.getWidth(RenderedOp.java:2179)
 at MiniatureImage.creerMiniature(MiniatureImage.java:76)
 at JavaAgent.NotesMain(JavaAgent.java:62)
 at lotus.domino.AgentBase.runNotes(Unknown Source)
 at lotus.domino.NotesThread.run(Unknown Source)
Caused by: java.lang.OutOfMemoryError:  
 at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:70)
 at java.awt.image.Raster.createPackedRaster(Raster.java:492)
 at sun.awt.image.codec.JPEGImageDecoderImpl.allocateDataBuffer(JPEGImageDecoderImpl.java:364)
 at sun.awt.image.codec.JPEGImageDecoderImpl.readJPEGStream(Native Method)
 at sun.awt.image.codec.JPEGImageDecoderImpl.decodeAsBufferedImage(JPEGImageDecoderImpl.java:243)
 at com.sun.media.jai.codecimpl.JPEGImage.<init>(JPEGImageDecoder.java:110)
 at com.sun.media.jai.codecimpl.JPEGImageDecoder.decodeAsRenderedImage(JPEGImageDecoder.java:46)
 at com.sun.media.jai.opimage.CodecRIFUtil.create(CodecRIFUtil.java:112)
 at com.sun.media.jai.opimage.JPEGRIF.create(JPEGRIF.java:43)
 ... 16 more
 
Je ne peux pas faire un catch de l'exception java.lang.reflect.InvocationTargetException car elle intervient dans la méthode getWidth(). Quelqu'un sait-il comment je pourrais m'en sortir ?


Message édité par Eyban le 17-09-2007 à 17:14:37
mood
Publicité
Posté le 17-09-2007 à 17:12:35  profilanswer
 

n°1612493
Bidem
Posté le 18-09-2007 à 09:12:23  profilanswer
 

Citation :

Caused by: java.lang.OutOfMemoryError:


 
C'est plutot là que se situe ton problème.
 
Voila un petit lien pour t'aider à chercher/éliminer ton problème de mémoire

Message cité 1 fois
Message édité par Bidem le 18-09-2007 à 09:12:59
n°1612517
Eyban
Posté le 18-09-2007 à 10:18:03  profilanswer
 

Bidem a écrit :

Citation :

Caused by: java.lang.OutOfMemoryError:


 
C'est plutot là que se situe ton problème.
 
Voila un petit lien pour t'aider à chercher/éliminer ton problème de mémoire


 
Merci de ta réponse.J'ai résolu le pb en augmentant la mémoire max de la machine virtuelle. Ton lien parlait peut être de ça (je ne le vois pas). Par contre j'aurais quand même voulu savoir (pour mon info personnel et au cas où il y ai encore un pb de out of memory) s'il était possible d'une façon ou d'un autre de catcher cette exception qui arrive dans la methode getwidth.

n°1612531
Bidem
Posté le 18-09-2007 à 11:02:11  profilanswer
 

Oui, on peut la catcher mais en fait, ce n'est pas une Exception, c'est une java.lang.Error.
 
Comme les Exception, les Error étendent Throwable mais sont utilisées pour des erreurs graves.
 
Ainsi que l'explique la javadoc, elles ne devraient pas être catchées.


Message édité par Bidem le 18-09-2007 à 11:02:37

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Exception java.lang.reflect.InvocationTargetException RenderedImage

 

Sujets relatifs
Charge de travail d'une migration VB vers VB.NET / C# / JAVA[JAVA] Manipuler OpenOffice à partir de Java ?
[JAVA] fusionner /concaténer des documents WORDLe traitement d'images et Java
[Java] Pour du web (tomcat), Postgres ou MySQL ?[java] algorithme du simplexe
java[Nom de Projet] Messenger Mobile en JAVA
[JAVA] Connaissez vous un logiciel pour parcourir le contenu des JARarborescence java et excel!
Plus de sujets relatifs à : Exception java.lang.reflect.InvocationTargetException RenderedImage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR