[kepler-dev] [Bug 2997] - Icons stop working after using kepler for a while

bugzilla-daemon@ecoinformatics.org bugzilla-daemon at ecoinformatics.org
Tue Nov 13 14:13:57 PST 2007


http://bugzilla.ecoinformatics.org/show_bug.cgi?id=2997


berkley at nceas.ucsb.edu changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED




------- Comment #3 from berkley at nceas.ucsb.edu  2007-11-13 14:13 -------
This bug is proving impossible to trace.  Here's the latest I know:

This seems to only happen with port parameter after a distributed workflow has
been run.  The port parameter changes from the normal dot and arrow to a blank
box.  I've traced through the XMLIcon and ComponentEntityConfig code.  The only
thing I can tell is that when the icon is succesfully placed,
ComponentEntityConfig._addIconAttributeToNamedObj() gets called 6 times.  When
it writes the wrong icon, that method gets called 4 times.  

Looking at the moml produced, the _icon attribute changes without reason in the
moml.  when it works correctly, the icon is this: <property name="_icon"
class="ptolemy.vergil.icon.ValueIcon"></property>  When it doesn't work, the
icon is this:  <property name="_icon"
class="ptolemy.kernel.util.Attribute"></property>

This makes no sense as, since batik is enabled, it should be ignoring this
property anyway.  The only way I have been able to fix this bug is to set
svgIconAttrib.setPersistent(true) in ComponentEntityConfig.  This forces the
xml to be written to the moml that is dropped on the canvas.  Matthew
purposefully set this to false, so I'm hesitant to check it in as true as it
might cause other problems.  

The weirdest thing is that I cannot find any other workflows that make this
happen besides the distributed ones.  The way I recreate this is:
1) open kepler
2) drag a port param to the canvas.  it should work.
3) open any of the distributed workflows and execute it
4) drag a port param to the canvas.  it will render as a box.

Currently have no idea as to what is doing this.


More information about the Kepler-dev mailing list