[kepler-dev] JAI actors

Christopher Brooks cxh at eecs.berkeley.edu
Thu May 18 17:13:37 PDT 2006


Hi Nandita,
I fixed JAIImageReader.  I'm not sure why I could not reproduce the
problem before, but once I was able to reproduce it, it was fairly
easy to track it down to a change I made to JAIImageReader where
I was commented out unused variables.  (My Bad).

So, the JAIImageReader actor should work now.

_Christopher

> Hi Nandita,
> > Hi Christopher,
> > I could run all JAI actors from Kepler but  I am unsure if i am 
> > following the right procedure...So  I am starting over :)
> > If you could tell/correct me how to integrate JAI actors with Kepler 
> > that would be great.
> > Once i have done it manually , I can add it to builds to compilie 
> > ptolemy's JAI classes so that they are found in kepler.
> > 
> > So here is what i did initially:
> > 1)under $PTII/ptolemy/actor/lib/jai
> > -->make and it compiles all the java classes in the above folder.
> > 2)I thought the above classes  would be copied to 
> > $PTII/build/classes/actor/lib/jai but they werent?
> 
> make does not copy anything in to $PTII/build.  That directory is used
> by $KEPLER/build-ptolemy.xml, which copies the source .java files from
> the ptolemy tree to $PTII/build/src and then compiles the file
> and places the class files in $PTII/build/classes.
> 
> >   Did ./configure & make fast install after the above as well but seems 
> > like jai folder is missed.
> >   (is there anything else i should do so that JAI classes are in build 
> > as well?)
> 
> When you ran configure, did it find the jai jar files?
> The way configure works with JAI is a little odd.  The JAI jar files
> should be in the JRE ext directory, but they are not always there.
> Thus, we search for for it and find it:
> 
> checking for the jai jar files... configure: WARNING: Either we could not find
>     javax.media.jai.RenderOp or else it was already in the JRE.
>     Searching for jai-core.jar returned:
>       FindClass: 'javax.media.jai.RenderedOp' was found in
>       '/usr/jdk/instances/jdk1.5.0/jre/lib/ext/jai_core.jar',
>       which is inside the java.home property
>       /usr/jdk/instances/jdk1.5.0/jre.
>       Thus, it is not necessary to add the jar file to the eclipse classpath
>     If the class cannot be found, then Eclipse might not be able to find
>     the JAI files.
>     This is only a problem if you are using Eclipse.
>     If the class was in the JRE, then Eclipse should compile the JAI files
>     without problems
> 
> I think the messages above are unclear, I'll clean them up.
> After running configure, $PTII/mk/ptII.mk should have PTJAI_DIR set
> to jai if JAI was found:
> 
> --start--
> # Set to jai and used in 
> # $PTII/ptolemy/actor/lib/makefile if Java Advanced Imaging was found
> PTJAI_DIR =	jai 
> --end--
> 
> $PTII/ptolemy/actor/lib/makefile uses PTJAI_DIR to determine if
> the make should go into the jai subdirectory.
> 
> If $PTII/mk/ptII.mk does not have PTJAI_DIR = jai then try this:
>   cd $PTII; rm config.*; ./configure
> Then check $PTII/mk/ptII.mk and see that PTJAI_DIR is set to jai.
> If it is not, then configure failed to find JAI.
> To find JAI, configure runs $PTII/config/FindClass.
> 
> To do this by hand, try:
> 
> --start--
> cxh at carson 447% cd $PTII/config
> cxh at carson 446% javac FindClass.java
> You have new mail.
> cxh at carson 447% java -classpath "$PTII/config;$CLASSPATH" FindClass javax.media
>     .jai.RenderedOp
> FindClass: 'javax.media.jai.RenderedOp' was found in
>       '/usr/jdk/instances/jdk1.5.0/jre/lib/ext/jai_core.jar',
>       which is inside the java.home property
>       /usr/jdk/instances/jdk1.5.0/jre.
>       Thus, it is not necessary to add the jar file to the eclipse classpath
> cxh at carson 448% 
> --end--
> 
> If the java command fails:
> Under Unix, run
> java -classpath "$PTII/config;$CLASSPATH" FindClass javax.media.jai.RenderedOp
> 
> If CLASSPATH is not set, you would run
> java -classpath "$PTII/config" FindClass javax.media.jai.RenderedOp
> 
> Once configure is able to find JAI $PTII/mk/ptII.mk should have:
> PTJAI_DIR =	jai 
> 
> 
> > 3) I thought that if jai classes are in ptolemy's build, Kepler can 
> > locate them. 
> 
> I'm not sure.  Probably only if $PTII is in the classpath
> 
> > So I manually put the all jai classes
> >   in build to test jai actors in kepler. After doing that i could get 
> > all JAI actors (except JAIImageReader)
> 
> Aha! the JAI AdaptiveMedian and ImageReconstruction demos
> finally fail for me with:
> 
>   Error: IOException occurs when search for propriate codecs
>   java.io.IOException: The handle is invalid
>   at java.io.RandomAccessFile.seek(Native Method)
> 
> I suspect Java 1.5 here?  I'm not sure what changed.
> I'll look into it.
> 
> >   to run from Kepler. But this all was test, if you could tell me the 
> > correct way to get Kepler to locate ptolemy's jai classes.
> 
> I'm not sure.
> 
> Kepler uses $PTII/bin/build-ptolemy.xml to build Ptolemy.
> It copies the source files to build.src
> It looks like right now, JAI is excluded :
>       <copy todir="${build.src}" filtering="yes">
> ...
>           <exclude name="ptolemy/actor/lib/jai/**"/>
> 
> So, if you remove that line, then the source files would be copied.
> However, the compile will fail for people who do not have JAI
> installed.  
> To do this you would need to create a check for JAI. I'm not
> sure how to do this, Dan would know.
> 
> > 4) I have been able to run JAI tests (stand alone) as well as my own JAI 
> > actors under kepler so I think its not missing any jai jars .
> 
> Cool!
> 
> I'll look into cleaning up configure and fixing JAI now that it fails.
> 
> _Christopher
> 
> > thanks,
> > nandita.
> > 
> > 
> > 
> > $ make
> > making jclass in ptolemy/actor/lib/jai/demo
> > make[1]: Entering directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/demo
> > '
> > making jclass in ptolemy/actor/lib/jai/demo/AdaptiveMedian
> > make[2]: Entering directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/demo
> > /AdaptiveMedian'
> > make[2]: Leaving directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/demo/
> > AdaptiveMedian'
> > making jclass in ptolemy/actor/lib/jai/demo/ImageReconstruction
> > make[2]: Entering directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/demo
> > /ImageReconstruction'
> > make[2]: Leaving directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/demo/
> > ImageReconstruction'
> > making jclass in ptolemy/actor/lib/jai/demo/VQSequenceDisplay
> > make[2]: Entering directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/demo
> > /VQSequenceDisplay'
> > make[2]: Leaving directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/demo/
> > VQSequenceDisplay'
> > make[1]: Leaving directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/demo'
> > 
> > making jclass in ptolemy/actor/lib/jai/test
> > make[1]: Entering directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/test
> > '
> > make[1]: Leaving directory 
> > `/cygdrive/c/Project/ptII/ptolemy/actor/lib/jai/test'
> > 
> > rm -f `basename ImageToJAI.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > ImageToJAI.ja
> > va
> > rm -f `basename JAIAffineTransform.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIAffineTran
> > sform.java
> > rm -f `basename JAIBandCombine.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIBandCombin
> > e.java
> > rm -f `basename JAIBandSelect.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIBandSelect
> > .java
> > rm -f `basename JAIBorder.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIBorder.jav
> > a
> > rm -f `basename JAIBoxFilter.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIBoxFilter.
> > java
> > rm -f `basename JAIBMPWriter.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIBMPWriter.
> > java
> > rm -f `basename JAIConstant.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIConstant.j
> > ava
> > rm -f `basename JAIConvolve.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIConvolve.j
> > ava
> > rm -f `basename JAICrop.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAICrop.java
> > rm -f `basename JAIDataConvert.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIDataConver
> > t.java
> > rm -f `basename JAIDCT.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIDCT.java
> > rm -f `basename JAIDFT.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIDFT.java
> > rm -f `basename JAIEdgeDetection.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIEdgeDetect
> > ion.java
> > rm -f `basename JAIIDCT.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIIDCT.java
> > rm -f `basename JAIIDFT.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIIDFT.java
> > rm -f `basename JAIImageReader.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIImageReade
> > r.java
> > rm -f `basename JAIInvert.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIInvert.jav
> > a
> > rm -f `basename JAIJPEGWriter.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIJPEGWriter
> > .java
> > rm -f `basename JAILog.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAILog.java
> > rm -f `basename JAIMagnitude.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIMagnitude.
> > java
> > rm -f `basename JAIMedianFilter.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIMedianFilt
> > er.java
> > rm -f `basename JAIPeriodicShift.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIPeriodicSh
> > ift.java
> > rm -f `basename JAIPhase.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIPhase.java
> > 
> > rm -f `basename JAIPolarToComplex.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIPolarToCom
> > plex.java
> > rm -f `basename JAIPNGWriter.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIPNGWriter.
> > java
> > rm -f `basename JAIPNMWriter.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIPNMWriter.
> > java
> > rm -f `basename JAIRotate.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIRotate.jav
> > a
> > rm -f `basename JAIScale.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIScale.java
> > 
> > rm -f `basename JAITIFFWriter.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAITIFFWriter
> > .java
> > rm -f `basename JAIToDoubleMatrix.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAIToDoubleMa
> > trix.java
> > rm -f `basename JAITranslate.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAITranslate.
> > java
> > rm -f `basename JAITranspose.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > JAITranspose.
> > java
> > rm -f `basename SaltAndPepper.java .java`.class
> > CLASSPATH="../../../..;" "/cygdrive/c/jdk1.5.0_05/bin/javac" -g -O 
> > SaltAndPepper
> > .java
> > 
> > 
> > I thought the above would
> > 
> > 
> > 
> > 
> > 
> > Christopher Brooks wrote:
> > 
> > >Hi Nandita,
> > >
> > >When I try to run ptolemy/actor/lib/jai/test/auto/JAIImageReader.xml
> > >under Kepler, I get:
> > >
> > >ptolemy.kernel.util.IllegalActionException: Cannot find class: ptolemy.actor
>     .l
> >     ib.jai.JAIImageReader
> > >Because:
> > >Could not find 'ptolemy/actor/lib/jai/JAIImageReader.xml' or 'ptolemy/actor/
>     li
> >     b/jai/JAIImageReader.moml' using base 'file:/C:/cxh/ptII/ptolemy/actor/li
>     b/
> >     jai/test/auto/JAIImageReader.xml':  in file:/C:/cxh/ptII/ptolemy/actor/li
>     b/
> >     jai/test/auto/JAIImageReader.xml at line 41 and column 69
> > >Caused by:
> > > com.microstar.xml.XmlException: -- C:\cxh\ptII\ptolemy\actor\lib\jai\test\a
>     ut
> >     o\ptolemy\actor\lib\jai\JAIImageReader.xml (The system cannot find the pa
>     th
> >      specified)
> > >-- XML file not found relative to classpath.
> > >-- C:\cxh\src\kepler;ptolemy/actor/lib/jai/JAIImageReader.xml
> > >ptolemy\actor\lib\jai\JAIImageReader.xml (The system cannot find the path sp
>     ec
> >     ified)
> > > in file:/C:/cxh/ptII/ptolemy/actor/lib/jai/test/auto/JAIImageReader.xml at 
>     li
> >     ne 41 and column 69
> > >
> > > at ptolemy.moml.MoMLParser._createEntity(MoMLParser.java:3422)
> > >
> > >
> > >
> > >So, it appears that JAIImageReader is not part of the default Kepler configu
>     ra
> >     tion?
> > >
> > >Are you running Kepler here or Vergil?
> > >
> > >_Christopher
> > >
> > >--------
> > >
> > >    Hi Chirstopher,
> > >    I am running Windows XP and jdk1.5.
> > >    Here are the JAI jars i have:
> > >    C:\jdk1.5.0_05\jre\lib\ext & C:\jre1.5.0_05\lib\ext
> > >    jai_codec.jar
> > >    jai_core.jar
> > >    mlib_wrapper.jar
> > >    
> > >    C:\jdk1.5.0_05\jre\bin
> > >    mlib_jai.dll
> > >    checkmmx.exe
> > >    mlib_jai_mmx.dll
> > >    
> > >    I have jai-1.1.2
> > >    
> > >     From our discussion last time, i suspect that since JAI actors
> > >    work in general and I have the above 3 jars.. could it still be a
> > >    native JAI library problem? Maybe i am wrong.
> > >
> > >    The JAI test cases and all other JAI actors work for me under the
> > >    Kepler as well as stand alone applications(w/o kepler). However
> > >    JAIImageReader and the SeekableStream gives the codec
> > >    IOexceptions.
> > >    
> > >    The test case that I run is the Ptolemy jai test workflow under 
> > >    ptolemy/actor/lib/jai/test/auto. I have
> > >    tried with PNG and JPG formats..however i get same exception.
> > >    
> > >    
> > >    thanks,
> > >    nandita.
> > >    
> > >    
> > >    Christopher Brooks wrote:
> > >    
> > >    >Hi Nandita,
> > >    >Do you have a test case for this?
> > >    >
> > >    >Also, what OS are you running?
> > >    >
> > >    >I suspect the problem is that the native JAI library is not being
> > >    >found?
> > >    >
> > >    >Our discussion from January can be found at
> > >    >http://www.mail-archive.com/ptolemy-hackers@bennett.eecs.berkeley.edu/m
>     sg
> >     0
> > >   0100.html
> > >    >
> > >    >_Christopher
> > >    >
> > >    >--------
> > >    >
> > >    >    hi Christopher,
> > >    >    Sorry i haven't visited this topic for a long time...
> > >    >    
> > >    >     I believe that the ptolemy JAIImageReader is causing some codec 
> > >    >    problem  in reading certain images.I have JAI actors working in Kep
>     le
> >     r
> > >    
> > >    >    otherwise.
> > >    >    
> > >    >    I wrote another way of getting the Image and then passed the image 
>     ( 
> >     a
> > >   s 
> > >    >    a JAIImageToken) on to Ptolemy JAI actors and got no codec related
> > >    >    exceptions in reading/processing the image.
> > >    >    I believe using the SeekableStream in JAIImageReader might generate
>      
> > >    >    similar factory error in some cases?? We can catch such codec excep
>     ti
> >     o
> > >   ns
> > >    >    in the JAIImageReader and try a second way of reading the image?
> > >    >    Here is another way of reading the image (which can be used in the 
>     ca
> >     s
> > >   e 
> > >    >    that the normal loading file way fails)
> > >    >            //_fileRoot indicates the filepath of image
> > >    >             ParameterBlock pb =  (new ParameterBlock()).add(_fileRoot)
>     ;
> > >    >              RenderedOp img = new RenderedOp("fileload", pb, null);
> > >    >             output.broadcast(new JAIImageToken(img));
> > >    >    Once I add the above, we can make Ptolemy JAI classes compile also 
>     fr
> >     o
> > >   m 
> > >    >    the build-ptolemy.xml buildfile in Kepler and add the actors to Kep
>     le
> >     r
> > >    
> > >    >    library.
> > >    >    
> > >    >    thanks,
> > >    >    nandita.
> > >    >    
> > >    >    
> > >    >    Here is the exception:
> > >    >         [java] Error: IOException occurs when search for propriate cod
>     ecs
> > >   .
> > >    >         [java] Occurs in: com.sun.media.jai.codec.ImageCodec
> > >    >         [java] java.io.IOException: The handle is invalid
> > >    >         [java]     at java.io.RandomAccessFile.seek(Native Method)
> > >    >         [java]     at 
> > >    >    com.sun.media.jai.codec.FileCacheSeekableStream.readUntil(Fil
> > >    >    eCacheSeekableStream.java:129)
> > >    >         [java]     at 
> > >    >    com.sun.media.jai.codec.FileCacheSeekableStream.read(FileCach
> > >    >    eSeekableStream.java:266)
> > >    >         [java]     at 
> > >    >    com.sun.media.jai.codec.SeekableStream.readFully(SeekableStre
> > >    >    am.java:327)
> > >    >         [java]     at 
> > >    >    com.sun.media.jai.codec.SeekableStream.readFully(SeekableStre
> > >    >    am.java:306)
> > >    >         [java]     at 
> > >    >    com.sun.media.jai.codec.ImageCodec.getDecoderNames(ImageCodec
> > >    >    .java:274)
> > >    >         [java]     at 
> > >    >    com.sun.media.jai.opimage.StreamRIF.create(StreamRIF.java:80)
> > >    >    
> > >    >         [java]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Nat
>     iv
> >     e
> > >    
> > >    >    Method)
> > >    >         [java]     at 
> > >    >    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces
> > >    >    sorImpl.java:39)
> > >    >         [java]     at 
> > >    >    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMet
> > >    >    hodAccessorImpl.java:25)
> > >    >         [java]     at java.lang.reflect.Method.invoke(Method.java:585)
> > >    >         [java]     at 
> > >    >    javax.media.jai.FactoryCache.invoke(FactoryCache.java:130)
> > >    >         [java]     at 
> > >    >    javax.media.jai.OperationRegistry.invokeFactory(OperationRegi
> > >    >    stry.java:1682)
> > >    >         [java]     at 
> > >    >    javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(Thr
> > >    >    eadSafeOperationRegistry.java:481)
> > >    >         [java]     at 
> > >    >    javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:
> > >    >    340)
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.createInstance(RenderedOp.java:830
> > >    >    )
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.createRendering(RenderedOp.java:87
> > >    >    8)
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.getRendering(RenderedOp.java:899)
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.createInstance(RenderedOp.java:810
> > >    >    )
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.createRendering(RenderedOp.java:87
> > >    >    8)
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.getRendering(RenderedOp.java:899)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.jai.JAIImageToken.asAWTImage(JAIImageToken.
> > >    >    java:95)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.image.ImageTableau.display(ImageTableau.jav
> > >    >    a:197)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.image.ImageTableau.append(ImageTableau.java
> > >    >    :139)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.gui.TokenEffigy.setTokens(TokenEffigy.java:226)
> > >    >    
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.image.ImageDisplay._display(ImageDisplay.ja
> > >    >    va:243)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.image.ImageDisplay$2.run(ImageDisplay.java:
> > >    >    209)
> > >    >         [java]     at 
> > >    >    java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
> > >    >    209)
> > >    >         [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.jav
>     a:
> >     4
> > >   61)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
> > >    >    spatchThread.java:242)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
> > >    >    atchThread.java:163)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
> > >    >    ava:157)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
> > >    >    ava:149)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.run(EventDispatchThread.java:110
> > >    >    )
> > >    >         [java] Exception in thread "AWT-EventQueue-0" 
> > >    >    java.lang.RuntimeException: -
> > >    >     Unable to render RenderedOp for this operation.
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.createInstance(RenderedOp.java:838
> > >    >    )
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.createRendering(RenderedOp.java:87
> > >    >    8)
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.getRendering(RenderedOp.java:899)
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.createInstance(RenderedOp.java:810
> > >    >    )
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.createRendering(RenderedOp.java:87
> > >    >    8)
> > >    >         [java]     at 
> > >    >    javax.media.jai.RenderedOp.getRendering(RenderedOp.java:899)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.jai.JAIImageToken.asAWTImage(JAIImageToken.
> > >    >    java:95)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.image.ImageTableau.display(ImageTableau.jav
> > >    >    a:197)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.image.ImageTableau.append(ImageTableau.java
> > >    >    :139)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.gui.TokenEffigy.setTokens(TokenEffigy.java:226)
> > >    >    
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.image.ImageDisplay._display(ImageDisplay.ja
> > >    >    va:243)
> > >    >         [java]     at 
> > >    >    ptolemy.actor.lib.image.ImageDisplay$2.run(ImageDisplay.java:
> > >    >    209)
> > >    >         [java]     at 
> > >    >    java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
> > >    >    209)
> > >    >         [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.jav
>     a:
> >     4
> > >   61)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
> > >    >    spatchThread.java:242)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
> > >    >    atchThread.java:163)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
> > >    >    ava:157)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
> > >    >    ava:149)
> > >    >         [java]     at 
> > >    >    java.awt.EventDispatchThread.run(EventDispatchThread.java:110
> > >    >    )
> > >    >    
> > >    >    
> > >    >    
> > >    >--------
> > >    >  
> > >    >
> > >--------
> > >  
> > >


More information about the Kepler-dev mailing list