Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 241927

Summary: Errors when starting gEclipse with opened data stager
Product: z_Archived Reporter: Szymon Mueller <mael>
Component: GeclipseAssignee: Mathias Stümpert <mathias.stuempert>
Status: CLOSED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: aog-ecl, sxenos
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description Szymon Mueller CLA 2008-07-24 04:00:27 EDT
To reproduce:
1. Open any data stagers.
2. Leave the file opened in editor.
3. Restart gEclipse.

All gria projects disappear and following exception is thrown:

java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at uk.ac.soton.itinnovation.grid.comms.client.RemoteResourceProxy.getHelpers(RemoteResourceProxy.java:102)
at uk.ac.soton.itinnovation.grid.comms.client.RemoteResourceProxy.createConv(RemoteResourceProxy.java:161)
at uk.ac.soton.ecs.iam.grid.client.staterepos.AbstractStateRepository.instantiateObject(AbstractStateRepository.java:210)
at uk.ac.soton.ecs.iam.grid.client.staterepos.AbstractStateRepository.getOrCreateObject(AbstractStateRepository.java:236)
at eu.geclipse.efs.gria.GriaStore.getDataConversation(GriaStore.java:278)
at eu.geclipse.efs.gria.GriaStore.fetchInfo(GriaStore.java:147)
at eu.geclipse.core.filesystem.internal.filesystem.GEclipseFileStore.fetchInfo(GEclipseFileStore.java:332)
at org.eclipse.core.filesystem.provider.FileStore.fetchInfo(FileStore.java:275)
at org.eclipse.core.internal.localstore.FileSystemResourceManager.read(FileSystemResourceManager.java:598)
at org.eclipse.core.internal.resources.File.getContents(File.java:287)
at org.eclipse.core.internal.resources.File.getContents(File.java:276)
at org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer.setDocumentContent(ResourceTextFileBuffer.java:514)
at org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer.initializeFileBufferContent(ResourceTextFileBuffer.java:269)
at org.eclipse.core.internal.filebuffers.ResourceFileBuffer.create(ResourceFileBuffer.java:245)
at org.eclipse.core.internal.filebuffers.TextFileBufferManager.connect(TextFileBufferManager.java:109)
at org.eclipse.ui.editors.text.TextFileDocumentProvider.createFileInfo(TextFileDocumentProvider.java:553)
at org.eclipse.ui.editors.text.TextFileDocumentProvider.connect(TextFileDocumentProvider.java:472)
at org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:3931)
at org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:190)
at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.doSetInput(AbstractDecoratedTextEditor.java:1225)
at org.eclipse.ui.editors.text.TextEditor.doSetInput(TextEditor.java:168)
at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:2994)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:369)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:313)
at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:758)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:755)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2451)
at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3012)
at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3039)
at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:794)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:643)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:263)
at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1405)
at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:939)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:797)
at org.eclipse.ui.internal.Workbench$25.runWithException(Workbench.java:1342)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2309)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
Caused by: uk.ac.soton.ecs.iam.grid.utils.CantCreateImplementation: Failed to instantiate class uk.ac.soton.ecs.iam.grid.comms.client.AxisTransport
at uk.ac.soton.ecs.iam.grid.utils.ImplementationFactory.instanceFromConstructor(ImplementationFactory.java:187)
at uk.ac.soton.ecs.iam.grid.utils.ImplementationFactory.instantiateObject(ImplementationFactory.java:105)
at uk.ac.soton.ecs.iam.grid.utils.ImplementationFactory.getSingletonInstance(ImplementationFactory.java:150)
at uk.ac.soton.ecs.iam.grid.utils.ImplementationFactory.getSingletonInstance(ImplementationFactory.java:62)
at uk.ac.soton.itinnovation.grid.comms.client.BaseRemoteResource.<clinit>(BaseRemoteResource.java:80)
... 73 more
Caused by: java.lang.RuntimeException: Cannot find security configuration file crypto.properties in classpath
at uk.ac.soton.ecs.iam.grid.comms.client.AbstractTransport.<init>(AbstractTransport.java:126)
at uk.ac.soton.ecs.iam.grid.comms.client.AxisTransport.<init>(AxisTransport.java:80)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at uk.ac.soton.ecs.iam.grid.utils.ImplementationFactory.instanceFromConstructor(ImplementationFactory.java:177)
... 77 more
Caused by: java.util.MissingResourceException: Can't find bundle for base name crypto, locale pl_PL
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at uk.ac.soton.ecs.iam.grid.comms.client.AbstractTransport.<init>(AbstractTransport.java:99)
... 83 more

