View Issue Details

IDProjectCategoryView StatusLast Update
0002080NoesisGUIUnrealpublic2025-10-24 12:40
Reporterdaniel.janak Assigned Tosfernandez  
PrioritynormalSeveritycrash 
Status assignedResolutionopen 
Product Version3.1.0 
Target Version3.1.7 
Summary0002080: Dynamically created RadioButtons inside a ListBox crashed when using GroupName
Description

We were incorporating design where there were radio buttons inside content ListBox to form a sort of a non-standard grid, howere it looks like when they are loaded and unloaded in the same frame possibly due to Virtualization, the game and the thread freezes and never unfreezes.

PlatformAny

Relationships

related to 0002113 assignedsfernandez TwoWay property should not notify of changes if bound property returns the old value 
related to 0004439 resolvedjsantos Game is Freezing after upgrading to Noesis 3.2.7 

Activities

sfernandez

sfernandez

2021-08-30 19:58

manager   ~0007392

I was unable to reproduce the issue. Could you please attach the Visual Studio debugger and generate a minidump when the game freezes?
Are you using NoesisTheme for the ListBox/ListBoxItem styles?

sfernandez

sfernandez

2021-09-13 13:34

manager   ~0007439

Last edited: 2021-09-13 13:35

Callstack when UI gets frozen:

    [External Code]    

