Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #12232 (closed)

Opened 10 years ago

Closed 10 years ago

BUG: Delete (keyboard shortcut) enabled via insight : <Client crashes>

Reported by: bramalingam Owned by: dlindner
Priority: blocker Milestone: 5.0.2
Component: Insight Version: 5.0.1
Keywords: n.a. Cc: ux@…
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: n.a.
Sprint: n.a.

Description (last modified by pwalczysko)

1) Create a new Group and a user.
2) Click on the group and press the delete key on the keyboard.
3) A pop-up comes up to check if you want to complete the action.
4) Press OK, and the Group and user gets deleted

Note:
1) If you log out of Admin(root) and then login with the new user once.
2) Then come back to the root user, without doing any actions on the new user.
3) Now if you try to delete the user via the keyboard shortcut, it does not allow you to delete.

*If you delete a user and try to open the 'User' tree, Client crashes, with the following error report (trying to fetch groups and fails)...

Note that you can delete just the user which you just created. (PW)

Also, note that this error has as a consequence corruption of the db - even when you close and reopen Insight and expand "user" group, the same crash happens again.

java.lang.Exception: Abnormal termination due to an uncaught exception.

java.lang.NullPointerException
	at pojos.ExperimenterData.getGroups(ExperimenterData.java:202)
	at pojos.ExperimenterData.isActive(ExperimenterData.java:280)
	at org.openmicroscopy.shoola.agents.treeviewer.util.TreeCellRenderer.setIcon(TreeCellRenderer.java:646)
	at org.openmicroscopy.shoola.agents.treeviewer.util.TreeCellRenderer.getTreeCellRendererComponent(TreeCellRenderer.java:741)
	at javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2718)
	at javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
	at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1342)
	at javax.swing.tree.VariableHeightLayoutCache.createNodeAt(VariableHeightLayoutCache.java:764)
	at javax.swing.tree.VariableHeightLayoutCache.treeNodesInserted(VariableHeightLayoutCache.java:473)
	at javax.swing.plaf.basic.BasicTreeUI$Handler.treeNodesInserted(BasicTreeUI.java:3795)
	at javax.swing.tree.DefaultTreeModel.fireTreeNodesInserted(DefaultTreeModel.java:499)
	at javax.swing.tree.DefaultTreeModel.nodesWereInserted(DefaultTreeModel.java:296)
	at javax.swing.tree.DefaultTreeModel.insertNodeInto(DefaultTreeModel.java:223)
	at org.openmicroscopy.shoola.agents.treeviewer.browser.BrowserUI.buildTreeNode(BrowserUI.java:1121)
	at org.openmicroscopy.shoola.agents.treeviewer.browser.BrowserUI.setLeavesViews(BrowserUI.java:2092)
	at org.openmicroscopy.shoola.agents.treeviewer.browser.BrowserComponent.setExperimenters(BrowserComponent.java:2091)
	at org.openmicroscopy.shoola.agents.treeviewer.AdminLoader.handleResult(AdminLoader.java:107)
	at org.openmicroscopy.shoola.env.data.events.DSCallAdapter.eventFired(DSCallAdapter.java:90)
	at org.openmicroscopy.shoola.env.data.views.BatchCallMonitor$1.run(BatchCallMonitor.java:124)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
	at java.awt.EventQueue.access$400(EventQueue.java:82)
	at java.awt.EventQueue$2.run(EventQueue.java:676)
	at java.awt.EventQueue$2.run(EventQueue.java:674)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Abnormal termination due to an uncaught exception.
