NULL pointer exception when using JMS plugin and updating a layer resource using REST

Description

To reproduce this problem create a JMS cluster and update in one of the master nodes a layer resource using REST, for example updating the provided tiger_roads layer resource:

The update will be correctly propagated in all the nodes, but performing a get map request on the slaves with the updated layer will provoke a NULL pointer exception.

Note that when updating the layer resource using GeoServer UI this error doesn't happen.

This issue happens only with the REST PUT operation because the REST PUT operation copies all the fields of the updated object to the existing object:
https://github.com/geoserver/geoserver/blob/master/src/ows/src/main/java/org/geoserver/ows/util/OwsUtils.java#L315-L354

So even fields that are no updated like the catalog will be considered updated by the modification proxy and send for alteration to the slave nodes. Since some of the catalog fields are transient the salves will update the resource instance with an invalid catalog object.

To fix this issue the catalog deserializer should ignore any received property of type catalog.

Environment

None

Status

Assignee

Nuno Oliveira

Reporter

Nuno Oliveira

Triage

None

Fix versions

Affects versions

None

Components

Priority

Medium
Configure