This is a migrated thread and some comments may be shown as answers.

Animation target not specified

17 Answers 218 Views
BusyIndicator
This is a migrated thread and some comments may be shown as answers.
Brian Sayatovic
Top achievements
Rank 1
Brian Sayatovic asked on 27 Mar 2013, 06:11 PM
My QA testers were able to trigger an error I can't account for that ended up with an 'Animation target not specified' InvalidOperationException thrown from deep within the RadBusyIndicator's animation:

 Message=Exception has been thrown by the target of an invocation.
  StackTrace:
       at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
       at System.Delegate.DynamicInvokeImpl(Object[] args)
       at System.Delegate.DynamicInvoke(Object[] args)
       at CaseInfoViewxaml_2.BindingOperation(Object BindingState, Int32 , Action )
  InnerException: System.InvalidOperationException
       Message=Animation target not specified.
       StackTrace:
            at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
            at MS.Internal.XcpImports.MethodEx(DependencyObject obj, String name)
            at MS.Internal.XcpImports.Storyboard_Begin(Storyboard storyboard)
            at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Action completeCallback, Boolean animateSelf, Object[] args)
            at Telerik.Windows.Controls.RadBusyIndicator.SetPropertiesAccordingIsBusy()
            at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyPropertyChangedEventArgs e)
            at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
            at Telerik.Windows.PropertyMetadata.PropertyChangeHook.OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
            at System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)
            at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)
            at System.Windows.DependencyObject.RefreshExpression(DependencyProperty dp)
            at System.Windows.Data.BindingExpression.SendDataToTarget()
            at System.Windows.Data.BindingExpression.SourcePropertyChanged(PropertyPathListener sender, PropertyPathChangedEventArgs args)
            at System.Windows.PropertyPathListener.ReconnectPath()
            at System.Windows.Data.Debugging.BindingBreakPoint.<>c__DisplayClass4.<BreakOnSharedType>b__3()

We're using the Windows 8 theme.  From what I can tell the SetPropertiesAccordingIsBusy method is attempting to start the "Hide" animation.  That animation includes a storyboard that tries to fade the visibility of the nested 'Indicator' grid.  All of that is pretty statically find inside the telerik.windows.controls.xaml.

Is this a bug?  Is there something I could've done to have caused this?

17 Answers, 1 is accepted

Sort by
0
Georgi
Telerik team
answered on 01 Apr 2013, 02:22 PM
Hello Brian,

We have tried to reproduce the issue in a simple project, but with no luck. So it could be great if you can isolate it in a simple project and send it to us. Also simple steps to reproduce could be helpful.
Nevertheless can you confirm that you are using 2013.1.220 and does it only happens in Widnows8 theme or it could be reproduce with other themes also?

Kind regards,
Georgi
the Telerik team

Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.

0
Brian Sayatovic
Top achievements
Rank 1
answered on 04 Apr 2013, 01:30 PM
We're not on 2013.1.  We're on 2012.3.  We will try 2013.1 in our next release as we try not to upgrade third party libraries like this during our QA cycle.  For now, we'll either live with the bug, or remove the nested busy indicator in hopes that we side-step the problem in this one place.

As for making a project which can reproduce it, it will take some time.
0
Georgi
Telerik team
answered on 09 Apr 2013, 08:55 AM
Hello Brian,

We have tested it in a simple application containing nested BusyIndicators with the Q3 2012 assemblies, but still no luck. I am attaching my test project just in case.
So it would be best if you can send us a simple project showing the issue. Please take as long as you need we would be happy to assist you further.

All the best,
Georgi
the Telerik team

Explore the entire Telerik portfolio by downloading Telerik DevCraft Ultimate.

0
Brian Sayatovic
Top achievements
Rank 1
answered on 29 Jul 2013, 01:35 PM
I've not been able to reproduce it in a standalone project.  Whittling down my own project is effectively impossible as it is over 1M lines.

I've recently seen another similar looking stack trace for a problem testers are encountering with our use of RadBusyIndicator:

---------------START--------------------