and 3 times exception similar to this:

java.lang.NoClassDefFoundError: uk.ac.soton.itinnovation.grid.comms.client.BaseRemoteResource
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
at uk.ac.soton.itinnovation.grid.comms.client.RemoteResourceProxy.getHelpers(RemoteResourceProxy.java:101)
at uk.ac.soton.itinnovation.grid.comms.client.RemoteResourceProxy.createConv(RemoteResourceProxy.java:161)
at uk.ac.soton.ecs.iam.grid.client.staterepos.AbstractStateRepository.instantiateObject(AbstractStateRepository.java:210)
at uk.ac.soton.ecs.iam.grid.client.staterepos.AbstractStateRepository.instantiateObject(AbstractStateRepository.java:231)
at uk.ac.soton.ecs.iam.grid.client.staterepos.AbstractStateRepository.getOrCreateObject(AbstractStateRepository.java:251)
at uk.ac.soton.ecs.iam.grid.client.staterepos.FileStateRepository.importSavedInternal(FileStateRepository.java:153)
at uk.ac.soton.ecs.iam.grid.client.staterepos.FileStateRepository.importSaved(FileStateRepository.java:96)
at uk.ac.soton.ecs.iam.grid.client.staterepos.FileStateRepository.<init>(FileStateRepository.java:79)
at eu.geclipse.gria.vo.GriaVirtualOrganization.<init>(GriaVirtualOrganization.java:66)
at eu.geclipse.gria.vo.GriaVoCreator.create(GriaVoCreator.java:70)
at eu.geclipse.core.internal.model.AbstractGridElementManager.create(AbstractGridElementManager.java:102)
at eu.geclipse.core.internal.model.VoManager.loadElements(VoManager.java:137)
at eu.geclipse.core.internal.model.VoManager.<init>(VoManager.java:65)
at eu.geclipse.core.internal.model.VoManager.getManager(VoManager.java:78)
at eu.geclipse.core.internal.model.GridProject.loadProjectProperties(GridProject.java:316)
at eu.geclipse.core.internal.model.GridProject.<init>(GridProject.java:86)
at eu.geclipse.core.internal.model.GridProjectCreator.create(GridProjectCreator.java:54)
at eu.geclipse.core.model.impl.AbstractGridContainer.create(AbstractGridContainer.java:178)
at eu.geclipse.core.model.impl.ResourceGridContainer.fetchChildren(ResourceGridContainer.java:146)
at eu.geclipse.core.model.impl.ResourceGridContainer.<init>(ResourceGridContainer.java:62)
at eu.geclipse.core.internal.model.GridRoot.<init>(GridRoot.java:57)
at eu.geclipse.core.internal.model.GridRoot.getInstance(GridRoot.java:72)
at eu.geclipse.core.model.GridModel.getRoot(GridModel.java:95)
at eu.geclipse.ui.views.GridProjectView.getRootElement(GridProjectView.java:193)
at eu.geclipse.ui.views.GridModelViewPart.initViewer(GridModelViewPart.java:436)
at eu.geclipse.ui.views.GridModelViewPart.createPartControl(GridModelViewPart.java:93)
at eu.geclipse.ui.views.GridProjectView.createPartControl(GridProjectView.java:72)
at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:370)
at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:227)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:299)
at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:531)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:179)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:400)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:668)
at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:576)
at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:563)
at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:270)
at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:931)
at org.eclipse.ui.internal.WorkbenchPage.onActivate(WorkbenchPage.java:2497)
at org.eclipse.ui.internal.WorkbenchWindow$23.run(WorkbenchWindow.java:2837)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
at org.eclipse.ui.internal.WorkbenchWindow.setActivePage(WorkbenchWindow.java:2818)
at org.eclipse.ui.internal.WorkbenchWindow$17.runWithException(WorkbenchWindow.java:2135)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296)
at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:797)
at org.eclipse.ui.internal.Workbench$25.runWithException(Workbench.java:1342)
at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2309)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
at org.eclipse.equinox.launcher.Main.main(Main.java:1144)

