When importing a GeoJSON file, the LayerInfo object returned by the task is not sufficiently populated. Even thought the importer can successfully import GeoJSON files, applications (such as GeoNode) that rely on the rest endpoint to retrieve additional data about the imported layer, get an exception.
“http://localhost:8080/geoserver/rest/imports/1/tasks/0?expand=3”
java.io.IOException: Schema ‘<layer name>’ does not exist.
at org.geotools.data.store.ContentDataStore.ensureEntry(ContentDataStore.java:619)
at org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:386)
at org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:353)
at org.geotools.data.store.ContentDataStore.getSchema(ContentDataStore.java:337)
at org.geotools.data.store.ContentDataStore.getSchema(ContentDataStore.java:711)
at org.geotools.data.store.ContentDataStore.getSchema(ContentDataStore.java:103)
at org.geoserver.catalog.ResourcePool.getNonCacheableFeatureType(ResourcePool.java:939)
at org.geoserver.catalog.ResourcePool.getFeatureType(ResourcePool.java:863)
at org.geoserver.catalog.ResourcePool.getFeatureType(ResourcePool.java:858)
at org.geoserver.catalog.ResourcePool.loadAttributes(ResourcePool.java:735)
at org.geoserver.catalog.ResourcePool.getAttributes(ResourcePool.java:711)
at org.geoserver.catalog.impl.FeatureTypeInfoImpl.attributes(FeatureTypeInfoImpl.java:105)
at org.geoserver.importer.rest.ImportJSONWriter.featureType(ImportJSONWriter.java:295)
at org.geoserver.importer.rest.ImportJSONWriter.layer(ImportJSONWriter.java:278)
at org.geoserver.importer.rest.ImportJSONWriter.task(ImportJSONWriter.java:198)
at org.geoserver.importer.rest.TaskResource$ImportTaskJSONFormat.write(TaskResource.java:345)
Will try to have a pull request soon.
|