Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-698

Reenabling Quickload after DAS has been initialized generates a null pointer exception

    Details

      Description

      It seems that re-enabling Quickload after DAS has been initialized generates a null pointer exception (see below).

      To reproduce:

      1) Before selecting a genome, disable the IGB Quickload under the Data Sources tab in Preferences.
      2) Select Homo Sapien genome to initizialize the UCSC (DAS) server.
      3) Restart IGB and select the Homo Sapien genome.
      4) Re-enable the IGB Quickload server under the Data Sources tab in Preferences.

      *Observe: a null pointer exception has been generated

      12:49:01.011 ERROR c.l.quickload.util.QuickloadUtils - Missing required annots.xml file for genome version hg38, skipping this genome version for quickload site http://igbquickload.org/quickload/hg38/
      java.io.IOException: null
      at com.affymetrix.genometry.util.UriUtils.checkIsValidRequest(UriUtils.java:86) ~[genometry-8.4.0.jar:na]
      at com.affymetrix.genometry.util.UriUtils.getInputStream(UriUtils.java:58) ~[genometry-8.4.0.jar:na]
      at com.lorainelab.quickload.util.QuickloadUtils.getGenomeVersionData(QuickloadUtils.java:124) ~[quickload-8.4.0.jar:na]
      at com.lorainelab.quickload.QuickloadDataProvider.getAvailableDataSets(QuickloadDataProvider.java:138) [quickload-8.4.0.jar:na]
      at com.affymetrix.igb.view.load.GeneralLoadUtils.initializeDataContainer(GeneralLoadUtils.java:303) [igb-8.4.0.jar:na]
      at com.affymetrix.igb.view.load.GeneralLoadUtils.lambda$initVersionAndSeq$81(GeneralLoadUtils.java:326) [igb-8.4.0.jar:na]
      at com.affymetrix.igb.view.load.GeneralLoadUtils$$Lambda$259/1019567302.accept(Unknown Source) [igb-8.4.0.jar:na]
      at java.lang.Iterable.forEach(Unknown Source) [na:1.8.0_40]
      at com.affymetrix.igb.view.load.GeneralLoadUtils.initVersionAndSeq(GeneralLoadUtils.java:325) [igb-8.4.0.jar:na]
      at com.affymetrix.igb.general.DataProviderManager.enableDataProvider(DataProviderManager.java:391) [igb-8.4.0.jar:na]
      at com.affymetrix.igb.general.DataProviderTableModel.setColumnValue(DataProviderTableModel.java:214) [igb-8.4.0.jar:na]
      at com.affymetrix.igb.general.DataProviderTableModel.setValueAt(DataProviderTableModel.java:190) [igb-8.4.0.jar:na]
      at javax.swing.JTable.setValueAt(Unknown Source) [na:1.8.0_40]
      at com.jidesoft.grid.JideTable.editingStopped(Unknown Source) [jide-ultimate-3.5.15.jar:na]
      at javax.swing.AbstractCellEditor.fireEditingStopped(Unknown Source) [na:1.8.0_40]
      at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(Unknown Source) [na:1.8.0_40]
      at javax.swing.DefaultCellEditor.stopCellEditing(Unknown Source) [na:1.8.0_40]
      at javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(Unknown Source) [na:1.8.0_40]
      at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [na:1.8.0_40]
      at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [na:1.8.0_40]
      at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [na:1.8.0_40]
      at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source) [na:1.8.0_40]
      at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [na:1.8.0_40]
      at java.awt.Component.processMouseEvent(Unknown Source) [na:1.8.0_40]
      at javax.swing.JComponent.processMouseEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.Component.processEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.Container.processEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.Component.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
      at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
      at java.awt.Component.dispatchEvent(Unknown Source) [na:1.8.0_40]
      at javax.swing.plaf.basic.BasicTableUI$Handler.repostEvent(Unknown Source) [na:1.8.0_40]
      at javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(Unknown Source) [na:1.8.0_40]
      at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) [na:1.8.0_40]
      at java.awt.Component.processMouseEvent(Unknown Source) [na:1.8.0_40]
      at javax.swing.JComponent.processMouseEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.Component.processEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.Container.processEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.Component.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
      at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
      at java.awt.Component.dispatchEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
      at java.awt.Window.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
      at java.awt.Component.dispatchEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
      at java.awt.EventQueue.access$500(Unknown Source) [na:1.8.0_40]
      at java.awt.EventQueue$3.run(Unknown Source) [na:1.8.0_40]
      at java.awt.EventQueue$3.run(Unknown Source) [na:1.8.0_40]
      at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_40]
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [na:1.8.0_40]
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [na:1.8.0_40]
      at java.awt.EventQueue$4.run(Unknown Source) [na:1.8.0_40]
      at java.awt.EventQueue$4.run(Unknown Source) [na:1.8.0_40]
      at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_40]
      at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [na:1.8.0_40]
      at java.awt.EventQueue.dispatchEvent(Unknown Source) [na:1.8.0_40]
      at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [na:1.8.0_40]
      at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [na:1.8.0_40]
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [na:1.8.0_40]
      at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.8.0_40]
      at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.8.0_40]
      at java.awt.EventDispatchThread.run(Unknown Source) [na:1.8.0_40]

        Attachments

          Activity

          mason Mason Meyer (Inactive) created issue -
          mason Mason Meyer (Inactive) made changes -
          Field Original Value New Value
          Epic Link IGBF-632 [ 15706 ]
          mason Mason Meyer (Inactive) made changes -
          Description It seems that re-enabling Quickload after DAS has been initialized generates a null pointer exception (see below).

          To reproduce:

          1) Before selecting a genome, disable the IGB Quickload under the Data Sources tab in Preferences.
          2) Select Homo Sapien genome to initizialize the UCSC (DAS) server.
          3) Restart IGB.
          4) Re-enable the IGB Quickload server under the Data Sources tab in Preferences.

          Observe: a null pointer exception has been generated

          12:49:01.011 ERROR c.l.quickload.util.QuickloadUtils - Missing required annots.xml file for genome version hg38, skipping this genome version for quickload site http://igbquickload.org/quickload/hg38/
          java.io.IOException: null
          at com.affymetrix.genometry.util.UriUtils.checkIsValidRequest(UriUtils.java:86) ~[genometry-8.4.0.jar:na]
          at com.affymetrix.genometry.util.UriUtils.getInputStream(UriUtils.java:58) ~[genometry-8.4.0.jar:na]
          at com.lorainelab.quickload.util.QuickloadUtils.getGenomeVersionData(QuickloadUtils.java:124) ~[quickload-8.4.0.jar:na]
          at com.lorainelab.quickload.QuickloadDataProvider.getAvailableDataSets(QuickloadDataProvider.java:138) [quickload-8.4.0.jar:na]
          at com.affymetrix.igb.view.load.GeneralLoadUtils.initializeDataContainer(GeneralLoadUtils.java:303) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.view.load.GeneralLoadUtils.lambda$initVersionAndSeq$81(GeneralLoadUtils.java:326) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.view.load.GeneralLoadUtils$$Lambda$259/1019567302.accept(Unknown Source) [igb-8.4.0.jar:na]
          at java.lang.Iterable.forEach(Unknown Source) [na:1.8.0_40]
          at com.affymetrix.igb.view.load.GeneralLoadUtils.initVersionAndSeq(GeneralLoadUtils.java:325) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.general.DataProviderManager.enableDataProvider(DataProviderManager.java:391) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.general.DataProviderTableModel.setColumnValue(DataProviderTableModel.java:214) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.general.DataProviderTableModel.setValueAt(DataProviderTableModel.java:190) [igb-8.4.0.jar:na]
          at javax.swing.JTable.setValueAt(Unknown Source) [na:1.8.0_40]
          at com.jidesoft.grid.JideTable.editingStopped(Unknown Source) [jide-ultimate-3.5.15.jar:na]
          at javax.swing.AbstractCellEditor.fireEditingStopped(Unknown Source) [na:1.8.0_40]
          at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(Unknown Source) [na:1.8.0_40]
          at javax.swing.DefaultCellEditor.stopCellEditing(Unknown Source) [na:1.8.0_40]
          at javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(Unknown Source) [na:1.8.0_40]
          at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [na:1.8.0_40]
          at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [na:1.8.0_40]
          at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [na:1.8.0_40]
          at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source) [na:1.8.0_40]
          at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at javax.swing.JComponent.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.processEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.processEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at javax.swing.plaf.basic.BasicTableUI$Handler.repostEvent(Unknown Source) [na:1.8.0_40]
          at javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(Unknown Source) [na:1.8.0_40]
          at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at javax.swing.JComponent.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.processEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.processEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Window.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue.access$500(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue$3.run(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue$3.run(Unknown Source) [na:1.8.0_40]
          at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_40]
          at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [na:1.8.0_40]
          at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue$4.run(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue$4.run(Unknown Source) [na:1.8.0_40]
          at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_40]
          at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.run(Unknown Source) [na:1.8.0_40]
          It seems that re-enabling Quickload after DAS has been initialized generates a null pointer exception (see below).

          To reproduce:

          1) Before selecting a genome, disable the IGB Quickload under the Data Sources tab in Preferences.
          2) Select Homo Sapien genome to initizialize the UCSC (DAS) server.
          3) Restart IGB and select the Homo Sapien genome.
          4) Re-enable the IGB Quickload server under the Data Sources tab in Preferences.

          *Observe: a null pointer exception has been generated

          12:49:01.011 ERROR c.l.quickload.util.QuickloadUtils - Missing required annots.xml file for genome version hg38, skipping this genome version for quickload site http://igbquickload.org/quickload/hg38/
          java.io.IOException: null
          at com.affymetrix.genometry.util.UriUtils.checkIsValidRequest(UriUtils.java:86) ~[genometry-8.4.0.jar:na]
          at com.affymetrix.genometry.util.UriUtils.getInputStream(UriUtils.java:58) ~[genometry-8.4.0.jar:na]
          at com.lorainelab.quickload.util.QuickloadUtils.getGenomeVersionData(QuickloadUtils.java:124) ~[quickload-8.4.0.jar:na]
          at com.lorainelab.quickload.QuickloadDataProvider.getAvailableDataSets(QuickloadDataProvider.java:138) [quickload-8.4.0.jar:na]
          at com.affymetrix.igb.view.load.GeneralLoadUtils.initializeDataContainer(GeneralLoadUtils.java:303) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.view.load.GeneralLoadUtils.lambda$initVersionAndSeq$81(GeneralLoadUtils.java:326) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.view.load.GeneralLoadUtils$$Lambda$259/1019567302.accept(Unknown Source) [igb-8.4.0.jar:na]
          at java.lang.Iterable.forEach(Unknown Source) [na:1.8.0_40]
          at com.affymetrix.igb.view.load.GeneralLoadUtils.initVersionAndSeq(GeneralLoadUtils.java:325) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.general.DataProviderManager.enableDataProvider(DataProviderManager.java:391) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.general.DataProviderTableModel.setColumnValue(DataProviderTableModel.java:214) [igb-8.4.0.jar:na]
          at com.affymetrix.igb.general.DataProviderTableModel.setValueAt(DataProviderTableModel.java:190) [igb-8.4.0.jar:na]
          at javax.swing.JTable.setValueAt(Unknown Source) [na:1.8.0_40]
          at com.jidesoft.grid.JideTable.editingStopped(Unknown Source) [jide-ultimate-3.5.15.jar:na]
          at javax.swing.AbstractCellEditor.fireEditingStopped(Unknown Source) [na:1.8.0_40]
          at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(Unknown Source) [na:1.8.0_40]
          at javax.swing.DefaultCellEditor.stopCellEditing(Unknown Source) [na:1.8.0_40]
          at javax.swing.DefaultCellEditor$EditorDelegate.actionPerformed(Unknown Source) [na:1.8.0_40]
          at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) [na:1.8.0_40]
          at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) [na:1.8.0_40]
          at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) [na:1.8.0_40]
          at javax.swing.JToggleButton$ToggleButtonModel.setPressed(Unknown Source) [na:1.8.0_40]
          at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at javax.swing.JComponent.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.processEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.processEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at javax.swing.plaf.basic.BasicTableUI$Handler.repostEvent(Unknown Source) [na:1.8.0_40]
          at javax.swing.plaf.basic.BasicTableUI$Handler.mouseReleased(Unknown Source) [na:1.8.0_40]
          at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at javax.swing.JComponent.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.processEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.processEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.Container.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Window.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.Component.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue.access$500(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue$3.run(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue$3.run(Unknown Source) [na:1.8.0_40]
          at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_40]
          at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [na:1.8.0_40]
          at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue$4.run(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue$4.run(Unknown Source) [na:1.8.0_40]
          at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_40]
          at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) [na:1.8.0_40]
          at java.awt.EventQueue.dispatchEvent(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [na:1.8.0_40]
          at java.awt.EventDispatchThread.run(Unknown Source) [na:1.8.0_40]
          dcnorris David Norris (Inactive) made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          dcnorris David Norris (Inactive) made changes -
          Status In Progress [ 3 ] Needs Testing [ 10002 ]
          mason Mason Meyer (Inactive) made changes -
          Status Needs Testing [ 10002 ] Testing In Progress [ 10003 ]
          mason Mason Meyer (Inactive) made changes -
          Assignee David Norris [ dcnorris ] Mason Meyer [ mason ]
          mason Mason Meyer (Inactive) made changes -
          Resolution Done [ 10000 ]
          Status Testing In Progress [ 10003 ] Closed [ 6 ]
          ann.loraine Ann Loraine made changes -
          Workflow Loraine Lab Workflow [ 15993 ] Fall 2019 Workflow Update [ 19515 ]
          ann.loraine Ann Loraine made changes -
          Workflow Fall 2019 Workflow Update [ 19515 ] Revised Fall 2019 Workflow Update [ 21632 ]

            People

            • Assignee:
              mason Mason Meyer (Inactive)
              Reporter:
              mason Mason Meyer (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: