[kepler-dev] Very strange issue with Kepler-1.0/Kepler-2.0 compatibility across actors
Michal Owsiak
michal.owsiak at man.poznan.pl
Fri Feb 11 14:01:24 PST 2011
Hello Sean,
I have even simplified the use-case.
Please find reduced version of the actor. It doesn't require anything
apart from ptolemy classes.
I am not sure whether this is a factor here, but. If you compile this
class using Kepler-1.0.0 sources, and you will try to import it into
Kepler-2.0 you should get the error related to missing OBJECT field.
import java.awt.Image;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.ImageIcon;
import ptolemy.actor.TypedIOPort;
import ptolemy.actor.lib.Source;
import ptolemy.data.AWTImageToken;
import ptolemy.data.StringToken;
import ptolemy.kernel.CompositeEntity;
import ptolemy.kernel.util.IllegalActionException;
import ptolemy.kernel.util.NameDuplicationException;
public class ReadImage extends Source {
public ReadImage(CompositeEntity container, String name)
throws IllegalActionException, NameDuplicationException {
super(container, name);
imagePort = new TypedIOPort(this, "imageFile", true, false);
imagePort.setTypeEquals(ptolemy.data.type.BaseType.STRING);
output.setTypeEquals(ptolemy.data.type.BaseType.OBJECT);
}
public static final String REVISION = "$Revision: 2289 $";
public TypedIOPort imagePort;
public void fire() throws IllegalActionException {
super.fire();
String imageString = null;
if(imagePort.getWidth() != 0 && imagePort.hasToken(0)) {
StringToken imagePortToken = (StringToken) imagePort.get(0);
imageString = imagePortToken.stringValue();
}
if (imageString == null) {
throw new IllegalActionException("sourceURL was null");
} else {
try {
_url = new URL(imageString);
_fileRoot = _url.getFile();
_image = new ImageIcon(_fileRoot).getImage();
if ((_image.getWidth(null) == -1) && (_image.getHeight(null)
== -1)) {
throw new IllegalActionException("incorrect image");
} else {
output.broadcast(new AWTImageToken(_image));
}
} catch (MalformedURLException e) {
throw new IllegalActionException("sourceURL is incorrect");
}
}
}
private String _fileRoot;
private Image _image;
private URL _url;
}
> I'd be glad to help. That's quite a strange error. Could I get a copy
> of your Constants class so I can try to reproduce it? If you have a
> sample workflow that uses the ImageReaderPort that would be helpful as
> well.
>
> - Sean
>
> 2011/2/11 Michal Owsiak<michal.owsiak at man.poznan.pl>:
>> java.lang.NoSuchFieldError: OBJECT
>> at
>> pl.psnc.kepler.common.actor.ImageReaderPort.<init>(ImageReaderPort.java:91)
>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>> at
>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>> at
>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>> at ptolemy.moml.MoMLParser._createInstance(MoMLParser.java:4243)
>> at ptolemy.moml.MoMLParser._createEntity(MoMLParser.java:4043)
>> at ptolemy.moml.MoMLParser.startElement(MoMLParser.java:2493)
>> at com.microstar.xml.XmlParser.parseElement(XmlParser.java:921)
>> at com.microstar.xml.XmlParser.parseContent(XmlParser.java:1104)
>> at com.microstar.xml.XmlParser.parseElement(XmlParser.java:924)
>> at com.microstar.xml.XmlParser.parseContent(XmlParser.java:1104)
>> at com.microstar.xml.XmlParser.parseElement(XmlParser.java:924)
>> at com.microstar.xml.XmlParser.parseContent(XmlParser.java:1104)
>> at com.microstar.xml.XmlParser.parseElement(XmlParser.java:924)
>> at com.microstar.xml.XmlParser.parseDocument(XmlParser.java:481)
>> at com.microstar.xml.XmlParser.doParse(XmlParser.java:159)
>> at com.microstar.xml.XmlParser.parse(XmlParser.java:132)
>> at ptolemy.moml.MoMLParser.parse(MoMLParser.java:1418)
>> at ptolemy.moml.MoMLParser.parse(MoMLParser.java:1354)
>> at ptolemy.moml.MoMLParser.parse(MoMLParser.java:1298)
>> at
>> ptolemy.actor.gui.PtolemyEffigy$Factory.createEffigy(PtolemyEffigy.java:420)
>> at ptolemy.actor.gui.EffigyFactory.createEffigy(EffigyFactory.java:233)
>> at ptolemy.actor.gui.Configuration.openModel(Configuration.java:823)
>> at ptolemy.actor.gui.Configuration.openModel(Configuration.java:783)
>> at org.kepler.gui.kar.OpenArchiveAction._read(OpenArchiveAction.java:328)
>> at org.kepler.gui.kar.OpenArchiveAction._open(OpenArchiveAction.java:257)
>> at
>> org.kepler.gui.kar.OpenArchiveAction.actionPerformed(OpenArchiveAction.java:190)
>> at
>> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028)
>> at
>> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351)
>> at
>> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
>> at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
>> at javax.swing.AbstractButton.doClick(AbstractButton.java:389)
>> at com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:95)
>> at java.awt.MenuItem.processActionEvent(MenuItem.java:627)
>> at java.awt.MenuItem.processEvent(MenuItem.java:586)
>> at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:317)
>> at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:305)
>> at java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
>> at
>> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
>> at
>> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
>> at
>> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
>> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
>> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
>> at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
>>
>
--
Michal Owsiak <michal.owsiak at man.poznan.pl>
Institute of Bioorganic Chemistry PAS
Poznan Supercomputing and Networking Center
Noskowskiego 12/14, 61-704 Poznan, POLAND
http://www.man.poznan.pl
More information about the Kepler-dev
mailing list