Skip to content

SFSparkline is throwing error for uniform values in the data #2002

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
becjit opened this issue Aug 2, 2024 · 2 comments
Closed

SFSparkline is throwing error for uniform values in the data #2002

becjit opened this issue Aug 2, 2024 · 2 comments
Labels
bug Something isn't working charts Charts component fixed Fixed and delivered update

Comments

@becjit
Copy link

becjit commented Aug 2, 2024

Bug description

Sparklinechart is throwing following error if all the entries in the data array are same for example [3.0, 3.0, 3.0, 3.0, 3.0, 3.0]

he following assertion was thrown during paint():
Offset argument contained a NaN value.
'dart:ui/painting.dart':
Failed assertion: line 36 pos 10: ''

The relevant error-causing widget was:
SfSparkLineChart SfSparkLineChart:file:///Users/abhijitmazumder/development/projects/flutter/mynotes/lib/screens/mood_tracker/components/mood_finish_flow_page.dart:205:28

When the exception was thrown, this was the stack:
#2 _offsetIsValid (dart:ui/painting.dart:36:10)
painting.dart:36
#3 _NativeCanvas.drawLine (dart:ui/painting.dart:5918:12)
painting.dart:5918
#4 RenderSparkChart.renderAxisline (package:syncfusion_flutter_charts/src/sparkline/renderers/renderer_base.dart:650:16)
renderer_base.dart:650
#5 RenderSparkChart.paint (package:syncfusion_flutter_charts/src/sparkline/renderers/renderer_base.dart:712:5)
renderer_base.dart:712
#6 _RenderSparkLineChart.paint (package:syncfusion_flutter_charts/src/sparkline/renderers/spark_line_renderer.dart:399:11)
spark_line_renderer.dart:399
#7 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3239:7)
object.dart:3239
#8 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250:13)
object.dart:250

Steps to reproduce

Have a sparkline chart like this SfSparkLineChart(
color: context.primaryColor,
axisLineWidth: 1,
axisCrossesAt: 3,
data: const [3.0, 3.0, 3.0, 3.0, 3.0, 3.0],
)

throws error

change any one entry SfSparkLineChart(
color: context.primaryColor,
axisLineWidth: 1,
axisCrossesAt: 3,
data: const [3.0, 4.0, 3.0, 3.0, 3.0, 3.0],
) works fine

Code sample

Code sample
SfSparkLineChart(
                      color: context.primaryColor,
                      axisLineWidth: 1,
                      axisCrossesAt: 3,
                      data: const [3.0, 3.0, 3.0, 3.0, 3.0, 3.0],
                    ) 

Screenshots or Video

Screenshots / Video demonstration

None

Stack Traces

Stack Traces
════════ Exception caught by rendering library ═════════════════════════════════
The following assertion was thrown during paint():
Offset argument contained a NaN value.
'dart:ui/painting.dart':
Failed assertion: line 36 pos 10: '<optimized out>'

The relevant error-causing widget was:
    SfSparkLineChart SfSparkLineChart:file:///Users/abhijitmazumder/development/projects/flutter/mynotes/lib/screens/mood_tracker/components/mood_finish_flow_page.dart:205:28

When the exception was thrown, this was the stack:
#2      _offsetIsValid (dart:ui/painting.dart:36:10)
painting.dart:36
#3      _NativeCanvas.drawLine (dart:ui/painting.dart:5918:12)
painting.dart:5918
#4      RenderSparkChart.renderAxisline (package:syncfusion_flutter_charts/src/sparkline/renderers/renderer_base.dart:650:16)
renderer_base.dart:650
#5      RenderSparkChart.paint (package:syncfusion_flutter_charts/src/sparkline/renderers/renderer_base.dart:712:5)
renderer_base.dart:712
#6      _RenderSparkLineChart.paint (package:syncfusion_flutter_charts/src/sparkline/renderers/spark_line_renderer.dart:399:11)
spark_line_renderer.dart:399
#7      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3239:7)
object.dart:3239
#8      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250:13)
object.dart:250
#9      RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:3158:15)
box.dart:3158
#10     RenderStack.paintStack (package:flutter/src/rendering/stack.dart:633:5)
stack.dart:633
#11     RenderStack.paint (package:flutter/src/rendering/stack.dart:649:7)
stack.dart:649
#12     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3239:7)
object.dart:3239
#13     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250:13)
object.dart:250

On which target platforms have you observed this bug?

iOS

Flutter Doctor output

Doctor output
✓] Flutter (Channel stable, 3.22.3, on macOS 14.4.1 23E224 darwin-arm64, locale en-IN)
    • Flutter version 3.22.3 on channel stable at /Users/abhijitmazumder/development/tooling/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b0850beeb2 (2 weeks ago), 2024-07-16 21:43:41 -0700
    • Engine revision 235db911ba
    • Dart version 3.4.4
    • DevTools version 2.34.3

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/abhijitmazumder/Library/Android/sdk
    • Platform android-34, build-tools 33.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] VS Code (version 1.92.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.94.0

[✓] Connected device (5 available)            
    • sdk gphone64 arm64 (mobile)     • emulator-5554             • android-arm64  • Android 13 (API 33) (emulator)
    • iPhone (2) (mobile)             • 00008110-001651E41E78401E • ios            • iOS 16.2 20C65
    • macOS (desktop)                 • macos                     • darwin-arm64   • macOS 14.4.1 23E224 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad     • darwin         • macOS 14.4.1 23E224 darwin-arm64
    • Chrome (web)                    • chrome                    • web-javascript • Google Chrome 127.0.6533.89

[✓] Network resources
    • All expected network resources are available.

• No issues found!
@becjit becjit changed the title SFSparkline is throwing error for uniform values in the dat SFSparkline is throwing error for uniform values in the data Aug 2, 2024
@VijayakumarMariappan VijayakumarMariappan added charts Charts component open Open labels Aug 5, 2024
@PreethikaSelvam
Copy link
Contributor

Hi @becjit,

We can reproduce the reported exception when all data points are identical, and the axisCrossesAt value is set to the maximum data point. We have logged a bug report for this in our feedback portal, and the issue is scheduled to be fixed in our weekly release which is expected to be rolled out on August 20, 2024. We will notify you once the release is rolled out and appreciate your patience until then. You can also track the status of this bug using the feedback link below.

Feedback Link: https://www.syncfusion.com/feedback/60198/exception-thrown-when-axiscrossesat-equals-maximum-data-value-in-sparkline-chart

Regards,

Preethika Selvam.

@VijayakumarMariappan VijayakumarMariappan added bug Something isn't working follow-up scheduled Follow-up scheduled and removed open Open labels Aug 7, 2024
@PreethikaSelvam
Copy link
Contributor

Hi @becjit,

The reported issue is fixed, and the fix published in the below version. Therefore, we kindly request that you upgrade the syncfusion_flutter_charts package to the latest version below to avoid this issue.

Version: https://pub.dev/packages/syncfusion_flutter_charts/versions/26.2.10

Root cause: Having all data points with the same value leads to a zero range, causing division by zero and resulting in NaN for axis height calculations.

Regards,

Preethika Selvam.

@LavanyaGowtham2021 LavanyaGowtham2021 added fixed Fixed and delivered update and removed follow-up scheduled Follow-up scheduled labels Aug 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working charts Charts component fixed Fixed and delivered update
Projects
None yet
Development

No branches or pull requests

4 participants