# Bug? Can't change sql query / binding on table for any table

**URL:** <https://forum.inductiveautomation.com/t/bug-cant-change-sql-query-binding-on-table-for-any-table/18216>\
**Category:** Ignition\
**Created:** [May 30, 2018, 10:12am UTC](https://forum.inductiveautomation.com/t/bug-cant-change-sql-query-binding-on-table-for-any-table/18216 "2018-05-30T10:12:00Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![mcarritt1](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mcarritt1/32/4262_2.png) [@mcarritt1](https://forum.inductiveautomation.com/u/mcarritt1)\
**Post date:** [May 30, 2018, 10:12am UTC](https://forum.inductiveautomation.com/t/bug-cant-change-sql-query-binding-on-table-for-any-table/18216/1 "2018-05-30T10:12:00Z")

</div>

This problem keeps happening everywhere in my application. I'll set up a table with a SQL query, and then later am unable to change it whatsoever, or even remove it by selecting "no binding". In fact, editing the table data binding, not changing anything, and selecting OK will give me an error (and the window doesn't close/commit).

I just recreated the issue, and with a new table it looks like I am able to edit the table data binding with no problem, until I close the window that the table is in, and save the project. Opening the window again, I'm now unable to change the data binding.

Server info:  
Version: 7.9.7 (b2018032914)  
Java Version: 1.8.0\_152-b16

Error:

> Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException  
> at com.inductiveautomation.factorypmi.application.binding.SQLPropertyAdapter.getBindingConfiguration(SQLPropertyAdapter.java:117)  
> at com.inductiveautomation.factorypmi.designer.property.configurators.ConfiguratorMultiplexor$EditorParent.getBindingConfiguration(ConfiguratorMultiplexor.java:284)  
> at com.inductiveautomation.factorypmi.designer.property.configurators.ConfiguratorMultiplexor$EditorParent.tryCommit(ConfiguratorMultiplexor.java:266)  
> at com.inductiveautomation.factorypmi.designer.property.configurators.ConfiguratorMultiplexor.tryCommit(ConfiguratorMultiplexor.java:468)  
> at com.inductiveautomation.factorypmi.designer.property.configurators.DynamicOptsDialog.doOK(DynamicOptsDialog.java:95)  
> at com.inductiveautomation.factorypmi.designer.property.configurators.DynamicOptsDialog.access$000(DynamicOptsDialog.java:43)  
> at com.inductiveautomation.factorypmi.designer.property.configurators.DynamicOptsDialog$1.actionPerformed(DynamicOptsDialog.java:64)  
> at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)  
> at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)  
> at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)  
> at javax.swing.DefaultButtonModel.setPressed(Unknown Source)  
> at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)  
> at java.awt.Component.processMouseEvent(Unknown Source)  
> at javax.swing.JComponent.processMouseEvent(Unknown Source)  
> at java.awt.Component.processEvent(Unknown Source)  
> at java.awt.Container.processEvent(Unknown Source)  
> at java.awt.Component.dispatchEventImpl(Unknown Source)  
> at java.awt.Container.dispatchEventImpl(Unknown Source)  
> at java.awt.Component.dispatchEvent(Unknown Source)  
> at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)  
> at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)  
> at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)  
> at java.awt.Container.dispatchEventImpl(Unknown Source)  
> at java.awt.Window.dispatchEventImpl(Unknown Source)  
> at java.awt.Component.dispatchEvent(Unknown Source)  
> at java.awt.EventQueue.dispatchEventImpl(Unknown Source)  
> at java.awt.EventQueue.access$500(Unknown Source)  
> at java.awt.EventQueue$3.run(Unknown Source)  
> at java.awt.EventQueue$3.run(Unknown Source)  
> at java.security.AccessController.doPrivileged(Native Method)  
> at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
> at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
> at java.awt.EventQueue$4.run(Unknown Source)  
> at java.awt.EventQueue$4.run(Unknown Source)  
> at java.security.AccessController.doPrivileged(Native Method)  
> at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
> at java.awt.EventQueue.dispatchEvent(Unknown Source)  
> at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)  
> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
> at java.awt.WaitDispatchSupport$2.run(Unknown Source)  
> at java.awt.WaitDispatchSupport$4.run(Unknown Source)  
> at java.awt.WaitDispatchSupport$4.run(Unknown Source)  
> at java.security.AccessController.doPrivileged(Native Method)  
> at java.awt.WaitDispatchSupport.enter(Unknown Source)  
> at java.awt.Dialog.show(Unknown Source)  
> at java.awt.Component.show(Unknown Source)  
> at java.awt.Component.setVisible(Unknown Source)  
> at java.awt.Window.setVisible(Unknown Source)  
> at java.awt.Dialog.setVisible(Unknown Source)  
> at com.inductiveautomation.factorypmi.designer.property.configurators.DynamicOptsDialog.showDialog(DynamicOptsDialog.java:163)  
> at com.inductiveautomation.factorypmi.designer.model.VisionDesignerImpl.openBindingDialog(VisionDesignerImpl.java:1125)  
> at com.inductiveautomation.factorypmi.designer.property.editors.bb.DynamicOptionsButton.actionPerformed(DynamicOptionsButton.java:37)  
> at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)  
> at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)  
> at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)  
> at javax.swing.DefaultButtonModel.setPressed(Unknown Source)  
> at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)  
> at com.jidesoft.plaf.basic.BasicJideButtonListener.mouseReleased(Unknown Source)  
> at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)  
> at java.awt.Component.processMouseEvent(Unknown Source)  
> at javax.swing.JComponent.processMouseEvent(Unknown Source)  
> at java.awt.Component.processEvent(Unknown Source)  
> at java.awt.Container.processEvent(Unknown Source)  
> at java.awt.Component.dispatchEventImpl(Unknown Source)  
> at java.awt.Container.dispatchEventImpl(Unknown Source)  
> at java.awt.Component.dispatchEvent(Unknown Source)  
> at javax.swing.plaf.basic.BasicTableUI$Handler.repostEvent(Unknown Source)  
> at javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(Unknown Source)  
> at com.jidesoft.swing.DelegateMouseInputListener.mouseReleased(Unknown Source)  
> at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)  
> at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)  
> at java.awt.Component.processMouseEvent(Unknown Source)  
> at javax.swing.JComponent.processMouseEvent(Unknown Source)  
> at java.awt.Component.processEvent(Unknown Source)  
> at java.awt.Container.processEvent(Unknown Source)  
> at java.awt.Component.dispatchEventImpl(Unknown Source)  
> at java.awt.Container.dispatchEventImpl(Unknown Source)  
> at java.awt.Component.dispatchEvent(Unknown Source)  
> at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)  
> at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)  
> at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)  
> at java.awt.Container.dispatchEventImpl(Unknown Source)  
> at java.awt.Window.dispatchEventImpl(Unknown Source)  
> at java.awt.Component.dispatchEvent(Unknown Source)  
> at java.awt.EventQueue.dispatchEventImpl(Unknown Source)  
> at java.awt.EventQueue.access$500(Unknown Source)  
> at java.awt.EventQueue$3.run(Unknown Source)  
> at java.awt.EventQueue$3.run(Unknown Source)  
> at java.security.AccessController.doPrivileged(Native Method)  
> at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
> at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
> at java.awt.EventQueue$4.run(Unknown Source)  
> at java.awt.EventQueue$4.run(Unknown Source)  
> at java.security.AccessController.doPrivileged(Native Method)  
> at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
> at java.awt.EventQueue.dispatchEvent(Unknown Source)  
> at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)  
> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)  
> at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
> at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
> at java.awt.EventDispatchThread.run(Unknown Source)

