[Geoserver-users] CQL Filter not working with BBOX function and ImageMosaic layer

I’m using Geoserver 2.5.1 with PostGIS 2.1.3 and the ImageMosaic plugin. I have successfully been able to use CQL_FILTER to query a my ImageMosaic layer by time and by my own custom attribute, now I am trying to create a spatial query using something like:

CQL_FILTER=BBOX(the_geom, 48.46, 19.04, 49.4, 19.07)

and the full WMS GetMap request looks like: wms?service=WMS&version=1.1.0&request=GetMap&layers=GeoCenter:gc_mosaic_hd&styles=&bbox=48.4598350524902,19.0338842710851,49.44959107524,19.0846311684303&width=6436&height=330&srs=EPSG:4326&format=application/openlayers&CQL_FILTER=BBOX(the_geom, 48.46, 19.04, 49.4, 19.07)

The raster column created by the ImageMosaic plugin is called “the_geom” and is of type “geometry(Polygon, 4326)”. When I use the GeoServer Layer Preview with OpenLayers and add something like “&CQL_FILTER=BBOX(the_geom, 48, 18, 49, 19)” to the WMS GetMap URL I get no images and the GeoServer log has the below stacktace:

Caused by: org.geotools.data.DataSourceException: Unable to create this mosaic

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1387)

at org.geotools.gce.imagemosaic.RasterLayerResponse.processRequest(RasterLayerResponse.java:1228)

at org.geotools.gce.imagemosaic.RasterLayerResponse.createResponse(RasterLayerResponse.java:1194)

at org.geotools.gce.imagemosaic.RasterManager.read(RasterManager.java:1125)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:849)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:828)

at org.geoserver.catalog.SingleGridCoverage2DReader.read(SingleGridCoverage2DReader.java:146)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:200)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:190)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.readBestCoverage(RenderedImageMapOutputFormat.java:1296)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.directRasterRender(RenderedImageMapOutputFormat.java:861)

… 107 more

Caused by: java.lang.ClassCastException: com.vividsolutions.jts.geom.Envelope cannot be cast to org.geotools.geometry.jts.ReferencedEnvelope

at org.geotools.gce.imagemosaic.Utils$BBOXFilterExtractor.visit(Utils.java:250)

at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:216)

at org.geotools.filter.visitor.DefaultFilterVisitor.visit(DefaultFilterVisitor.java:119)

at org.geotools.filter.AndImpl.accept(AndImpl.java:65)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.getGranuleDescriptors(CachingDataStoreGranuleCatalog.java:152)

at org.geotools.gce.imagemosaic.RasterManager.getGranuleDescriptors(RasterManager.java:1135)

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1336)

… 117 more

According to the GeoServer tutorial http://docs.geoserver.org/stable/en/user/tutorials/cql/cql_tutorial.html the BBOX syntax I am using is valid. I also have a separate vector layer containing the footprints of the granules in the ImageMosaic and the same CQL_FILTER works for that layer.

Can anybody tell me why I would be getting this error? Do spatial queries with CQL_FILTER parameter not apply to an ImageMosaic raster layer?

–Steve

I’m using Geoserver 2.5.1 with PostGIS 2.1.3 and the ImageMosaic plugin. I have successfully been able to use CQL_FILTER to query a my ImageMosaic layer by time and by my own custom attribute, now I am trying to create a spatial query using something like:

CQL_FILTER=BBOX(the_geom, 48.46, 19.04, 49.4, 19.07)

and the full WMS GetMap request looks like: wms?service=WMS&version=1.1.0&request=GetMap&layers=GeoCenter:gc_mosaic_hd&styles=&bbox=48.4598350524902,19.0338842710851,49.44959107524,19.0846311684303&width=6436&height=330&srs=EPSG:4326&format=application/openlayers&CQL_FILTER=BBOX(the_geom, 48.46, 19.04, 49.4, 19.07)

The raster column created by the ImageMosaic plugin is called “the_geom” and is of type “geometry(Polygon, 4326)”. When I use the GeoServer Layer Preview with OpenLayers and add something like “&CQL_FILTER=BBOX(the_geom, 48, 18, 49, 19)” to the WMS GetMap URL I get no images and the GeoServer log has the below stacktace:

