Skip to content
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

NPE when invalid data is provided #2

Closed
martin-g opened this issue Oct 9, 2014 · 4 comments
Closed

NPE when invalid data is provided #2

martin-g opened this issue Oct 9, 2014 · 4 comments

Comments

@martin-g
Copy link
Contributor

martin-g commented Oct 9, 2014

With the current Java Math demo data in the KitchenSink application trying to show a summarychart leads to the following exception:

Caused by: java.lang.NullPointerException
    at java.math.BigDecimal.compareTo(BigDecimal.java:2554)
    at java.math.BigDecimal.min(BigDecimal.java:2665)
    at org.isisaddons.wicket.wickedcharts.cpt.ui.summarychart.CollectionContentsAsSummaryChart.minOf(CollectionContentsAsSummaryChart.java:163)
    at org.isisaddons.wicket.wickedcharts.cpt.ui.summarychart.CollectionContentsAsSummaryChart.createChartValue(CollectionContentsAsSummaryChart.java:119)
    at org.isisaddons.wicket.wickedcharts.cpt.ui.summarychart.CollectionContentsAsSummaryChart.buildGui(CollectionContentsAsSummaryChart.java:101)
    at org.isisaddons.wicket.wickedcharts.cpt.ui.summarychart.CollectionContentsAsSummaryChart.onModelChanged(CollectionContentsAsSummaryChart.java:168)
@martin-g
Copy link
Contributor Author

martin-g commented Oct 9, 2014

I use the following fix locally to avoid the NPE. Not sure it is the correct one though

     private BigDecimal maxOf(BigDecimal max, final BigDecimal summaryMax) {
-        return max != null ? max.max(summaryMax) : summaryMax;
+        return max != null
+            ? summaryMax != null
+                ? max.max(summaryMax)
+                : max
+            : BigDecimal.ZERO;
     }

     private BigDecimal minOf(BigDecimal min, final BigDecimal summaryMin) {
-        return min != null ? min.min(summaryMin) : summaryMin;
+        return min != null
+            ? summaryMin != null
+                ? min.min(summaryMin)
+                : min
+            : BigDecimal.ZERO;
     }

@danhaywood
Copy link
Contributor

possibly not; what if every value is null? The result ought to be null,
but I think this code might give BigDecimal.ZERO.

On 9 October 2014 09:02, Martin Grigorov notifications@github.com wrote:

I use the following fix locally to avoid the NPE. Not sure it is the
correct one though

 private BigDecimal maxOf(BigDecimal max, final BigDecimal summaryMax) {-        return max != null ? max.max(summaryMax) : summaryMax;+        return max != null+            ? summaryMax != null+                ? max.max(summaryMax)+                : max+            : BigDecimal.ZERO;
 }

 private BigDecimal minOf(BigDecimal min, final BigDecimal summaryMin) {-        return min != null ? min.min(summaryMin) : summaryMin;+        return min != null+            ? summaryMin != null+                ? min.min(summaryMin)+                : min+            : BigDecimal.ZERO;
 }


Reply to this email directly or view it on GitHub
#2 (comment)
.

@martin-g
Copy link
Contributor Author

martin-g commented Oct 9, 2014

returning null instead of BigDecimal.ZERO seems to do the job as well

martin-g added a commit that referenced this issue Oct 9, 2014
(cherry picked from commit 67038fc0d5ee87ed46f1076b7ec4506af331f2bf)
@danhaywood
Copy link
Contributor

moved to incodehq/incode-platform#29

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants