[kepler-dev] JAI actors

Christopher Brooks cxh at eecs.berkeley.edu
Mon May 8 10:29:59 PDT 2006


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.lib.jai.JAIImageReader
Because:
Could not find 'ptolemy/actor/lib/jai/JAIImageReader.xml' or 'ptolemy/actor/lib/jai/JAIImageReader.moml' using base 'file:/C:/cxh/ptII/ptolemy/actor/lib/jai/test/auto/JAIImageReader.xml':  in file:/C:/cxh/ptII/ptolemy/actor/lib/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\auto\ptolemy\actor\lib\jai\JAIImageReader.xml (The system cannot find the path 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 specified)
 in file:/C:/cxh/ptII/ptolemy/actor/lib/jai/test/auto/JAIImageReader.xml at line 41 and column 69

 at ptolemy.moml.MoMLParser._createEntity(MoMLParser.java:3422)



So, it appears that JAIImageReader is not part of the default Kepler configuration?

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/msg0
   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 Kepler
    
    >    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 exceptio
   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 cas
   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 fro
   m 
    >    the build-ptolemy.xml buildfile in Kepler and add the actors to Kepler
    
    >    library.
    >    
    >    thanks,
    >    nandita.
    >    
    >    
    >    Here is the exception:
    >         [java] Error: IOException occurs when search for propriate codecs
   .
    >         [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(Native
    
    >    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.java: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.java: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