@Override public GrokPattern update(GrokPattern pattern) throws ValidationException { try { if (!validate(pattern)) { throw new ValidationException("Invalid pattern " + pattern); } } catch (GrokException | PatternSyntaxException e) { throw new ValidationException("Invalid pattern " + pattern + "\n" + e.getMessage()); } if (pattern.id() == null) { throw new ValidationException("Invalid pattern " + pattern); } WriteResult<GrokPattern, ObjectId> result = dbCollection.update(DBQuery.is("_id", new ObjectId(pattern.id())), pattern); if (result.isUpdateOfExisting()) { clusterBus.post(GrokPatternsUpdatedEvent.create(ImmutableSet.of(pattern.name()))); return pattern; } throw new ValidationException("Invalid pattern " + pattern); }