Details
-
Bug
-
Status: Resolved
-
Resolution: Duplicate
-
1.7
-
None
-
Operating System: Windows XP
Platform: PC
Description
I have found what I think is a serious bug in the Batik SMIL animation engine.
When an animation's begin and end times are controlled by the user (such as an
animation that starts when the user presses a key and ends when the key is
released), starting and stopping the animation in quick succession, in a way
such as tapping the key repeatedly, will cause Batik to hang.
This bug is easily reproduceable. Open the following SVG file in Squiggle:
—
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400" id="svg1">
<rect x="0" y="0" height="400" width="400" fill="#0000ff" id="rect2">
<animateColor attributeName="fill" values="#0000ff;#000088;#0000ff" dur="3s"
repeatCount="indefinite"/>
</rect>
<rect x="180" y="180" height="40" width="40" fill="green" id="rect1">
<animateTransform attributeName="transform" type="translate" to="100,0"
from="0,0" dur="1s" begin="svg1.mousedown" end="svg1.mouseup"/>
</rect>
</svg>
—
The animateColor on the background rect is needed to make user-triggered
animations appear, another bug that deserves its own entry. Copy-and-paste the
SVG code above into a file, open that file in Batik, and then click the SVG file
repeatedly as fast as you can. Eventually, it will hang.
Even if you don't start and stop the animation fast enough to cause the hang,
the hang may still occur if there is another animation running that happens to
start or end at the exact same time that the user-triggered animation starts or
ends.
Attachments
Attachments
Issue Links
- duplicates
-
BATIK-862 AnimationEngine.removeAnimation doesn't clean up the "animation sandwich" correctly.
- Resolved