7/28/2013 1:56:08 PM      Error    0        ActivityId       UI, System                Title    An unhandled error has occurred for malpha - System.InvalidOperationException: 2212 An error has occurred.

   at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)

   at MS.Internal.XcpImports.MethodEx(DependencyObject obj, String name)

   at MS.Internal.XcpImports.Storyboard_Begin(Storyboard storyboard)

   at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Action completeCallback, Boolean animateSelf, Object[] args)

   at Telerik.Windows.Controls.RadBusyIndicator.SetPropertiesAccordingIsBusy()

   at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyPropertyChangedEventArgs e)

   at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)

   at Telerik.Windows.PropertyMetadata.PropertyChangeHook.OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)

   at System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)

   at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)

   at System.Windows.DependencyObject.RefreshExpression(DependencyProperty dp)

   at System.Windows.Data.BindingExpression.SendDataToTarget()

   at System.Windows.Data.BindingExpression.SourcePropertyChanged(PropertyPathListener sender, PropertyPathChangedEventArgs args)

   at System.Windows.PropertyPathListener.ReconnectPath()

   at System.Windows.PropertyPathListener.RaisePropertyPathStepChanged(PropertyPathStep source)

   at System.Windows.PropertyAccessPathStep.RaisePropertyPathStepChanged(PropertyListener source)

   at System.Windows.CLRPropertyListener.SourcePropertyChanged(Object sender, PropertyChangedEventArgs args)

   at System.Windows.Data.WeakPropertyChangedListener.PropertyChangedCallback(Object sender, PropertyChangedEventArgs args)

   at System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e)

   at CIN.Ag.Model.PropertyChangeSupport.<>c__DisplayClass1.<NotifyPropertyChanged>b__0()       0                 Silverlight AppDomain                              

----------------END---------------------


Again, this is somewhere in the RadBusyIndicator reacting to a property change notification that leads to its busy state changing and its animation trying to start (or stop? not sure).

Since this is so difficult to reproduce, do you have any suggestions of the best way to track down what may be causing this?  Tweaks to styles?  Diagnostic modes I can turn on? Anything?

P.S. We're using Telerik.Windows.Controls, Version=2013.1.415.1050, Culture=neutral, PublicKeyToken=5803cfa389c90ce7
0
kity
Top achievements
Rank 2
answered on 30 Jul 2013, 01:26 PM
Confirm this happying to me too with version (2013.1.527.10.50), theme dark with circle.

Here is style template that I use

 

 

 

<ResourceDictionary 
  
  
  
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls" 
  
xmlns:animation="clr-namespace:Telerik.Windows.Controls.Animation;assembly=Telerik.Windows.Controls" 
  
xmlns:sys="clr-namespace:System;assembly=mscorlib"
  
xmlns:telerikShapes="clr-namespace:Telerik.Windows.Shapes;assembly=Telerik.Windows.Controls" >
  
<ResourceDictionary.MergedDictionaries>
  
<ResourceDictionary Source="/Wave.Platform.PortalFramework.Infrastructure;component/PortalVisualResources/PortalBaseResourceDictionary.xaml" />
  
<telerik:Windows8ResourceDictionary />
  
</ResourceDictionary.MergedDictionaries>
  
  
<!--RadBusyIndicator-->
  
  
<SolidColorBrush x:Key="ProgressBarBackground_Nomral" Color="#F0EFF6" />
  
<SolidColorBrush x:Key="ProgressBarBackground_Loaded" Color="{Binding Path=Palette.AccentColor, Source={StaticResource Windows8Colors}}" />
  
  
<SolidColorBrush x:Key="BusyIndicatorBusyOverlayBrush" Color="Transparent" />
  
<SolidColorBrush x:Key="BusyIndicatorBorder" Color="Transparent" />
  
<SolidColorBrush x:Key="BusyIndicatorBackground" Color="Transparent" />
  
  
<SolidColorBrush x:Key="BusyIndicatorForeground" Color="{Binding Path=Palette.AccentColor, Source={StaticResource Windows8Colors}}" />
  
<LinearGradientBrush x:Key="ProgressBarBorder2" EndPoint="0.04,0.5" StartPoint="0.972,0.5">
  
<GradientStop Color="#FF707070" Offset="0"/>
  
<GradientStop Color="#FF707070" Offset="1"/>
  
<GradientStop Color="#FFA3A3A3" Offset="0.5"/>
  
<GradientStop Color="#FF707070" Offset="0.993"/>
  
</LinearGradientBrush>
  
<LinearGradientBrush x:Key="ProgressBarBorder" EndPoint="0.04,0.5" StartPoint="0.972,0.5">
  
