Icons stop working after using kepler for a while
After having kepler open for some uncertain amount of time, the icons just stop working right. When you drag an actor to the canvas, the error " Error getting kar file on actor drop: For input string: "11906637555"" is displayed in the console and the icon that shows on the canvas of the newly dropped actor is either a blank box or a generic green box.
#1 Updated by Chad Berkley over 11 years ago
It looks like it might be trying to connect to the ecogrid for some reason and failing. The EcogridUtils error message always accompanies the kar file error.
[java] EcogridUtils: The time to create instance is =========== 0
[java] Error getting kar file on actor drop: For input string: "11906637555"
#3 Updated by Chad Berkley over 11 years ago
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.