# \[bug-13371\] \[perspective\] resolving conflict

**URL:** <https://forum.inductiveautomation.com/t/bug-13371-perspective-resolving-conflict/23712>\
**Category:** Ignition Early Access\
**Created:** [March 29, 2019, 3:37pm UTC](https://forum.inductiveautomation.com/t/bug-13371-perspective-resolving-conflict/23712 "2019-03-29T15:37:52Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![BumbleBeeTuna](https://avatars.discourse-cdn.com/v4/letter/b/cc9497/32.png) [@BumbleBeeTuna](https://forum.inductiveautomation.com/u/BumbleBeeTuna)\
**Post date:** [March 29, 2019, 3:37pm UTC](https://forum.inductiveautomation.com/t/bug-13371-perspective-resolving-conflict/23712/1 "2019-03-29T15:37:52Z")

</div>

build: b2019032708

When I click save in the designer I see a empty resolve conflict window:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/2X/b/b2c5d5c90cf38b5bcbbcf3ec91977900f8a686a9.png)

output console reports:

```auto
> 10:32:14.122 [AWT-EventQueue-0] INFO designer.update-and-save - resolving 1 conflicts...
> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
> at java.base/java.util.Objects.requireNonNull(Unknown Source)
> at java.base/java.util.Optional.<init>(Unknown Source)
> at java.base/java.util.Optional.of(Unknown Source)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog$ConflictPanel$FileDiffView.getData(ConflictResolutionDialog.java:577)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog$ConflictPanel$FileDiffView.<init>(ConflictResolutionDialog.java:538)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog$ConflictPanel.lambda$new$2(ConflictResolutionDialog.java:466)
> at java.base/java.util.ArrayList.forEach(Unknown Source)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog$ConflictPanel.<init>(ConflictResolutionDialog.java:465)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog.lambda$new$9(ConflictResolutionDialog.java:267)
> at java.desktop/javax.swing.JTree.fireValueChanged(Unknown Source)
> at java.desktop/javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source)
> at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source)
> at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source)
> at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source)
> at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog.lambda$new$8(ConflictResolutionDialog.java:259)
> 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.pumpEventsForFilter(Unknown Source)
> at java.desktop/java.awt.WaitDispatchSupport$2.run(Unknown Source)
> at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)
> at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at java.desktop/java.awt.WaitDispatchSupport.enter(Unknown Source)
> at java.desktop/java.awt.Dialog.show(Unknown Source)
> at java.desktop/java.awt.Component.show(Unknown Source)
> at java.desktop/java.awt.Component.setVisible(Unknown Source)
> at java.desktop/java.awt.Window.setVisible(Unknown Source)
> at java.desktop/java.awt.Dialog.setVisible(Unknown Source)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog.resolve(ConflictResolutionDialog.java:130)
> at com.inductiveautomation.ignition.designer.IgnitionDesigner.pullAndResolve(IgnitionDesigner.java:1527)
> at com.inductiveautomation.ignition.designer.IgnitionDesigner.handleSave(IgnitionDesigner.java:1314)
> at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.handleSaveAction(IgnitionDesigner.java:2596)
> at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler$5.actionPerformed(IgnitionDesigner.java:2200)
> at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
> at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
> at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
> at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
> at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
> at com.jidesoft.plaf.basic.BasicJideButtonListener.mouseReleased(Unknown Source)
> at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
> at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
> at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
> at java.desktop/java.awt.Component.processEvent(Unknown Source)
> at java.desktop/java.awt.Container.processEvent(Unknown Source)
> at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
> at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
> at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
> at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
> at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Component.dispatchEvent(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.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
> at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
> at java.desktop/java.awt.EventQueue$5.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)
> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
> at java.base/java.util.Objects.requireNonNull(Unknown Source)
> at java.base/java.util.Optional.<init>(Unknown Source)
> at java.base/java.util.Optional.of(Unknown Source)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog$ConflictPanel$FileDiffView.getData(ConflictResolutionDialog.java:577)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog$ConflictPanel$FileDiffView.<init>(ConflictResolutionDialog.java:538)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog$ConflictPanel.lambda$new$2(ConflictResolutionDialog.java:466)
> at java.base/java.util.ArrayList.forEach(Unknown Source)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog$ConflictPanel.<init>(ConflictResolutionDialog.java:465)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog.lambda$new$9(ConflictResolutionDialog.java:267)
> at java.desktop/javax.swing.JTree.fireValueChanged(Unknown Source)
> at java.desktop/javax.swing.JTree$TreeSelectionRedirector.valueChanged(Unknown Source)
> at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source)
> at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source)
> at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source)
> at java.desktop/javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source)
> at java.desktop/javax.swing.JTree.setSelectionPath(Unknown Source)
> at java.desktop/javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source)
> at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source)
> at java.desktop/javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source)
> at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
> at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
> at java.desktop/java.awt.Component.processEvent(Unknown Source)
> at java.desktop/java.awt.Container.processEvent(Unknown Source)
> at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
> at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
> at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
> at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
> at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Component.dispatchEvent(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.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
> at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
> at java.desktop/java.awt.EventQueue$5.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.pumpEventsForFilter(Unknown Source)
> at java.desktop/java.awt.WaitDispatchSupport$2.run(Unknown Source)
> at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)
> at java.desktop/java.awt.WaitDispatchSupport$4.run(Unknown Source)
> at java.base/java.security.AccessController.doPrivileged(Native Method)
> at java.desktop/java.awt.WaitDispatchSupport.enter(Unknown Source)
> at java.desktop/java.awt.Dialog.show(Unknown Source)
> at java.desktop/java.awt.Component.show(Unknown Source)
> at java.desktop/java.awt.Component.setVisible(Unknown Source)
> at java.desktop/java.awt.Window.setVisible(Unknown Source)
> at java.desktop/java.awt.Dialog.setVisible(Unknown Source)
> at com.inductiveautomation.ignition.designer.project.ConflictResolutionDialog.resolve(ConflictResolutionDialog.java:130)
> at com.inductiveautomation.ignition.designer.IgnitionDesigner.pullAndResolve(IgnitionDesigner.java:1527)
> at com.inductiveautomation.ignition.designer.IgnitionDesigner.handleSave(IgnitionDesigner.java:1314)
> at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler.handleSaveAction(IgnitionDesigner.java:2596)
> at com.inductiveautomation.ignition.designer.IgnitionDesigner$Handler$5.actionPerformed(IgnitionDesigner.java:2200)
> at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
> at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
> at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
> at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
> at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
> at com.jidesoft.plaf.basic.BasicJideButtonListener.mouseReleased(Unknown Source)
> at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
> at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
> at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
> at java.desktop/java.awt.Component.processEvent(Unknown Source)
> at java.desktop/java.awt.Container.processEvent(Unknown Source)
> at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
> at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
> at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
> at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
> at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
> at java.desktop/java.awt.Component.dispatchEvent(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.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
> at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
> at java.desktop/java.awt.EventQueue$5.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)
> 10:33:02.618 [AWT-EventQueue-0] INFO designer.update-and-save - conflict resolution cancelled.

```

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [March 29, 2019, 3:51pm UTC](https://forum.inductiveautomation.com/t/bug-13371-perspective-resolving-conflict/23712/2 "2019-03-29T15:51:20Z")

</div>

Interesting. Any idea how you got into this state, ie reproduction steps? Also, could you send a .gwbk or project export in?

---

<div class="post-metadata">

**Author:** ![BumbleBeeTuna](https://avatars.discourse-cdn.com/v4/letter/b/cc9497/32.png) [@BumbleBeeTuna](https://forum.inductiveautomation.com/u/BumbleBeeTuna)\
**Post date:** [March 29, 2019, 3:53pm UTC](https://forum.inductiveautomation.com/t/bug-13371-perspective-resolving-conflict/23712/3 "2019-03-29T15:53:53Z")

</div>

Myself and a colleague were working on the same view. I updated a onClick action event script first, and then they continued to update it. Then I experienced the above when I tried to save my designer. In the end I was able to click remote and applied.

---

<div class="post-metadata">

**Author:** ![BumbleBeeTuna](https://avatars.discourse-cdn.com/v4/letter/b/cc9497/32.png) [@BumbleBeeTuna](https://forum.inductiveautomation.com/u/BumbleBeeTuna)\
**Post date:** [March 29, 2019, 4:10pm UTC](https://forum.inductiveautomation.com/t/bug-13371-perspective-resolving-conflict/23712/4 "2019-03-29T16:10:22Z")

</div>

We can send project or gateway, which do you prefer and could you supply a private link?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [March 29, 2019, 4:34pm UTC](https://forum.inductiveautomation.com/t/bug-13371-perspective-resolving-conflict/23712/5 "2019-03-29T16:34:18Z")

</div>

Okay - I’ve opened an internal ticket to investigate. We’ll let you know if we need more info, or once this is resolved. Thanks for reporting.

---

<div class="post-metadata">

**Author:** ![awalker](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/awalker/32/6874_2.png) [@awalker](https://forum.inductiveautomation.com/u/awalker)\
**Post date:** [April 23, 2019, 6:22pm UTC](https://forum.inductiveautomation.com/t/bug-13371-perspective-resolving-conflict/23712/6 "2019-04-23T18:22:27Z")

</div>

The ticket associated with this issue has been fixed as of 4/19.

Thank you!