Caused by: org.geotools.data.DataSourceException: Unable to create this mosaic

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1387)

at org.geotools.gce.imagemosaic.RasterLayerResponse.processRequest(RasterLayerResponse.java:1228)

at org.geotools.gce.imagemosaic.RasterLayerResponse.createResponse(RasterLayerResponse.java:1194)

at org.geotools.gce.imagemosaic.RasterManager.read(RasterManager.java:1125)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:849)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:828)

at org.geoserver.catalog.SingleGridCoverage2DReader.read(SingleGridCoverage2DReader.java:146)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:200)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:190)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.readBestCoverage(RenderedImageMapOutputFormat.java:1296)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.directRasterRender(RenderedImageMapOutputFormat.java:861)

… 107 more

Caused by: java.lang.ClassCastException: com.vividsolutions.jts.geom.Envelope cannot be cast to org.geotools.geometry.jts.ReferencedEnvelope

at org.geotools.gce.imagemosaic.Utils$BBOXFilterExtractor.visit(Utils.java:250)

at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:216)

at org.geotools.filter.visitor.DefaultFilterVisitor.visit(DefaultFilterVisitor.java:119)

at org.geotools.filter.AndImpl.accept(AndImpl.java:65)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.getGranuleDescriptors(CachingDataStoreGranuleCatalog.java:152)

at org.geotools.gce.imagemosaic.RasterManager.getGranuleDescriptors(RasterManager.java:1135)

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1336)

… 117 more

According to the GeoServer tutorial http://docs.geoserver.org/stable/en/user/tutorials/cql/cql_tutorial.html the BBOX syntax I am using is valid. I also have a separate vector layer containing the footprints of the granules in the ImageMosaic and the same CQL_FILTER works for that layer.

Can anybody tell me why I would be getting this error? Do spatial queries with CQL_FILTER parameter not apply to an ImageMosaic raster layer?

–Steve

Jukka, thanks for your response. Yes, my aim is as you say, “to show a little bit less image data clipped with the BBOX in CQL_FILTER inside a bigger bbox that is defined by the basis WMS box” and be able to combine this with a temporal filter.

For an ImageMosaic that can be filtered by TIME and any other custom attributes I define using the CQL_FILTER parameter, it seems silly to me that the ImageMosaic plugin cannot also use the spatial information that it has created to take advantage of CQL_FILTER geometry functions to filter results based on a user-defined BBOX for example.

Is there a more standard way to achieve this?

–Steve

···

From: Rahkonen Jukka (Tike) [mailto:jukka.rahkonen@anonymised.com]
Sent: Tuesday, September 02, 2014 12:42 PM
To: Stephen Brooke; geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] CQL Filter not working with BBOX function and ImageMosaic layer

Hi,

Is your aim to show a little bit less image data clipped with the BBOX in CQL_FILTER inside a bigger bbox that is defined by the basis WMS bbox? I have never thought about such use case and I am pretty sure that you will not success with it by using image mosaic but perhaps there is some other way. The meaning of footprint polygons in image mosaic is just to act as on index for finding the right image files. I mean, to find the footprints which intersect with the WMS BBOX parameter and then open the corresponding image files from the disk.

-Jukka Rahkonen-


Stephen Brooke wrote:

I’m using Geoserver 2.5.1 with PostGIS 2.1.3 and the ImageMosaic plugin. I have successfully been able to use CQL_FILTER to query a my ImageMosaic layer by time and by my own custom attribute, now I am trying to create a spatial query using something like:

CQL_FILTER=BBOX(the_geom, 48.46, 19.04, 49.4, 19.07)

and the full WMS GetMap request looks like: wms?service=WMS&version=1.1.0&request=GetMap&layers=GeoCenter:gc_mosaic_hd&styles=&bbox=48.4598350524902,19.0338842710851,49.44959107524,19.0846311684303&width=6436&height=330&srs=EPSG:4326&format=application/openlayers&CQL_FILTER=BBOX(the_geom, 48.46, 19.04, 49.4, 19.07)

