[Geoserver-devel] GeoServer trunk can't persist coverages with non Double sample value range

Hey,

trying to persist a coverage info got stuck with a can't persist coverage.xml message.
Digging into it found that XStreamPersister assumes a NumberRange being of Doubles.
The following patch seems to fix it, does it look ok?

Index: src/main/java/org/geoserver/config/util/XStreamPersister.java

--- src/main/java/org/geoserver/config/util/XStreamPersister.java (revision 13509)
+++ src/main/java/org/geoserver/config/util/XStreamPersister.java (working copy)
@@ -954,7 +954,7 @@
              NumberRange range = (NumberRange) original;

              writer.startNode("min");
- if ( Double.isInfinite( ((Double)range.getMinValue()).doubleValue() ) ) {
+ if ( Double.isInfinite( ((Number)range.getMinValue()).doubleValue() ) ) {
                  context.convertAnother( "-inf" );
              }
              else {
@@ -963,7 +963,7 @@
              writer.endNode();

              writer.startNode("max");
- if ( Double.isInfinite( ((Double)range.getMaxValue()).doubleValue() )) {
+ if ( Double.isInfinite( ((Number)range.getMaxValue()).doubleValue() )) {
                  context.convertAnother( "inf");
              }
              else {

--
Gabriel Roldan
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Hi Gabriel,

Patch looks good, bad assumption on my part.

-Justin

On Thu, 15 Oct 2009 15:57:18 -0300, Gabriel Roldan <groldan@anonymised.com>
wrote:

Hey,

trying to persist a coverage info got stuck with a can't persist
coverage.xml message.
Digging into it found that XStreamPersister assumes a NumberRange being
of Doubles.
The following patch seems to fix it, does it look ok?

Index: src/main/java/org/geoserver/config/util/XStreamPersister.java

--- src/main/java/org/geoserver/config/util/XStreamPersister.java
(revision 13509)
+++ src/main/java/org/geoserver/config/util/XStreamPersister.java
(working copy)
@@ -954,7 +954,7 @@
              NumberRange range = (NumberRange) original;

              writer.startNode("min");
- if ( Double.isInfinite(
((Double)range.getMinValue()).doubleValue() ) ) {
+ if ( Double.isInfinite(
((Number)range.getMinValue()).doubleValue() ) ) {
                  context.convertAnother( "-inf" );
              }
              else {
@@ -963,7 +963,7 @@
              writer.endNode();

              writer.startNode("max");
- if ( Double.isInfinite(
((Double)range.getMaxValue()).doubleValue() )) {
+ if ( Double.isInfinite(
((Number)range.getMaxValue()).doubleValue() )) {
                  context.convertAnother( "inf");
              }
              else {