[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::SpinMutex::Acquire() Line 87 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::SpinMutex::ScopedLock::{ctor}(Noesis::SpinMutex &) Line 129 C++
UE4Editor-NoesisCore.dll!Noesis::RadioButton::OnChecked(const Noesis::RoutedEventArgs & e) Line 94 C++
UE4Editor-NoesisCore.dll!Noesis::ToggleButton::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args_) Line 164 C++
UE4Editor-NoesisCore.dll!Noesis::RadioButton::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 118 C++
UE4Editor-NoesisCore.dll!Noesis::DependencyObject::NotifyPropertyChanged(const Noesis::DependencyProperty dp, Noesis::StoredValue storedValue, const void oldValue, const void newValue, bool valueChanged, bool isBaseComponent, const Noesis::PropertyMetadata metadata) Line 1260 C++
UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty
dp, void oldValue, const void newValue, void coercedValue, unsigned char priority, Noesis::Expression newExpression, const Noesis::PropertyMetadata metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 894 C++
UE4Editor-NoesisCore.dll!Noesis::ValueStorageManagerImpl<Noesis::Nullable<bool>>::SetValue(Noesis::DependencyObject
dob, const Noesis::DependencyProperty dp, Noesis::BaseComponent value, unsigned char priority, Noesis::Expression expression, const Noesis::PropertyMetadata metadata, Noesis::Value::Destination destination) Line 233 C++
UE4Editor-NoesisCore.dll!Noesis::ValueStorageManager::SetValueObject(Noesis::DependencyObject dob, const Noesis::DependencyProperty dp, Noesis::BaseComponent value, unsigned char priority, Noesis::Expression expression, const Noesis::PropertyMetadata metadata, Noesis::Value::Destination destination) Line 39 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::DependencyProperty::SetValueObject(Noesis::DependencyObject
) Line 208 C++
UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InternalSetExpression(const Noesis::DependencyProperty dp, Noesis::Expression newExpression, unsigned char priority) Line 698 C++
UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InternalInvalidateProperty(const Noesis::DependencyProperty dp, unsigned char priority) Line 1109 C++
UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InvalidateProperty(const Noesis::DependencyProperty
dp, unsigned char priority) Line 291 C++
UE4Editor-NoesisCore.dll!Noesis::BindingExpression::TransferSourceValue(const void value) Line 1384 C++
UE4Editor-NoesisCore.dll!Noesis::BindingExpression::AfterSet(Noesis::DependencyObject
obj, const Noesis::DependencyProperty prop, const void value, bool _formal) Line 334 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::DependencyObject::NotifyLocalExpression(Noesis::Expression expression, const Noesis::DependencyProperty ) Line 1394 C++
UE4Editor-NoesisCore.dll!Noesis::DependencyObject::InternalSetValue(const Noesis::DependencyProperty dp, void oldValue, const void newValue, void coercedValue, unsigned char priority, Noesis::Expression newExpression, const Noesis::PropertyMetadata metadata, Noesis::Value::Destination destination, bool isBaseComponent) Line 896 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::DependencyObject::SetValue
(Noesis::Int2Type<0>) Line 180 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::DependencyObject::SetCurrentValue(const Noesis::DependencyProperty dp, const Noesis::Nullable<bool> &) Line 95 C++
UE4Editor-NoesisCore.dll!Noesis::RadioButton::OnChecked(const Noesis::RoutedEventArgs & e) Line 100 C++
UE4Editor-NoesisCore.dll!Noesis::ToggleButton::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args_) Line 164 C++
UE4Editor-NoesisCore.dll!Noesis::RadioButton::OnPropertyChanged(const Noesis::DependencyPropertyChangedEventArgs & args) Line 118 C++
UE4Editor-NoesisCore.dll!Noesis::DependencyObject::Init() Line 515 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::InitComponent(Noesis::IComponentInitializer
component, bool) Line 39 C++
UE4Editor-NoesisCore.dll!Noesis::BaseUICollection::Init() Line 48 C++
UE4Editor-NoesisCore.dll!Noesis::Grid::OnInit() Line 163 C++
UE4Editor-NoesisCore.dll!Noesis::DependencyObject::Init() Line 410 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::InitComponent(Noesis::IComponentInitializer doInit, bool) Line 39 C++
UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::SetSingleVisualChild(Noesis::Visual
child) Line 1408 C++
UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::ApplyTemplate() Line 636 C++
UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2123 C++
UE4Editor-NoesisCore.dll!Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 623 C++
UE4Editor-NoesisCore.dll!Noesis::Grid::SimpleMeasure(const Noesis::Size & availableSize) Line 308 C++
UE4Editor-NoesisCore.dll!Noesis::Grid::MeasureOverride(const Noesis::Size & availableSize) Line 276 C++
UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2164 C++
UE4Editor-NoesisCore.dll!Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 623 C++
UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureOverride(const Noesis::Size & availableSize) Line 1502 C++
UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2164 C++
UE4Editor-NoesisCore.dll!Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 623 C++
UE4Editor-NoesisCore.dll!anonymous namespace'::MeasureHelper::Measure<anonymous namespace'::LayoutHelper::Vertical>(const Noesis::Size & availableSize, const Noesis::Size & viewport, Noesis::UIElementCollection children, bool isScrolling, Noesis::StackPanelScrollData scrollData) Line 269 C++
UE4Editor-NoesisCore.dll!Noesis::StackPanelHelper::Measure(Noesis::Orientation orientation, const Noesis::Size & availableSize, Noesis::UIElementCollection children, bool isScrolling, Noesis::StackPanelScrollData scrollData) Line 491 C++
UE4Editor-NoesisCore.dll!Noesis::VirtualizingStackPanel::MeasureOverride(const Noesis::Size & availableSize) Line 374 C++
UE4Editor-NoesisCore.dll!Noesis::FrameworkElement::MeasureCore(const Noesis::Size & availableSize) Line 2164 C++
UE4Editor-NoesisCore.dll!Noesis::UIElement::Measure(const Noesis::Size & availableSize) Line 623 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::ViewLayout::ProcessMeasures() Line 586 C++
UE4Editor-NoesisCore.dll!Noesis::ViewLayout::ProcessLayout() Line 437 C++
UE4Editor-NoesisCore.dll!Noesis::ViewLayout::Layout(bool raiseRendering) Line 316 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::View::UpdateContent() Line 903 C++
[Inline Frame] UE4Editor-NoesisCore.dll!Noesis::View::InternalUpdate(double) Line 887 C++
UE4Editor-NoesisCore.dll!Noesis::View::Update(double timeInSeconds) Line 820 C++
UE4Editor-NoesisRuntime.dll!UNoesisInstance::Update(float InLeft, float InTop, float InWidth, float InHeight) Line 412 C++
UE4Editor-NoesisRuntime.dll!UNoesisInstance::NativeTick(const FGeometry & MyGeometry, float InDeltaTime) Line 644 C++
UE4Editor-UMG.dll!SObjectWidget::Tick(const FGeometry & AllottedGeometry, const double InCurrentTime, const float InDeltaTime) Line 111 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1303 C++
UE4Editor-Slate.dll!SConstraintCanvas::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 226 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 95 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 95 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31 C++
UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31 C++
UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++
UE4Editor-Engine.dll!SGameLayerManager::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 292 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++
UE4Editor-Slate.dll!SViewport::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 145 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31 C++
UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SPanel::PaintArrangedChildren(const FPaintArgs & Args, const FArrangedChildren & ArrangedChildren, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 31 C++
UE4Editor-SlateCore.dll!SPanel::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 12 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SOverlay::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 95 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SCompoundWidget::OnPaint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 35 C++
UE4Editor-SlateCore.dll!SWidget::Paint(const FPaintArgs & Args, const FGeometry & AllottedGeometry, const FSlateRect & MyCullingRect, FSlateWindowElementList & OutDrawElements, int LayerId, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 1408 C++
UE4Editor-SlateCore.dll!SWindow::PaintSlowPath(const FSlateInvalidationContext & Context) Line 2058 C++
UE4Editor-SlateCore.dll!FSlateInvalidationRoot::PaintInvalidationRoot(const FSlateInvalidationContext & Context) Line 240 C++
UE4Editor-SlateCore.dll!SWindow::PaintWindow(double CurrentTime, float DeltaTime, FSlateWindowElementList & OutDrawElements, const FWidgetStyle & InWidgetStyle, bool bParentEnabled) Line 2090 C++
UE4Editor-Slate.dll!FSlateApplication::DrawWindowAndChildren(const TSharedRef<SWindow,0> & WindowToDraw, FDrawWindowArgs & DrawWindowArgs) Line 1056 C++
UE4Editor-Slate.dll!FSlateApplication::PrivateDrawWindows(TSharedPtr<SWindow,0> DrawOnlyThisWindow) Line 1279 C++
UE4Editor-Slate.dll!FSlateApplication::DrawWindows() Line 1017 C++
UE4Editor-Slate.dll!FSlateApplication::TickAndDrawWidgets(float DeltaTime) Line 1569 C++
UE4Editor-Slate.dll!FSlateApplication::Tick(ESlateTickType TickType) Line 1423 C++
UE4Editor.exe!FEngineLoop::Tick() Line 4946 C++
[Inline Frame] UE4Editor.exe!EngineTick() Line 62 C++
UE4Editor.exe!GuardedMain(const wchar_t CmdLine) Line 169 C++
UE4Editor.exe!WinMain(HINSTANCE__
hInInstance, HINSTANCE hPrevInstance, char formal, int nCmdShow) Line 293 C++
[External Code]

sfernandez

sfernandez

2021-09-15 11:06

manager   ~0007443

Last edited: 2021-09-15 11:08

I've been trying to reproduce this issue and the only way to freeze it is if the item viewmodel does not update the value bound to the IsChecked property on its setter. For example:

struct ItemData: public BaseComponent, public INotifyPropertyChanged
{
ItemData(bool s): selected(s) { }

bool selected;
bool GetSelected() const { return selected; }
void SetSelected(bool value)
{
    // do nothing here?
}

PropertyChangedEventHandler& PropertyChanged() override { return changed; }
PropertyChangedEventHandler changed;

NS_IMPLEMENT_INTERFACE_FIXUP

NS_IMPLEMENT_INLINE_REFLECTION(ItemData, BaseComponent)
{
    NsImpl<INotifyPropertyChanged>();
    NsProp("Selected", &ItemData::GetSelected, &ItemData::SetSelected);
}

};


<DataTemplate x:Key="it">
<RadioButton GroupName="options" Content="Selected?" IsChecked="{Binding Selected}"/>
</DataTemplate>

What happens with this scenario is that when a RadioButton is Checked it unchecks other buttons in the same group.
When the binding updates the source value ("Selected"), as it doesn't really change, the binding tries to restore the property value back to true to sync it with the view model, leading to a new Checked event.
We should find a way to avoid freezing in this scenario but it looks that something is not correct in the view model too, could you check that?

daniel.janak

daniel.janak

2021-09-23 09:58

reporter   ~0007474

Last edited: 2021-09-23 10:31

Hi, we use FGuid as a check if the button is selected. So the Selected binding is a getter and setter. In setter, it sets a player FGuid assigned in view model to our gameplay system if true, and in getter it checks the system if the FGuid corresponds to the one stored in the view model for the button.

Issue History

Date Modified Username Field Change
2021-08-10 11:28 sfernandez New Issue
2021-08-10 11:28 sfernandez Assigned To => sfernandez
2021-08-10 11:28 sfernandez Status new => assigned
2021-08-10 11:28 sfernandez Target Version => 3.1.1
2021-08-26 10:29 sfernandez Reporter sfernandez => daniel.janak
2021-08-30 19:58 sfernandez Status assigned => feedback
2021-08-30 19:58 sfernandez Note Added: 0007392
2021-09-13 13:34 sfernandez Note Added: 0007439
2021-09-13 13:35 sfernandez Note Edited: 0007439
2021-09-13 13:36 sfernandez Status feedback => assigned
2021-09-15 11:06 sfernandez Status assigned => feedback
2021-09-15 11:06 sfernandez Note Added: 0007443
2021-09-15 11:07 sfernandez Note Edited: 0007443
2021-09-15 11:08 sfernandez Note Edited: 0007443
2021-09-15 20:57 jsantos Target Version 3.1.1 => 3.1.2
2021-09-23 09:58 daniel.janak Note Added: 0007474
2021-09-23 09:58 daniel.janak Status feedback => assigned
2021-09-23 10:31 daniel.janak Note Edited: 0007474
2021-10-18 12:43 sfernandez Relationship added related to 0002113
2021-11-29 14:15 sfernandez Target Version 3.1.2 => 3.1.3
2022-02-14 17:50 sfernandez Target Version 3.1.3 => 3.1.4
2022-03-17 21:31 sfernandez Target Version 3.1.4 => 3.1.5
2022-06-24 17:21 sfernandez Target Version 3.1.5 => 3.1.6
2022-11-07 17:14 sfernandez Target Version 3.1.6 => 3.1.7
2025-10-24 12:40 jsantos Relationship added related to 0004439