Kepler: Issueshttps://projects.ecoinformatics.org/ecoinfo/https://projects.ecoinformatics.org/ecoinfo/ecoinfo/favicon.ico?14691340362014-08-21T20:27:56ZEcoinformatics Redmine
Redmine Bug #6588 (New): R actor does not have error for missing outputhttps://projects.ecoinformatics.org/ecoinfo/issues/65882014-08-21T20:27:56ZDaniel Crawldanielcrawl@gmail.com
<p>If the R actor has an output port "x", but the script does not assign a value to a variable "x", then the actor should report an error. Currently, the actor successfully runs but does not write a token to the output port.</p> Bug #5590 (New): RExpression forces pdf if 'automatically show graphics' is checkedhttps://projects.ecoinformatics.org/ecoinfo/issues/55902012-04-26T01:34:05ZDerik Barseghianbarseghian@nceas.ucsb.edu
<p>Look into this forced format change side-effect which is confusing to a user. If you select e.g. png, and 'auto show..', you get a pdf.</p> Bug #5030 (New): RExpression2 actor will fail if the libs are not foundhttps://projects.ecoinformatics.org/ecoinfo/issues/50302010-05-26T21:20:31ZDerik Barseghianbarseghian@nceas.ucsb.edu
<p>Creating a new bug from discussion originating in bug#4985, relevant sections posted below:</p>
<p>Jianwu said:<br />I also tried workflows in Kepler-2.0.0-Demos\demos\R\r-2.0.0\demos\JRI<br />directory, the whole Kepler just quit with the following message in the<br />console. It makes sense that the dll doesn't work for 64 bit machine. But just<br />quitting Kepler is too unfriendly.</p>
<pre><code>[null] Cannot find JRI native library!<br /> [null] Please make sure that the JRI native library is in a directory<br />liste<br />d in java.library.path.<br /> [null]<br /> [null] java.lang.UnsatisfiedLinkError: C:\Program<br />Files\Kepler-2.0-RC2\r-2.<br />0.0\lib\jri.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform<br /> [null] at java.lang.ClassLoader$NativeLibrary.load(Native Method)<br /> [null] at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1753)<br /> [null] at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1678)<br /> [null] at java.lang.Runtime.loadLibrary0(Runtime.java:822)<br /> [null] at java.lang.System.loadLibrary(System.java:993)<br /> [null] at org.rosuda.JRI.Rengine.&lt;clinit&gt;(Rengine.java:19)<br /> [null] at<br />org.ecoinformatics.seek.R.RExpression2._initializeRengine(REx<br />pression2.java:569)<br /> [null] at<br />org.ecoinformatics.seek.R.RExpression2._fireUsingJRI(RExpress<br />ion2.java:547)<br /> [null] at<br />org.ecoinformatics.seek.R.RExpression2.fire(RExpression2.java<br />:289)<br /> [null] at ptolemy.actor.AtomicActor.iterate(AtomicActor.java:469)<br /> [null] at<br />ptolemy.actor.sched.StaticSchedulingDirector.fire(StaticSched<br />ulingDirector.java:188)<br /> [null] at ptolemy.actor.CompositeActor.fire(CompositeActor.java:458)<br /> [null] at ptolemy.actor.Manager.iterate(Manager.java:749)<br /> [null] at ptolemy.actor.Manager.execute(Manager.java:351)<br /> [null] at ptolemy.actor.Manager.run(Manager.java:1162)<br /> [null] at ptolemy.actor.Manager$3.run(Manager.java:1215)<br />Exception in thread "main" Java returned: 1<br /> at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:105)<br /> at org.kepler.build.runner.Kepler.main(Kepler.java:78)<br />Caused by: Java returned: 1<br /> at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)<br /> at org.kepler.build.Run.runSuite(Run.java:298)<br /> at org.kepler.build.Run.run(Run.java:202)<br /> at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:101)<br /> ... 1 more<br />--- Nested Exception ---<br />Java returned: 1<br /> at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)<br /> at org.kepler.build.Run.runSuite(Run.java:298)<br /> at org.kepler.build.Run.run(Run.java:202)<br /> at org.kepler.build.modules.ModulesTask.execute(ModulesTask.java:101)<br /> at org.kepler.build.runner.Kepler.main(Kepler.java:78)</code></pre>
<p>and Ben responded:<br />2. The RExpression2 (JRI-based) actor will fail if the libs are not found. This<br />is probably deep in the JRI.jar library when it cannot load the correct native<br />lib for the platform. We could probably try to detect the 32 v. 64 bitness of<br />the system and prevent the actor from attempting to use JRI if it was on a 64<br />bit machine - otherwise it will be the hard failure (system.exit)</p>
<p>and Jianwu:<br /> Matlab actors also have 32 and 64 bit issue when using JNI libraries to<br />communicate with Matlab. It will pop up an exception message when the JNI lib<br />doesn't work with the system. You can find some information at<br /><a class="external" href="https://kepler-project.org/developers/teams/build/matlab-lib-build-instructions-in-kepler-for-matlab-actor">https://kepler-project.org/developers/teams/build/matlab-lib-build-instructions-in-kepler-for-matlab-actor</a>.<br />It may help this bug.</p> Bug #4881 (New): RExpression outputs [false] for any matrix of booleanshttps://projects.ecoinformatics.org/ecoinfo/issues/48812010-03-12T18:53:40ZOliver Soongsoong@nceas.ucsb.edu
<p>In an RExpression, add an output port "out" and use this R script:</p>
<p>out <- matrix(c(TRUE, FALSE, TRUE, FALSE), 2)</p>
<p>I get [false] as the output token, which seems to be because RExpression.java on line 1108 says:</p>
<p>mt = new BooleanMatrixToken();</p>
<p>instead of:</p>
<p>mt = new BooleanMatrixToken(valS);</p>
<p>or something similar. I'm not actually sure such a constructor exists, but it seems like it should given the other constructors in the lines before.</p> Bug #4880 (New): RExpression cannot output matrix of stringshttps://projects.ecoinformatics.org/ecoinfo/issues/48802010-03-12T18:45:03ZOliver Soongsoong@nceas.ucsb.edu
<p>Create an RExpression with the output port "out" and for the script, use:</p>
<p>out <- matrix(letters, 2)</p>
<p>Looking at the code, it seems as if a matrix of strings was never really considered. Commas in the strings would likely cause problems, and I don't actually know if there's a StringMatrixToken.</p> Bug #4879 (New): RExpression replaces ) in string vectors with } when outputting to a porthttps://projects.ecoinformatics.org/ecoinfo/issues/48792010-03-12T18:37:49ZOliver Soongsoong@nceas.ucsb.edu
<p>In an RExpression, create the output port "out" and in the R script, use:</p>
<p>out <- c("(", ")")</p>
<p>Hooking this to a Display actor, I get {"(", "}"}. This is because RExpression.java line 1139 (I think) has:</p>
<p>temp = temp.replace(')', '}');</p>
<p>which replaces all occurrences of ), even within the string.</p> Bug #4876 (New): RExpression - recursively handle arrayshttps://projects.ecoinformatics.org/ecoinfo/issues/48762010-03-11T23:25:19Zben leinfelderleinfelder@nceas.ucsb.edu
<p>Currently you can only have a list of lists - it would be nice to handle the Token->R->Token conversion recursively so that there was no limit to 'n'</p> Bug #4869 (In Progress): changes made to workflows during dialogs before committing (Edit Paramet...https://projects.ecoinformatics.org/ecoinfo/issues/48692010-03-04T19:04:24ZOliver Soongsoong@nceas.ucsb.edu
<p>When I make changes to an actor through the dialog, it seems like the changes are made to the workflow immediately, before the "Commit" button is clicked.</p>
<p>For example, create a workflow with an EML 2 Dataset actor. Make sure Kepler has not already authenticated with KNB. Now edit the EML 2 Dataset actor to reference a data package that requires authentication. The KNB login window will immediately pop up, even though no changes have been committed. Dismiss the window in some way. Now click the Help button and close the help window. The dialog will have disappeared. Open the actor dialog again, and the change will be there.</p>
<p>I should point out that the "Cancel" button does seem to work, but I suspect (based on debugging comments and comments in code) that this acts by reverting the changes already made.</p>
<p>I've seen this for sure on EML 2 Dataset and RExpression, since changes to one trigger visual feedback and I've mucked around in the code of the other. I suspect this is a general problem, though, and it may be a result of the underlying ptolemy design.</p> Bug #4740 (New): Create Ontology_Catalog sql table in the CORE persistent databasehttps://projects.ecoinformatics.org/ecoinfo/issues/47402010-02-05T04:56:18ZAaron Aaronaschultz@nceas.ucsb.edu
<p>I ran into our old friend, the "Cannot Find Ontology" error. After much time trying to debug through the OntologyConfiguration and OntologyCatalog classes I discovered that the way the owl files are being accessed is very fragile and thus causes this error (which I was finally able to reproduce by ant clean-cache). The issue is how the absolute paths are being created to find the owl files. I would suggest we create a database table in the persistent core database that has four columns: ID, NAME, PATH, and LIBRARY. The PATH is the fully qualified absolute path to the OWL file on the system that Kepler is running on (so we don't have to keep trying to figure out what the absolute path is in the Java code every time we want to get to the owl file).</p>
<p>The new catalog system would work like this:<br />1.) Default owl files (that are shipped with Kepler) are defined in Java code and inserted into the table the first time Kepler is started using the fully qualified absolute path for whatever system Kepler is running on<br />2.) Tagging (or other modules) can then add ontologies to the sql table (thus not having to overwrite the ontology_catalog.xml file directly as is done now)<br />3.) The user can then edit the the catalog through a gui interface (as opposed to editing the ontology_catalog.xml file as is done now)</p> Bug #4584 (New): CacheManager.getObject(KeplerLSID lsid) returns an object with the wrong LSIDhttps://projects.ecoinformatics.org/ecoinfo/issues/45842009-11-25T21:03:15ZAaron Aaronaschultz@nceas.ucsb.edu
<p>It seems that objects returned by the CacheManager.getObject(KeplerLSID lsid) method do not always have the right LSID... There is a lot of funny translation and things going on with the CacheObjects. This mechanism of storing a serialized CacheObject that contains metadata about the object in addition to the object itself is inherently fragile. I would propose that we do away with CacheObjects and use the SQL database to store metadata about objects and serialize them directly to files (instead of serializing their CacheObject counterparts). This would greatly reduce the complexity of the system.</p> Bug #4549 (In Progress): String Replace actor "remembers" previous execution valueshttps://projects.ecoinformatics.org/ecoinfo/issues/45492009-11-14T00:56:45ZOliver Soongsoong@nceas.ucsb.edu
<p>1. Build a workflow with an SDF director (set iterations to 1), an RExpression (turn off graphics output), and a Display actor. Hook the RExpression graphicsFileName port to the Display input port.<br />2. Run this workflow. There should be no noticeable output, as no token was passed to the Display actor. An Rplots.pdf file should have been generated in the appropriate subfolder of .kepler.<br />3. Add a String Replace actor. Hook the RExpression graphicsFileName port to the String Replace stringToEdit port, and hook the String Replace output port to the Display input port.<br />4. Run this workflow. Notice now that a Display actor window opens. A blank token of some sort was passed to the Display actor (I it's a "" string token). Again, another Rplots.pdf file should have been generated.<br />5. Turn on graphics output in the RExpression and run the workflow. The expected RExpression-1.png file should have been generated, and the Display actor should open and display the filename. Pay attention to the timestamp on the folder.<br />6. Turn off graphics output in the RExpression and run the workflow. The Display actor should open again and display the png filename from the previous execution. If you browse the .kepler, you should see the correct folder with the expected Rplots.pdf file.</p> Bug #4012 (New): update documentation to explain adding actor to library via KARhttps://projects.ecoinformatics.org/ecoinfo/issues/40122009-04-22T16:29:17ZMatt Jonesjones@nceas.ucsb.edu
<p>The current Hello World Tutorial stops the tutorial at using 'Instantiate Component' to place an actor on the canvas. <br /> <a class="external" href="https://kepler-project.org/developers/teams/build/developing-a-hello-world-actor-using-the-kepler-build-system-and-eclipse">https://kepler-project.org/developers/teams/build/developing-a-hello-world-actor-using-the-kepler-build-system-and-eclipse</a><br />Most users want to also add their actor to their library pane. This is described in Sections 10.3 and 10.4 of the User Manual:<br /> <a class="external" href="https://code.kepler-project.org/code/kepler-docs/trunk/outreach/documentation/shipping/UserManual.pdf">https://code.kepler-project.org/code/kepler-docs/trunk/outreach/documentation/shipping/UserManual.pdf</a></p>
<p>The Hello World tutorial should be extended with an additional step that shows how to create a KAR file and import it into Kepler's Library. The User Manual should also be checked to be sure that the instructions are still correct.</p> Bug #4010 (New): RExpression2 - tracking for backwards compatibilityhttps://projects.ecoinformatics.org/ecoinfo/issues/40102009-04-21T23:47:07Zben leinfelderleinfelder@nceas.ucsb.edu
<p>This bug is meant to help identify and track differences between the script-based (original) RExpression actor and the JRI-based RExpression2 actor</p> Bug #2962 (New): Add metadata to data tokens so that it can be used downstreamhttps://projects.ecoinformatics.org/ecoinfo/issues/29622007-09-12T00:42:02Zben leinfelderleinfelder@nceas.ucsb.edu
<p>Add metadata to data tokens so that it can be used downstream (e.g., names, descriptions, units, travel with data).<br />Would be useful for plotting in the R actor (among other things) so that axis can be labeled in a meaningful way.</p> Bug #2123 (New): need a way to uniquely identify actor in a workflow and locate ithttps://projects.ecoinformatics.org/ecoinfo/issues/21232005-06-13T19:25:10ZLaura Downeyldowney@lternet.edu
<p>need a way to uniquely identify actor in a workflow that is exposed to the <br />user so that if one person says look at actor X in workflow y, they know <br />exactly which one is being referenced. There could be many of the same kind <br />of actors in a workflow and users need a way to uniquely identify a specific <br />actor.</p>
<p>This could be done by making use of and exposing the actor ID. It could be <br />exposed in the general tab on the new proposed tabbed configuration dialog for <br />an actor.</p>
<p>Searching by actor ID could be added to the advanced search.</p>