[Geoserver-devel] [JIRA] (GEOS-7852) REST API implementation for setting defaults violates Catalog API

Torben Barsballe created an issue

GeoServer / ImprovementGEOS-7852

REST API implementation for setting defaults violates Catalog API

Issue Type:

ImprovementImprovement

Assignee:

Unassigned

Components:

REST

Created:

15/Nov/16 1:32 AM

Priority:

MediumMedium

Reporter:

Torben Barsballe

The REST API implementation of handleObjectPut for NamespaceResource and WorkspaceResource has an odd implementation for case of setting the default value.
It passes a partial (name / prefix set, everything else null, including Id) Info object to catalog.setDefault[Workspace/Namespace]:

https://github.com/geoserver/geoserver/blob/master/src/restconfig/src/main/java/org/geoserver/catalog/rest/NamespaceResource.java#L88
https://github.com/geoserver/geoserver/blob/master/src/restconfig/src/main/java/org/geoserver/catalog/rest/WorkspaceResource.java#L121

Just looking at the CatalogInfo / CatalogFacade interfaces, the behaviour for this is undefined, but the implication is that you should be passing valid Catalig objects to the CatalogFacade method.

Looking at the implementation, it appears this only works because there is a special case hardcoded in to handle it:
https://github.com/geoserver/geoserver/blob/master/src/main/src/main/java/org/geoserver/catalog/impl/DefaultCatalogFacade.java#L645
https://github.com/geoserver/geoserver/blob/master/src/main/src/main/java/org/geoserver/catalog/impl/DefaultCatalogFacade.java#L744

The REST API implementation should be fixed.

Add Comment

Add Comment

This message was sent by Atlassian JIRA (v1000.550.0#100018-sha1:c2a8a35)

Atlassian logo