<GradientStop Color="#00F1F1F1" Offset="0"/>
  
<GradientStop Color="#00F1F1F1" Offset="1"/>
  
<GradientStop Color="#00F1F1F1" Offset="0.5"/>
  
<GradientStop Color="#00F1F1F1" Offset="0.993"/>
  
</LinearGradientBrush>
  
<RadialGradientBrush x:Key="ProgressBarBackground_Indeterminate" Center="0.5,-0.23" GradientOrigin="0.8,0.25" RadiusX="0.68" RadiusY="0.68">
  
<GradientStop Color="{Binding Path=Palette.AccentColor, Source={StaticResource Windows8Colors}}" Offset="0" />
  
<GradientStop Color="#00FFFFFF" Offset="1" />
  
<GradientStop Color="#213E6AF4" Offset="0.65"/>
  
</RadialGradientBrush>
  
<ControlTemplate x:Key="BusyIndicatorProgressBarControlTemplate" TargetType="telerik:RadProgressBar">
  
<Grid>
  
<VisualStateManager.VisualStateGroups>
  
<VisualStateGroup x:Name="CommonStates">
  
<VisualState x:Name="Determinate"/>
  
<VisualState x:Name="Indeterminate">
  
<Storyboard RepeatBehavior="Forever">
  
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="IndeterminateDonut" Storyboard.TargetProperty="Visibility">
  
<DiscreteObjectKeyFrame KeyTime="00:00:00">
  
<DiscreteObjectKeyFrame.Value>
  
<Visibility>Visible</Visibility>
  
</DiscreteObjectKeyFrame.Value>
  
</DiscreteObjectKeyFrame>
  
</ObjectAnimationUsingKeyFrames>
  
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ProgressIndicator" Storyboard.TargetProperty="Visibility">
  
<DiscreteObjectKeyFrame KeyTime="00:00:00">
  
<DiscreteObjectKeyFrame.Value>
  
<Visibility>Collapsed</Visibility>
  
</DiscreteObjectKeyFrame.Value>
  
</DiscreteObjectKeyFrame>
  
</ObjectAnimationUsingKeyFrames>
  
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="IndeterminateDonut" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)">
  
<SplineDoubleKeyFrame KeyTime="00:00:01" Value="360"/>
  
</DoubleAnimationUsingKeyFrames>
  
</Storyboard>
  
</VisualState>
  
</VisualStateGroup>
  
</VisualStateManager.VisualStateGroups>
  
<Path x:Name="IndeterminateBackgroundDonut" RenderTransformOrigin="0.5 0.5" Stroke="{StaticResource ProgressBarBorder}" Fill="{StaticResource ProgressBarBackground_Nomral}" Height="44" Width="44">
  
<Path.Data>
  
<GeometryGroup FillRule="EvenOdd">
  
<EllipseGeometry Center="22 22" RadiusX="20.5" RadiusY="20.5" />
  
<EllipseGeometry Center="22 22" RadiusX="14.5" RadiusY="14.5" />
  
</GeometryGroup>
  
</Path.Data>
  
</Path>
  
<Path x:Name="IndeterminateDonut" Visibility="Collapsed" Fill="{StaticResource ProgressBarBackground_Indeterminate}" RenderTransformOrigin="0.5 0.5" Height="44" Width="44">
  
<Path.RenderTransform>
  
<TransformGroup>
  
<RotateTransform/>
  
</TransformGroup>
  
</Path.RenderTransform>
  
<Path.Data>
  
<GeometryGroup FillRule="EvenOdd">
  
<EllipseGeometry Center="22 22" RadiusX="20" RadiusY="20" />
  
<EllipseGeometry Center="22 22" RadiusX="14" RadiusY="14" />
  
</GeometryGroup>
  
</Path.Data>
  
</Path>
  
<telerikShapes:Arc x:Name="ProgressIndicator" Width="42" Height="42" Diameter="42" HorizontalAlignment="Center" VerticalAlignment="Center" Progress="{TemplateBinding Value}" MinimumProgress="{TemplateBinding Minimum}" MaximumProgress="{TemplateBinding Maximum}" ArcThickness="7" Fill="{StaticResource ProgressBarBackground_Loaded}" StartAngle="-89.999" EndAngle="269.999" />
  
</Grid>
  
</ControlTemplate>
  
