summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/server/events/Delta.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp
index dc6759b0..a768beb0 100644
--- a/src/server/events/Delta.cpp
+++ b/src/server/events/Delta.cpp
@@ -230,10 +230,16 @@ Delta::pre_process()
}
}
- // Remove all added properties if this is a put
- if (_type == Type::PUT && _object) {
- for (const auto& p : _properties) {
- _object->remove_property(p.first, p.second);
+ // Remove all added properties if this is a put or set
+ if (_object) {
+ if (_type == Type::PUT) {
+ for (const auto& p : _properties) {
+ _object->remove_property(p.first, p.second);
+ }
+ } else if (_type == Type::SET) {
+ for (const auto& p : _properties) {
+ _object->remove_property(p.first, uris.patch_wildcard);
+ }
}
}