ngageoint / elasticgeo

ElasticGeo provides a GeoTools data store that allows geospatial features from an Elasticsearch index to be published via OGC services using GeoServer.
GNU General Public License v3.0
169 stars 85 forks source link

Index mapping with field not indexed results in java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String #33

Closed nreese closed 7 years ago

nreese commented 7 years ago

Steps to reproduce

Geoserver fails with the following error

Caused by: java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
    at mil.nga.giat.data.elasticsearch.ElasticCompat5.isAnalyzed(ElasticCompat5.java:88)
    at mil.nga.giat.data.elasticsearch.ElasticDataStore.add(ElasticDataStore.java:340)
    at mil.nga.giat.data.elasticsearch.ElasticDataStore.walk(ElasticDataStore.java:313)
    at mil.nga.giat.data.elasticsearch.ElasticDataStore.walk(ElasticDataStore.java:310)
    at mil.nga.giat.data.elasticsearch.ElasticDataStore.getElasticAttributes(ElasticDataStore.java:150)
    at mil.nga.giat.data.elasticsearch.ElasticFeatureSource.<init>(ElasticFeatureSource.java:48)
    at mil.nga.giat.data.elasticsearch.ElasticDataStore.createFeatureSource(ElasticDataStore.java:111)
    at org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:395)
    at mil.nga.giat.data.elasticsearch.ElasticDataStore.getFeatureSource(ElasticDataStore.java:122)
    at org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:686)
    at org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:103)
    at org.geoserver.catalog.CatalogBuilder.buildFeatureType(CatalogBuilder.java:333)
    at org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:359)
    ... 121 more

I looks like Elasticsearch 5.x changed the value of index from a String (that used to be analyzed, not_analyzed, and no) to just a Boolean.