<Style x:Key="BusyIndicatorProgressBarStyle" TargetType="telerik:RadProgressBar">
  
<Setter Property="Maximum" Value="100" />
  
<Setter Property="Orientation" Value="Horizontal" />
  
<Setter Property="IsTabStop" Value="False" />
  
<Setter Property="Foreground" Value="{StaticResource ProgressBarBackground_Loaded}"/>
  
<Setter Property="Template" Value="{StaticResource BusyIndicatorProgressBarControlTemplate}" />
  
<Setter Property="IsIndeterminate" Value="True" />
  
</Style>
  
<ControlTemplate x:Key="RadBusyIndicatorControlTemplate" TargetType="telerik:RadBusyIndicator">
  
<Grid>
  
<VisualStateManager.VisualStateGroups>
  
<VisualStateGroup x:Name="VisibilityStates">
  
<VisualState x:Name="Hidden">
  
<Storyboard>
  
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="IndicatorVisual" Storyboard.TargetProperty="(UIElement.Visibility)">
  
<DiscreteObjectKeyFrame KeyTime="00:00:00">
  
<DiscreteObjectKeyFrame.Value>
  
<Visibility>Collapsed</Visibility>
  
</DiscreteObjectKeyFrame.Value>
  
</DiscreteObjectKeyFrame>
  
</ObjectAnimationUsingKeyFrames>
  
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="Overlay" Storyboard.TargetProperty="(UIElement.Visibility)">
  
<DiscreteObjectKeyFrame KeyTime="00:00:00">
  
<DiscreteObjectKeyFrame.Value>
  
<Visibility>Collapsed</Visibility>
  
</DiscreteObjectKeyFrame.Value>
  
</DiscreteObjectKeyFrame>
  
</ObjectAnimationUsingKeyFrames>
  
</Storyboard>
  
</VisualState>
  
<VisualState x:Name="Visible">
  
<Storyboard>
  
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="IndicatorVisual" Storyboard.TargetProperty="(UIElement.Visibility)">
  
<DiscreteObjectKeyFrame KeyTime="00:00:00">
  
<DiscreteObjectKeyFrame.Value>
  
<Visibility>Visible</Visibility>
  
</DiscreteObjectKeyFrame.Value>
  
</DiscreteObjectKeyFrame>
  
</ObjectAnimationUsingKeyFrames>
  
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="Overlay" Storyboard.TargetProperty="(UIElement.Visibility)">
  
<DiscreteObjectKeyFrame KeyTime="00:00:00">
  
<DiscreteObjectKeyFrame.Value>
  
<Visibility>Visible</Visibility>
  
</DiscreteObjectKeyFrame.Value>
  
</DiscreteObjectKeyFrame>
  
</ObjectAnimationUsingKeyFrames>
  
</Storyboard>
  
</VisualState>
  
</VisualStateGroup>
  
<VisualStateGroup x:Name="BusyStatusStates">
  
<VisualState x:Name="Idle">
  
<Storyboard>
  
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="Content" Storyboard.TargetProperty="(Control.IsEnabled)">
  
<DiscreteObjectKeyFrame KeyTime="00:00:00">
  
<DiscreteObjectKeyFrame.Value>
  
<sys:Boolean>True</sys:Boolean>
  
</DiscreteObjectKeyFrame.Value>
  
</DiscreteObjectKeyFrame>
  
</ObjectAnimationUsingKeyFrames>
  
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="0" Storyboard.TargetName="ProgressBar" Storyboard.TargetProperty="IsIndeterminate">
  
<DiscreteObjectKeyFrame KeyTime="00:00:00">
  
<DiscreteObjectKeyFrame.Value>
  
<sys:Boolean>False</sys:Boolean>
  
</DiscreteObjectKeyFrame.Value>
  
</DiscreteObjectKeyFrame>
  
</ObjectAnimationUsingKeyFrames>
  
</Storyboard>
  
</VisualState>
  
<VisualState x:Name="Busy">
  
<Storyboard>
  
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="Content" Storyboard.TargetProperty="(Control.IsEnabled)">
  
<DiscreteObjectKeyFrame KeyTime="00:00:00">
  
<DiscreteObjectKeyFrame.Value>
  
<sys:Boolean>False</sys:Boolean>
  
</DiscreteObjectKeyFrame.Value>
  
</DiscreteObjectKeyFrame>
  
