Bug #5420
closedTwo types of NPE issues when 2.2.0 installed and run by a non-admin windows user
0%
Description
In Windows XP I installed 2.2.0 using a non-admin user account and get NPEs when trying to do a component search or when clicking on the Sources button.
As background: during installation you're prompted as to which user you want to install as. I installed as this non-admin user, and since this user can't write to Program Files, I installed into a directory in this user's home dir (Documents and Settings\etc). Also, XP gives you an option to "protect my computer and data from unauthorized program activity" when installing -- I unchecked this, in hopes of avoiding any issues.
As this non-admin user, I also tried installing in a different way - when prompted on which user to install as, I installed into Program Files as an admin user. Surprisingly the two types of NPEs still occur.
When you try to do a Component Search, you get:
java.lang.NullPointerException
at org.kepler.gui.SimpleLibrarySearcher.search(SimpleLibrarySearcher.java:172)
at org.kepler.gui.ComponentLibraryTab$SearchButtonActionHandler.actionPerformed(ComponentLibraryTab.java:437)
at org.kepler.gui.SimpleSearchUIPane$1.actionPerformed(SimpleSearchUIPane.java:91)
at javax.swing.JTextField.fireActionPerformed(Unknown Source)
at javax.swing.JTextField.postActionEvent(Unknown Source)
at javax.swing.JTextField$NotifyAction.actionPerformed(Unknown Source)
at javax.swing.SwingUtilities.notifyAction(Unknown Source)
at javax.swing.JComponent.processKeyBinding(Unknown Source)
at javax.swing.JComponent.processKeyBindings(Unknown Source)
at javax.swing.JComponent.processKeyEvent(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.KeyboardFocusManager.redispatchEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(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$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.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)
When you click the Sources button, you get:
Could not create data pane.: null
null
java.lang.NullPointerException
at org.kepler.objectmanager.repository.RepositoryManager.<init>(RepositoryManager.java:129)
at org.kepler.objectmanager.repository.RepositoryManager.getInstance(RepositoryManager.java:242)
at org.kepler.gui.ComponentLibraryPreferencesTab.initializeTab(ComponentLibraryPreferencesTab.java:131)
at org.kepler.gui.PreferencesTabFactory.createPreferencesTabs(PreferencesTabFactory.java:115)
at org.kepler.gui.PreferencesFrame.initTabs(PreferencesFrame.java:126)
at org.kepler.gui.PreferencesFrame.<init>(PreferencesFrame.java:100)
at org.kepler.gui.PreferencesFrame.<init>(PreferencesFrame.java:75)
at org.kepler.gui.PreferencesAction.actionPerformed(PreferencesAction.java:92)
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$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.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)
Updated by Derik Barseghian over 13 years ago
David looked into this bug. I've pasted his assessment is below, essentially I managed to stumble on a bug that will be unlikely for normal users. This morning I did a few tests to verify his assessment. Since this bug is very unlikely to occur, I am marking it WONTFIX.
I think it really comes down our need to improve our configuration system, and I think bug#5129 has become the defacto bug for that.
----
This whole set of conditions is rather unlikely to come up for "normal users." For a normal user to replicate this error, they would have to do the following:
(1.) Install Kepler 2.2.
(2.) Run Kepler 2.2, but avoid using either the "Search Components" box to search for a workflow component or the "Sources" button.
(3.) Switch to Kepler 2.0, and use the "Search Components" box.
(4.) Switch back to Kepler 2.2 and use the "Search Components" box and the "Sources" button to get both errors you reported.
As you can see, this has nothing to do with Windows, permissions, or any of the rest of it. Further, it is going to be very rare for ordinary users to experience this. For ordinary users to experience this they would have to be of the sort that switched back and forth between Kepler 2.0 and Kepler 2.2 AFTER not only installing but also running Kepler 2.2 AND they would have to never have used the Search Components box in Kepler 2.2, meaning that they probably never constructed a workflow of any sort in Kepler 2.2, BUT they do use this same functionality in Kepler 2.0. It sounds rather unlikely to me. I would not be surprised if this bug was not replicated by a single user.
Now, it is possible to eliminate even the very rare possibility of this bug happening to ordinary users entirely by changing the design of the configuration system so that each release of Kepler has its own configuration area. But we have discussed this design before and decided against it.
I do not believe that this bug that is rarely likely to come up in practice (and which may not be able to be addressed without a significant design change to the configuration system) is a release blocker.
---