The raster column created by the ImageMosaic plugin is called “the_geom” and is of type “geometry(Polygon, 4326)”. When I use the GeoServer Layer Preview with OpenLayers and add something like “&CQL_FILTER=BBOX(the_geom, 48, 18, 49, 19)” to the WMS GetMap URL I get no images and the GeoServer log has the below stacktace:

Caused by: org.geotools.data.DataSourceException: Unable to create this mosaic

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1387)

at org.geotools.gce.imagemosaic.RasterLayerResponse.processRequest(RasterLayerResponse.java:1228)

at org.geotools.gce.imagemosaic.RasterLayerResponse.createResponse(RasterLayerResponse.java:1194)

at org.geotools.gce.imagemosaic.RasterManager.read(RasterManager.java:1125)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:849)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:828)

at org.geoserver.catalog.SingleGridCoverage2DReader.read(SingleGridCoverage2DReader.java:146)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:200)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:190)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.readBestCoverage(RenderedImageMapOutputFormat.java:1296)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.directRasterRender(RenderedImageMapOutputFormat.java:861)

… 107 more

Caused by: java.lang.ClassCastException: com.vividsolutions.jts.geom.Envelope cannot be cast to org.geotools.geometry.jts.ReferencedEnvelope

at org.geotools.gce.imagemosaic.Utils$BBOXFilterExtractor.visit(Utils.java:250)

at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:216)

at org.geotools.filter.visitor.DefaultFilterVisitor.visit(DefaultFilterVisitor.java:119)

at org.geotools.filter.AndImpl.accept(AndImpl.java:65)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.getGranuleDescriptors(CachingDataStoreGranuleCatalog.java:152)

at org.geotools.gce.imagemosaic.RasterManager.getGranuleDescriptors(RasterManager.java:1135)

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1336)

… 117 more

According to the GeoServer tutorial http://docs.geoserver.org/stable/en/user/tutorials/cql/cql_tutorial.html the BBOX syntax I am using is valid. I also have a separate vector layer containing the footprints of the granules in the ImageMosaic and the same CQL_FILTER works for that layer.

Can anybody tell me why I would be getting this error? Do spatial queries with CQL_FILTER parameter not apply to an ImageMosaic raster layer?

–Steve

On Tue, Sep 2, 2014 at 11:13 PM, Stephen Brooke <sbrooke@anonymised.com>
wrote:

Jukka, thanks for your response. Yes, my aim is as you say, “to show a
little bit less image data clipped with the BBOX in CQL_FILTER inside a
bigger bbox that is defined by the basis WMS box” and be able to combine
this with a temporal filter.

For an ImageMosaic that can be filtered by TIME and any other custom
attributes I define using the CQL_FILTER parameter, it seems silly to me
that the ImageMosaic plugin cannot also use the spatial information that it
has created to take advantage of CQL_FILTER geometry functions to filter
results based on a user-defined BBOX for example.

By the stack trace, it's evident that this use case was simply never
considered, the code could
be expanded to care for it as well (a bounding box without the coordinate
reference system
specification).

Looking at the (E)CQL parser code it seems to be possible to specify a CRS
for the bounding
box, I guess in that case a ReferencedEnvelope will be created, worth a
try: add a fifth parameter
in your BBOX filter, something like 'EPSG:4326', and see if that works.

My guess is that the store will work correctly only if the bbox is
specified in the data native
coordinate system.

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

Thanks Andrea for your response. I tried your suggestion to add the CRS as an additional parameter to the BBOX function: &CQL_FILTER=BBOX(the_geom, 48, 49, 18, 19, ‘EPSG:4326’)

Unfortunately, it doesn’t seem to work either and I get the same complaint about not being able to cast to “ReferencedEnvelope”:

Caused by: org.geotools.data.DataSourceException: Unable to create this mosaic

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1387)

at org.geotools.gce.imagemosaic.RasterLayerResponse.processRequest(RasterLayerResponse.java:1228)

at org.geotools.gce.imagemosaic.RasterLayerResponse.createResponse(RasterLayerResponse.java:1194)

at org.geotools.gce.imagemosaic.RasterManager.read(RasterManager.java:1125)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:849)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:828)

at org.geoserver.catalog.SingleGridCoverage2DReader.read(SingleGridCoverage2DReader.java:146)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:200)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:190)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.readBestCoverage(RenderedImageMapOutputFormat.java:1296)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.directRasterRender(RenderedImageMapOutputFormat.java:861)

… 107 more

Caused by: java.lang.ClassCastException: com.vividsolutions.jts.geom.Envelope cannot be cast to org.geotools.geometry.jts.ReferencedEnvelope

at org.geotools.gce.imagemosaic.Utils$BBOXFilterExtractor.visit(Utils.java:250)

at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:216)

at org.geotools.filter.visitor.DefaultFilterVisitor.visit(DefaultFilterVisitor.java:119)

at org.geotools.filter.AndImpl.accept(AndImpl.java:65)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.getGranuleDescriptors(CachingDataStoreGranuleCatalog.java:152)

at org.geotools.gce.imagemosaic.RasterManager.getGranuleDescriptors(RasterManager.java:1135)

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1336)

… 117 more

Any other suggestions?

–Steve

···

On Tue, Sep 2, 2014 at 11:13 PM, Stephen Brooke <sbrooke@…3836…> wrote:

Jukka, thanks for your response. Yes, my aim is as you say, “to show a little bit less image data clipped with the BBOX in CQL_FILTER inside a bigger bbox that is defined by the basis WMS box” and be able to combine this with a temporal filter.

For an ImageMosaic that can be filtered by TIME and any other custom attributes I define using the CQL_FILTER parameter, it seems silly to me that the ImageMosaic plugin cannot also use the spatial information that it has created to take advantage of CQL_FILTER geometry functions to filter results based on a user-defined BBOX for example.

By the stack trace, it’s evident that this use case was simply never considered, the code could

be expanded to care for it as well (a bounding box without the coordinate reference system

specification).

Looking at the (E)CQL parser code it seems to be possible to specify a CRS for the bounding

box, I guess in that case a ReferencedEnvelope will be created, worth a try: add a fifth parameter

in your BBOX filter, something like ‘EPSG:4326’, and see if that works.

My guess is that the store will work correctly only if the bbox is specified in the data native

coordinate system.

Cheers

Andrea

==

GeoServer Professional Services from the experts! Visit

http://goo.gl/NWWaa2 for more information.

==

Ing. Andrea Aime

@geowolf

Technical Lead

GeoSolutions S.A.S.

Via Poggio alle Viti 1187

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it

http://twitter.com/geosolutions_it


On Wed, Sep 3, 2014 at 7:16 PM, Stephen Brooke <sbrooke@anonymised.com>
wrote:

Thanks Andrea for your response. I tried your suggestion to add the CRS
as an additional parameter to the BBOX function:
&CQL_FILTER=BBOX(the_geom, 48, 49, 18, 19, 'EPSG:4326')

Unfortunately, it doesn’t seem to work either and I get the same complaint
about not being able to cast to “ReferencedEnvelope”:

Caused by: org.geotools.data.DataSourceException: Unable to create this
mosaic

        at
org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1387)

        at
org.geotools.gce.imagemosaic.RasterLayerResponse.processRequest(RasterLayerResponse.java:1228)

        at
org.geotools.gce.imagemosaic.RasterLayerResponse.createResponse(RasterLayerResponse.java:1194)

        at
org.geotools.gce.imagemosaic.RasterManager.read(RasterManager.java:1125)

        at
org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:849)

        at
org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:828)

        at
org.geoserver.catalog.SingleGridCoverage2DReader.read(SingleGridCoverage2DReader.java:146)

        at
org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:200)

        at
org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:190)

        at
org.geoserver.wms.map.RenderedImageMapOutputFormat.readBestCoverage(RenderedImageMapOutputFormat.java:1296)

        at
org.geoserver.wms.map.RenderedImageMapOutputFormat.directRasterRender(RenderedImageMapOutputFormat.java:861)

        ... 107 more

Caused by: java.lang.ClassCastException:
com.vividsolutions.jts.geom.Envelope cannot be cast to
org.geotools.geometry.jts.ReferencedEnvelope

        at
