void (@NonNls @NotNull String key, @Nullable Object value) { Object oldValue; synchronized (this) { oldValue = myUserMap.get(key); if (Comparing.equal(oldValue, value)) return; if (key.equals(CustomComponentAction.COMPONENT_KEY.toString()) && oldValue != null) { LOG.error("Trying to reset custom component in a presentation", new Throwable()); } myUserMap = value == null ? myUserMap.minus(key) : myUserMap.plus(key, value); } fireObjectPropertyChange(key, oldValue, value); }