When creating new property keys with similar names to previously created keys (ex. creating ‘key12’ with existing ‘key1’), as soon as ‘key1’ is typed in (before typing ‘2’), they are flagged as duplicate keys. If the new key is a different type than the original, the original is updated to the new type (ex. original is type ‘object’ and new is type ‘value’, original is updated or overwritten to type ‘value’).
Is it possible to defer updates on key name edits until enter is pressed or focus is lost?
Not sure if this is the same bug or related.
I may have been able to save and exit from a view with Duplicate Key Parameters available.
However, I could not access the view again (or the .json) to troubleshoot or fix.
------------------------------Error---------------------------------------
Unable to deserialize resource DowntimeEvent :
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Duplicate key params. (attempted merging values com.inductiveautomation.perspective.common.config.PropertyConfig@7cf9b6f6 and com.inductiveautomation.perspective.common.config.PropertyConfig@24ee73da)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224)
at com.google.gson.Gson.fromJson(Gson.java:888)
at com.google.gson.Gson.fromJson(Gson.java:826)
at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.deserialize(ViewResourceEditor.java:179)
at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.deserialize(ViewResourceEditor.java:54)
at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.loadResource(ResourceEditor.java:51)
at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor.(ResourceEditor.java:34)
at com.inductiveautomation.perspective.designer.workspace.ViewResourceEditor.(ViewResourceEditor.java:129)
at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.newResourceEditor(ViewWorkspace.java:282)
at com.inductiveautomation.perspective.designer.workspace.ViewWorkspace.newResourceEditor(ViewWorkspace.java:86)
at com.inductiveautomation.ignition.designer.tabbedworkspace.TabbedResourceWorkspace.open(TabbedResourceWorkspace.java:182)
at com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceNode.onDoubleClick(ResourceNode.java:140)
at com.inductiveautomation.ignition.designer.navtree.NavTreePanel$MouseListener$1.run(NavTreePanel.java:678)
at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Duplicate key params. (attempted merging values com.inductiveautomation.perspective.common.config.PropertyConfig@7cf9b6f6 and com.inductiveautomation.perspective.common.config.PropertyConfig@24ee73da)
at java.base/java.util.stream.Collectors.duplicateKeyException(Unknown Source)
at java.base/java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Unknown Source)
at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(Unknown Source)
at java.base/java.util.Iterator.forEachRemaining(Unknown Source)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.collect(Unknown Source)
at com.inductiveautomation.perspective.common.config.PropertyConfigCollection$GsonAdapter.deserialize(PropertyConfigCollection.java:71)
at com.inductiveautomation.perspective.common.config.PropertyConfigCollection$GsonAdapter.deserialize(PropertyConfigCollection.java:63)
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
… 25 more
Ignition v8.0.0-beta0 (b2019011802)
Java: Azul Systems, Inc. 11.0.1