org.geotools.gce.imagemosaic.Utils$BBOXFilterExtractor.visit(Utils.java:250)

        at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:216)

        at
org.geotools.filter.visitor.DefaultFilterVisitor.visit(DefaultFilterVisitor.java:119)

        at org.geotools.filter.AndImpl.accept(AndImpl.java:65)

        at
org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.getGranuleDescriptors(CachingDataStoreGranuleCatalog.java:152)

        at
org.geotools.gce.imagemosaic.RasterManager.getGranuleDescriptors(RasterManager.java:1135)

        at
org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1336)

        ... 117 more

Any other suggestions?

Fix the code in GeoTools and make a pull request on GitHub :slight_smile:
As a much less direct approach, open a bug report at
http://jira.codehaus.org/browse/GEOS

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/NWWaa2 for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

It turns out that the feature for the user being able to specify a BBOX used to clip coverage data returned from an ImageMosaic layer is not a high priority after all, especially since the user can simply zoom in to the extent that they want and get essentially the same result.

Thanks for your help,

–Steve

···

On Wed, Sep 3, 2014 at 7:16 PM, Stephen Brooke <sbrooke@…3836…> wrote:

Thanks Andrea for your response. I tried your suggestion to add the CRS as an additional parameter to the BBOX function: &CQL_FILTER=BBOX(the_geom, 48, 49, 18, 19, ‘EPSG:4326’)

Unfortunately, it doesn’t seem to work either and I get the same complaint about not being able to cast to “ReferencedEnvelope”:

Caused by: org.geotools.data.DataSourceException: Unable to create this mosaic

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1387)

at org.geotools.gce.imagemosaic.RasterLayerResponse.processRequest(RasterLayerResponse.java:1228)

at org.geotools.gce.imagemosaic.RasterLayerResponse.createResponse(RasterLayerResponse.java:1194)

at org.geotools.gce.imagemosaic.RasterManager.read(RasterManager.java:1125)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:849)

at org.geotools.gce.imagemosaic.ImageMosaicReader.read(ImageMosaicReader.java:828)

at org.geoserver.catalog.SingleGridCoverage2DReader.read(SingleGridCoverage2DReader.java:146)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:200)

at org.geoserver.catalog.CoverageDimensionCustomizerReader.read(CoverageDimensionCustomizerReader.java:190)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.readBestCoverage(RenderedImageMapOutputFormat.java:1296)

at org.geoserver.wms.map.RenderedImageMapOutputFormat.directRasterRender(RenderedImageMapOutputFormat.java:861)

… 107 more

Caused by: java.lang.ClassCastException: com.vividsolutions.jts.geom.Envelope cannot be cast to org.geotools.geometry.jts.ReferencedEnvelope

at org.geotools.gce.imagemosaic.Utils$BBOXFilterExtractor.visit(Utils.java:250)

at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:216)

at org.geotools.filter.visitor.DefaultFilterVisitor.visit(DefaultFilterVisitor.java:119)

at org.geotools.filter.AndImpl.accept(AndImpl.java:65)

at org.geotools.gce.imagemosaic.catalog.CachingDataStoreGranuleCatalog.getGranuleDescriptors(CachingDataStoreGranuleCatalog.java:152)

at org.geotools.gce.imagemosaic.RasterManager.getGranuleDescriptors(RasterManager.java:1135)

at org.geotools.gce.imagemosaic.RasterLayerResponse.prepareResponse(RasterLayerResponse.java:1336)

… 117 more

Any other suggestions?

Fix the code in GeoTools and make a pull request on GitHub :slight_smile:

As a much less direct approach, open a bug report at http://jira.codehaus.org/browse/GEOS

Cheers

Andrea

==

GeoServer Professional Services from the experts! Visit

http://goo.gl/NWWaa2 for more information.

==

Ing. Andrea Aime

@geowolf

Technical Lead

GeoSolutions S.A.S.

Via Poggio alle Viti 1187

55054 Massarosa (LU)

Italy

phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

http://www.geo-solutions.it

http://twitter.com/geosolutions_it