After closing the data stager in the editor and restarting gEclipse projects are again there.
Comment 1 Harald Kornmayer CLA 2008-07-24 04:34:11 EDT
Not sure if it is core or gria data stager related.
Mathias??
Comment 2 Ariel Garcia CLA 2008-07-24 06:07:24 EDT
I can reproduce it. Strange:

Caused by: java.lang.RuntimeException: Cannot find security configuration file
crypto.properties in classpath
at
uk.ac.soton.ecs.iam.grid.comms.client.AbstractTransport.<init>(AbstractTransport.java:126)
(...)
Caused by: java.util.MissingResourceException: Can't find bundle for base name
crypto, locale pl_PL

uhuhu... (same for me with "locale en_US"!!)
Comment 3 Szymon Mueller CLA 2008-07-24 07:33:36 EDT
I debugged it and can give some explanation why this is happening:
1. During startup text editor tries to open the data stager file. 
2. This triggers fetching the info from the GriaStore. 
3. The fetchInfo() method tries to create DataConversation item ( using repository.getOrCreateObject(...) ), which fails because no token is yet created.

I tried to run authentication at the start of fetchInfo(), but it results in a token request at gEclipse startup, and file is not opened anyway. This behavior is similar to Bug #241930 for srm and gsiftp. So more general approach is needed for usecase when gEclipse is starting with opened remote file in the text editor.
Comment 4 Mathias Stümpert CLA 2008-07-25 03:45:21 EDT
1) The GRIA related parts of this bug will be completely replaced by the new GRIA AAI stuff, so we have to check again afterwards (hopefully today).

2) The new GRIA AAI will nevertheless not solve the problem with authentication at startup. Nevertheless, of course if I leave a remote thingy open when closing g-Eclipse I should be aware of the fact the I have to go online again at startup. So at least this is not show-stopper here for me and we have to investigate how much work (arounds) is needed in order to fix it. If it turns out to be too complicated I vote for leaving it as is.
Comment 5 Ariel Garcia CLA 2008-07-25 07:20:13 EDT
> The new GRIA AAI will nevertheless not solve the problem with
> authentication at startup

having an auth request at startup would be fine for me if i know a remote file has to be opened... but:

i would probably make sense to force closing all remote editors at shutdown time anyways, it is somehow "cleaner" and more performant than allowing the user keep many remote files open...
i don't know how feasible that would be. And of course if g/eclipse crashes we could still have the same issue...
Comment 6 Mathias Stümpert CLA 2008-07-28 11:35:07 EDT
Some more observation on this:

1) When restarting g-Eclipse with an open GRIA file the problem is not only that the file is not displayed and the above mention exception is thrown but additionally the project view is empty, i.e. the projects do not show up.

2) When restarting g-Eclipse with another connection like gsiftp a token is requested but the file is not opened. The editor then shows an error message like "File [...] does not exist".

Conclusion: We need a general solution for this problem, it is not GRIA specific!
Comment 7 Mathias Stümpert CLA 2008-09-04 10:08:45 EDT
*** Bug 241930 has been marked as a duplicate of this bug. ***
Comment 8 Mathias Stümpert CLA 2008-09-04 10:37:29 EDT
With the change to Ganymede the behaviour with open remote files seems to have changed slightly. Now when Eclipse is closed with a file opened in an editor the editor caches the file locally (temporarily) in order to save its state. That means that the file is copied to the hard disk at shutdown time which does not make any sense for us. So instead of improving their handling with remote files they just made things worse.

Keeping this bug up to date as I (hopefully) make some progress towards a solution.
Comment 9 Stefan Xenos CLA 2015-10-12 22:47:55 EDT
It's possible the root cause may be bug 479475.
Comment 10 Stefan Xenos CLA 2015-10-12 22:50:56 EDT
Actually, I'll optimistically mark this as a dupe. Please reopen if it recurs after the fix for bug 479475 goes in.

*** This bug has been marked as a duplicate of bug 479475 ***