</ObjectAnimationUsingKeyFrames>
  
</Storyboard>
  
</VisualState>
  
</VisualStateGroup>
  
</VisualStateManager.VisualStateGroups>
  
<ContentControl x:Name="Content" IsTabStop="False"
  
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
  
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" 
  
IsEnabled="False"
  
Content="{TemplateBinding Content}"
  
ContentTemplate="{TemplateBinding ContentTemplate}" />
  
<Grid x:Name="Indicator">
  
<Rectangle x:Name="Overlay" Style="{TemplateBinding OverlayStyle}" />
  
<Border x:Name="IndicatorVisual" MinWidth="180" CornerRadius="2" HorizontalAlignment="Center" VerticalAlignment="Center" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
  
<StackPanel>
  
<telerik:RadProgressBar x:Name="ProgressBar" Margin="10 10 10 5" IsIndeterminate="{TemplateBinding IsIndeterminate}" Value="{TemplateBinding ProgressValue}" Style="{TemplateBinding ProgressBarStyle}" />
  
<ContentPresenter Margin="10 5 10 10" HorizontalAlignment="Center" Content="{TemplateBinding BusyContent}" ContentTemplate="{TemplateBinding BusyContentTemplate}" />
  
</StackPanel>
  
</Border>
  
</Grid>
  
</Grid>
  
</ControlTemplate>
  
<Style x:Key="OverlayStyle" TargetType="Rectangle">
  
<Setter Property="Fill" Value="{StaticResource BusyIndicatorBusyOverlayBrush}"/>
  
</Style>
  
<Style x:Key="RadBusyIndicatorStyle" TargetType="telerik:RadBusyIndicator">
  
<Setter Property="IsTabStop" Value="False" />
  
<Setter Property="DisplayAfter" Value="00:00:00.1" />
  
<Setter Property="Foreground" Value="{StaticResource BusyIndicatorForeground}" />
  
<Setter Property="BorderBrush" Value="{StaticResource BusyIndicatorBorder}" />
  
<Setter Property="Background" Value="{StaticResource BusyIndicatorBackground}" />
  
<Setter Property="BorderThickness" Value="1" />
  
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
  
<Setter Property="VerticalContentAlignment" Value="Stretch" />
  
<Setter Property="ProgressBarStyle" Value="{StaticResource BusyIndicatorProgressBarStyle}" />
  
<Setter Property="OverlayStyle" Value="{StaticResource OverlayStyle}" />
  
<Setter Property="animation:AnimationManager.AnimationSelector">
  
<Setter.Value>
  
<animation:AnimationSelector>
  
<animation:FadeAnimation AnimationName="Hide" Direction="Out" TargetElementName="Indicator" />
  
<animation:FadeAnimation AnimationName="Show" Direction="In" TargetElementName="Indicator" />
  
</animation:AnimationSelector>
  
</Setter.Value>
  
</Setter>
  
<Setter Property="Template" Value="{StaticResource RadBusyIndicatorControlTemplate}" />
  
</Style>
  
<Style TargetType="telerik:RadBusyIndicator" BasedOn="{StaticResource RadBusyIndicatorStyle}" />
  
  
</ResourceDictionary>


This bug is very rare and is happing  when change state from true to false (loading).


Message = "Animation target not specified."