---

<div class="post-metadata">

**Author:** ![mcarritt1](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mcarritt1/32/4262_2.png) [@mcarritt1](https://forum.inductiveautomation.com/u/mcarritt1)\
**Post date:** [May 30, 2018, 10:14am UTC](https://forum.inductiveautomation.com/t/bug-cant-change-sql-query-binding-on-table-for-any-table/18216/2 "2018-05-30T10:14:42Z")

</div>

heh, found the other threads about this bug right after I clicked post. installing the 7.9.8 release candidate now…

---

<div class="post-metadata">

**Author:** ![Stuart](https://avatars.discourse-cdn.com/v4/letter/s/cab0a1/32.png) [@Stuart](https://forum.inductiveautomation.com/u/Stuart)\
**Post date:** [May 30, 2018, 4:00pm UTC](https://forum.inductiveautomation.com/t/bug-cant-change-sql-query-binding-on-table-for-any-table/18216/3 "2018-05-30T16:00:45Z")

</div>

I’d be interested to know if 7.9.8 fixes your problem. I installed 7.9.8 yesterday, and it does seem to fix 99% of these issues; however, I still have one table that doesn’t behave as expected.

I’ve been unable to recreate the problem with other tables which makes me think something else weird is going on with this specific table.

---

<div class="post-metadata">

**Author:** ![mcarritt1](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mcarritt1/32/4262_2.png) [@mcarritt1](https://forum.inductiveautomation.com/u/mcarritt1)\
**Post date:** [May 30, 2018, 4:13pm UTC](https://forum.inductiveautomation.com/t/bug-cant-change-sql-query-binding-on-table-for-any-table/18216/4 "2018-05-30T16:13:28Z")

</div>

I only checked one table that was pretty simple, and it fixed the problem I was having there. I haven’t looked much further.

---

<div class="post-metadata">

**Author:** ![Sanderd17](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sanderd17/32/8735_2.png) [@Sanderd17](https://forum.inductiveautomation.com/u/Sanderd17)\
**Post date:** [May 31, 2018, 6:22am UTC](https://forum.inductiveautomation.com/t/bug-cant-change-sql-query-binding-on-table-for-any-table/18216/5 "2018-05-31T06:22:46Z")

</div>

I’ve also downloaded 7.9.8 rc1, and not all problems are fixed.

The update queries are still enabled by default, throwing errors when modifying a dropdown if the initial value is fetched from a database. And there are still issues with popups that have two different bindings of the same UDT.

I haven’t seen that nullpointer again, but the nullpointer also wasn’t my original issue with 7.9.7.