java.lang.NullPointerException
	at pojos.ExperimenterData.getGroups(ExperimenterData.java:202)
	at pojos.ExperimenterData.isActive(ExperimenterData.java:280)
	at org.openmicroscopy.shoola.agents.treeviewer.util.TreeCellRenderer.setIcon(TreeCellRenderer.java:646)
	at org.openmicroscopy.shoola.agents.treeviewer.util.TreeCellRenderer.getTreeCellRendererComponent(TreeCellRenderer.java:741)
	at javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler.getNodeDimensions(BasicTreeUI.java:2718)
	at javax.swing.tree.AbstractLayoutCache.getNodeDimensions(AbstractLayoutCache.java:475)
	at javax.swing.tree.VariableHeightLayoutCache$TreeStateNode.updatePreferredSize(VariableHeightLayoutCache.java:1342)
	at javax.swing.tree.VariableHeightLayoutCache.createNodeAt(VariableHeightLayoutCache.java:764)
	at javax.swing.tree.VariableHeightLayoutCache.treeNodesInserted(VariableHeightLayoutCache.java:473)
	at javax.swing.plaf.basic.BasicTreeUI$Handler.treeNodesInserted(BasicTreeUI.java:3795)
	at javax.swing.tree.DefaultTreeModel.fireTreeNodesInserted(DefaultTreeModel.java:499)
	at javax.swing.tree.DefaultTreeModel.nodesWereInserted(DefaultTreeModel.java:296)
	at javax.swing.tree.DefaultTreeModel.insertNodeInto(DefaultTreeModel.java:223)
	at org.openmicroscopy.shoola.agents.treeviewer.browser.BrowserUI.buildTreeNode(BrowserUI.java:1121)
	at org.openmicroscopy.shoola.agents.treeviewer.browser.BrowserUI.setLeavesViews(BrowserUI.java:2092)
	at org.openmicroscopy.shoola.agents.treeviewer.browser.BrowserComponent.setExperimenters(BrowserComponent.java:2091)
	at org.openmicroscopy.shoola.agents.treeviewer.AdminLoader.handleResult(AdminLoader.java:107)
	at org.openmicroscopy.shoola.env.data.events.DSCallAdapter.eventFired(DSCallAdapter.java:90)
	at org.openmicroscopy.shoola.env.data.views.BatchCallMonitor$1.run(BatchCallMonitor.java:124)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
	at java.awt.EventQueue.access$400(EventQueue.java:82)
	at java.awt.EventQueue$2.run(EventQueue.java:676)
	at java.awt.EventQueue$2.run(EventQueue.java:674)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0"

	at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.showErrorDialog(UserNotifierImpl.java:191)
	at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:291)
	at org.openmicroscopy.shoola.env.AbnormalExitHandler.doTermination(AbnormalExitHandler.java:147)
	at org.openmicroscopy.shoola.env.AbnormalExitHandler.terminate(AbnormalExitHandler.java:85)
	at org.openmicroscopy.shoola.env.AWTExceptionHanlder.handle(AWTExceptionHanlder.java:99)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at java.awt.EventDispatchThread.handleException(EventDispatchThread.java:412)
	at java.awt.EventDispatchThread.processException(EventDispatchThread.java:318)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:312)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Change History (8)

comment:1 Changed 10 years ago by jburel

  • Cc ux@… added; jmoore jamoore jmoore pwalczysko removed
  • Description modified (diff)
  • Milestone changed from Unscheduled to 5.0.3

comment:2 Changed 10 years ago by pwalczysko

  • Description modified (diff)
  • Milestone changed from 5.0.3 to 5.0.2

comment:3 Changed 10 years ago by pwalczysko

@jburel : @bramalingam asked me to revise the ticket - I did not realise you have revised it yourself in between - that is why I changed the Milestone - change back to 5.0.3 if you want, (although the DB is really irretrievably corrupted after this error).

comment:4 Changed 10 years ago by jburel

  • Owner changed from jburel to dlindner

Dominik: could you have a look at that one?

comment:5 Changed 10 years ago by dlindner

This would at least fix the NPE being thrown: https://github.com/dominikl/openmicroscopy/tree/delete_user_bug

But the underlying problem still exists: The described scenario could leave users without default group behind, which causes problems in other parts. Allow/Disable? group deletion in this case? Delete affected users as well?

Deletion of users, which have been logged in before: Just speculating, I guess after once being logged in, there are some db references to this user, so deletion from db is impossible. What to do, fiddling out all possible db references or just somehow just hide 'deleted' users?

comment:6 Changed 10 years ago by pwalczysko

@dlindner: You cannot delete a user in omero at all. That was always the case. Always forbidden. I would suggest to stick to the behaviour which is indicated by the contextual right-click menu = do not allow neither of the delete actions described in this ticket via Delete key just like it is the case with the contextual menu.
@jburel : Do I get it right ?

comment:7 Changed 10 years ago by jburel

Petr is right, the only action is to make a user inactive you cannot delete. The keys actions should match the ones of the contextual menu.

comment:8 Changed 10 years ago by dlindner

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.65868 sec.)

We're Hiring!