"   at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)\r\n   at MS.Internal.XcpImports.MethodEx(DependencyObject obj, String name)\r\n   at System.Windows.Media.Animation.Storyboard.Begin()\r\n   at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Action completeCallback, Boolean animateSelf, Object[] args)\r\n   at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Boolean animateSelf)\r\n   at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName)\r\n   at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyIndicationVisibleChanged(DependencyPropertyChangedEventArgs e)\r\n   at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyIndicationVisiblePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)\r\n   at Telerik.Windows.PropertyMetadata.PropertyChangeHook.OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)\r\n   at System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)\r\n   at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)\r\n   at System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet, Boolean isBindingInStyleSetter)\r\n   at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)\r\n   at Telerik.Windows.DependencyPropertyExtensions.SetValue(DependencyObject element, DependencyPropertyKey key, Object value)\r\n   at Telerik.Windows.Controls.RadBusyIndicator.set_IsBusyIndicationVisible(Boolean value)\r\n   at Telerik.Windows.Controls.RadBusyIndicator.DisplayAfterTimerElapsed(Object sender, EventArgs e)\r\n   at MS.Internal.CoreInvokeHandler.InvokeEventHandler(UInt32 typeIndex, Delegate handlerDelegate, Object sender, Object args)\r\n   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)"

 

   at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
   at MS.Internal.XcpImports.MethodEx(DependencyObject obj, String name)
   at System.Windows.Media.Animation.Storyboard.Begin()
   at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Action completeCallback, Boolean animateSelf, Object[] args)
   at Telerik.Windows.Controls.Animation.AnimationManager.Play(FrameworkElement target, String animationName, Action completeCallback, Object[] args)
   at Telerik.Windows.Controls.RadBusyIndicator.SetPropertiesAccordingIsBusy()
   at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyPropertyChangedEventArgs e)
   at Telerik.Windows.Controls.RadBusyIndicator.OnIsBusyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   at Telerik.Windows.PropertyMetadata.PropertyChangeHook.OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
   at System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)
   at System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)
   at System.Windows.DependencyObject.RefreshExpression(DependencyProperty dp)
   at System.Windows.Data.BindingExpression.SendDataToTarget()
   at System.Windows.Data.BindingExpression.SourcePropertyChanged(PropertyPathListener sender, PropertyPathChangedEventArgs args)
   at System.Windows.PropertyPathListener.ReconnectPath()
   at System.Windows.Data.Debugging.BindingBreakPoint.<>c__DisplayClass4.<BreakOnSharedType>b__3()




0
Georgi
Telerik team
answered on 01 Aug 2013, 02:20 PM
Hello Petar and Brian,

We have created a test application with the Style Petar has provided, but as he said it is a rare issue and were not able to reproduce it. Also we have prepared a test that changes IsBusy in different scenarios and we have run it 100 times, but still no luck of reproducing it.
So Brian you can try similar approach - if you know some set of steps that could reproduce it - record it to a UI test and repeat it few times.
Also Brian do you have a custom theme applied to the BusyIndicator as this could lead us to the issue?
If so you can try reproducing the issue in a simple application with the custom theme applied.
Any video or steps guiding on how to reproduce the issue would be appricieated.
Hope this would help.

Regards,
Georgi
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for SILVERLIGHT.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0
Brian Sayatovic
Top achievements
Rank 1
answered on 01 Aug 2013, 03:35 PM
Let me disclose a little more: another poster in this thread, Kevin Finke, is a colleague of mine.  We're both developers on the same application.  Our limited testing doesn't include memory leak inspection.  However, our QA team does include such a testing phase and they report back to us their findings.  The screenshot I included earlier today is from their findings.

When I started researching this leak, I stumbled upon this thread, only to find that my colleague, Kevin, had been trying to address this same issue a couple of months ago.  Before that last attempt, we were using Telerik's stock Windows 8 them.  Based on the earlier information in this thread, Kevin put in place an overridden style (<Style TargetType="telerik:RadProgressBar" x:Key="ProgressBarStyle">) with the easing functions commented out (based on your code you provided in this thread).  Today I verified that that "fixed" style is in fact the one being applied to the RadBusyIndicator instance we see in our leaks.  I had actually hoped I would find that we were somehow not applying the fixed style, but that wasn't the case.

I digressed.  So our testers are testing the application as a whole.  My own attempts to reproduce it are rarely successful.  So it is very hard to isolate this problem even on my end.  I don't expect a cleanroom, sandboxed test solution to reproduce the problem will cause whatever complex situation that leads to this.  I can try, but not today.

Have you guys reached out to the other posters in this thread to see if their problems went away with the one-off fix in this thread?

Has your engineering team continued to investigate other possible causes?

If it would help, I could look into sharing our recorded ANTS Memory Profiler session with this leak in it with you guys.
0
kity
Top achievements
Rank 2
answered on 01 Aug 2013, 05:48 PM
In our project we use the same theme (Windows 8) like Brian's  project.

For some reason we change some controls to use custom style. At this case "RadBusyIndicator" use "Dark theme (with circle)". Our tester at this point can not find this bug ;). One of my colleges in debug mode find this error and show me. I do not have time now, because different work priority but when I find free time I will make test programs and I will send to you or will make video at least.
0
Mark
Top achievements
Rank 1
answered on 07 Aug 2013, 11:45 AM
I'm just trying to (hopefully) provide a bit of relief.  I had a similar issue with the RadComboBox and was able to create a sample for Telerik to reproduce the issue.  They've done so and logged a bug to PITS.
 
Perhaps this is the same monster and the bug needs to be expanded to other controls.

Regards,
Mark
0
Georgi
Telerik team
answered on 12 Aug 2013, 10:29 AM
Hi Guys,

Thanks to Mark we were able to reproduce it and we have logged it here in our Public Issue Tracking System.
It seems like the issue Mark has reported and this one are related and both have the same source.
Also changing the theme at run time seems to help reproducing it.  Most likely this is an AnimationManager problem and removing the animation could be used as a work around :
telerik:AnimationManager.IsAnimationEnabled="False".
Hope this would help.


Regards,
Georgi
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for SILVERLIGHT.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0
Brian Sayatovic
Top achievements
Rank 1
answered on 12 Aug 2013, 12:31 PM
That is great news!  A reproducible bug is a fixable bug!
0
Brian Sayatovic
Top achievements
Rank 1
answered on 12 Aug 2013, 03:21 PM
I tried disabling animation on one of our RadBusyIndicators to see how bad the user experience would feel, but our WIndows 8 theme progress indicator within the busy indicator was still animating (the sliding dots).  Did I disable it properly?

<telerik:RadBusyIndicator
  IsBusy="{Binding BusyState.IsBusy}"
  telerik:AnimationManager.IsAnimationEnabled="False"
  >
0
Georgi
Telerik team
answered on 15 Aug 2013, 07:11 AM
Hi Brian,

Yes, you had disabled the animation properly. Please note that telerik:AnimationManager.IsAnimationEnabled="False" will disable only the animation shown when the BusyIndicator is opened/closed (show/hide) and it will not disable the animation inside of the BusyIndicator. But as it seems like the show/hide animation is causing the issue and disabling it should be enough  in order to workaround it.
If after disabling the animation you are still reproducing the issue, please don't hesitate to write us.

Regards,
Georgi
Telerik
TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for SILVERLIGHT.
Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
Sign up for Free application insights >>
0
Michael
Top achievements
Rank 1
answered on 21 Nov 2014, 04:52 PM
Just curious if there has been any update on this.  I am seeing a similar issue when I put a RadBusyIndicator inside the footer of a RadDataBoundListBox
0
Georgi
Telerik team
answered on 25 Nov 2014, 02:30 PM
Hi Michael,

We have performed detailed and extensive research on what could be causing the issue and it turned out that it is caused by a limitation of the Silverlight itself.

So we were not able to fix the issue in our code and therefore we have closed it.

Once again, we are sorry for the inconvenience caused.

Regards,
Georgi
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
0
Brian Sayatovic
Top achievements
Rank 1
answered on 25 Nov 2014, 02:41 PM
So.... what?  All Silverlight animations are at risk of causing a memory leak because of a bug in Silverlight?  Is it a particular type of animation, or all animations?  Is Telerik going to keep the animations?

I have hundreds of users using our application who are subject to these memory leaks.  If my only option is to ditch Silverlight and Telerik, then I have a massive multi-year re-write staring me in the face.

I'm sorry to be so dramatic, but I'm really worried and I have very little actionable information to go on.  I understand it is not Telerik's fault -- it's MIcrosoft's.  But it's impacting customers trying to use Telerik's products.
0
Georgi
Telerik team
answered on 26 Nov 2014, 01:50 PM
Hi Brian,

I think that there is some misunderstanding as this forum thread is about "System.InvalidOperationException" with message "Animation target not specified." and this is the issues I was referring to in my previous post. Also the issue is hard to reproduce and as a workaround disabling the animation can be used.

Also I have noticed that you talk about memory leak earlier in the post, but i seems like it was intended for another forum post (leak in Windows8 theme) at that time.

If that is the case it would be best if you can open new support ticket where you can share more sensitive information like snapshot form memory profilers like Ants and JustTrace.

Regards,
Georgi
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
Tags
BusyIndicator
Asked by
Brian Sayatovic
Top achievements
Rank 1
Answers by
Georgi
Telerik team
Brian Sayatovic
Top achievements
Rank 1
kity
Top achievements
Rank 2
Mark
Top achievements
Rank 1
Michael
Top achievements
Rank 1
Share this question
or