Closed IvanBaricic closed 4 years ago
Caused by: java.lang.NoClassDefFoundError: org/eclipse/jface/viewers/TableTreeViewer .log
The org.eclipse.jface.viewers.TableTreeViewer class is deprecated since Eclipse 3.1 and has been replaced by TreeViewer.
The org.eclipse.ui.help.IContextComputer class and dependent classes, i.e., org.eclipse.ui.help.WorkbenchHelp, DialogPageContextComputer and ViewContextComputer have been deleted. They were deprecated since 2002.
This class is used in package com.microsoft.tfs.client.common.ui.framework.help.ContextSensitiveHelp.
Have someone found a possible solution?
One must refactor the implementation of the history view, using the TreeViewer class.
No idea, whether someone does support this product since the last release in April 2018. I see here no commits since Juni 2018. Are there some new release plans there? Or should we considering moving our legacy TFS repositories to Git?
In my case the option to move to GIT is not feasible, at least in the next 6 months. I hope someone will fix asap.
Il giorno ven 1 feb 2019 alle ore 11:25 Ivan Baricic < notifications@github.com> ha scritto:
One must refactor the implementation of the history view, using the TreeViewer class.
No idea, whether someone does support this product since the last release in April 2018. I see here no commits since Juni 2018. Are there some new release plans there? Or should we considering moving our legacy TFS repositories to Git?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Microsoft/team-explorer-everywhere/issues/290#issuecomment-459676576, or mute the thread https://github.com/notifications/unsubscribe-auth/AAfzwik3VSev6-TaSCeH00XFLl3_63Zyks5vJBYPgaJpZM4Zdp7w .
I've found a (maybe temporary) solution for this issue. I'm using Eclipse TFS plugin 2010 but I think that this solution is applicable for version 14 also.
Open [eclipse]\plugins\com.microsoft.tfs.client.common.ui_*
Decompress com.microsoft.tfs.client.common.ui.jar in a folder.
Decompile /com/microsoft/tfs/client/common/ui/controls/vc/history/ HistoryTreeControl.class and HistoryTableTreeViewer.class.
Make a new java project in eclipse and add the two java class;
Edit HistoryTableTreeViewer: replace TableTreeViewer with org.eclipse.jface.viewers.TableViewer
Edit HistoryTreeControl: replace this.tableTreeViewer.getTableTree() to this.tableTreeViewer.getTable()
Add required imports (the minimum to let theese two files to compile):
Compile all;
Copy the generated classes files into com.microsoft.tfs.client.common.ui.jar (close eclipse if this file is locked)
Restart eclipse and test "View History"
I attach my edited jar for TFSEclipsePlugin-10.1.0.2011121402:
com.microsoft.tfs.client.common.ui.jar.gz
Sorry for my bad english.
MT
I didn't spend a whole lot of time on this. i tried the changes for version 14 and now i can see the changesets, but I cannot (yet) get to the details. There were other deprecated classes that have also been removed (org.eclipse.ui.help.WorkbenchHelp)
I've found a (maybe temporary) solution for this issue. I'm using Eclipse TFS plugin 2010 but I think that this solution is applicable for version 14 also.
* Open [eclipse]\plugins\com.microsoft.tfs.client.common.ui_* * Decompress com.microsoft.tfs.client.common.ui.jar in a folder. * Decompile /com/microsoft/tfs/client/common/ui/controls/vc/history/ HistoryTreeControl.class and HistoryTableTreeViewer.class. * Make a new java project in eclipse and add the two java class; * Edit HistoryTableTreeViewer: replace TableTreeViewer with org.eclipse.jface.viewers.TableViewer * Edit HistoryTreeControl: replace this.tableTreeViewer.getTableTree() to this.tableTreeViewer.getTable() * Add required imports (the minimum to let theese two files to compile): * com.microsoft.tfs.client.common.ui.jar (the original jar from [eclipse]\com.microsoft.tfs.client.common.ui_*) * com.microsoft.tfs.core.jar (from [eclipse]\plugins\com.microsoft.tfs.core_*) * org.eclipse.jface-*.jar * org.eclipse.swt-*.jar * org.eclipse.ui.workbench-*.jar * com.microsoft.tfs.client.common.jar (from [eclipse]\plugins\com.microsoft.tfs.client.common_*) * Compile all; * Copy the generated classes files into com.microsoft.tfs.client.common.ui.jar (close eclipse if this file is locked) * Restart eclipse and test "View History"
I attach my edited jar for TFSEclipsePlugin-10.1.0.2011121402:
com.microsoft.tfs.client.common.ui.jar.gz
Sorry for my bad english.
MT
Why did you not create a pull request to fix that?
Why did you not create a pull request to fix that?
ok, where can I do it? I never tried ...
From earlier comment, wasn't this just part of the overall required solution? Can anyone answer that if we created a pull request for this issue that it would get reviewed and merged quickly and it would be available through the update site?
Hi, I had some more problems. I was not able to switch branch. I followed mrluglio ideia and refactored all common.ui. Above all I commented WorkbenchHelp that existed only for legacy purposes, tableTreeViewer.expandAll() method (does not exist anymore) and made some more changes.
Compiled with Java 1.8. Plugin version 14.134.0.201804261732
Attached jar... com.microsoft.tfs.client.common.ui.jar.gz
Hope it helps...
Attached jar... com.microsoft.tfs.client.common.ui.jar.gz
Hope it helps...
Works great (with Eclipse 2018-12)! Thanks a lot for your effort!
How is this issue resolved exactly? I check for updates and no new TEE version.
How is this issue resolved exactly? I check for updates and no new TEE version.
Well, I think that IvanBaricic should not have closed this issue. I had several problems using the plugin with eclipse 2018-12. I really don't know if the development of this plugin is "dead", but I had two choices: a) Put all projects into git b) Try to make a fix I tried b). I grabbed the source and worked on it, just on the common.ui. What I did is in the previous post. I did not made any pull request, just compiled common.ui made a jar and put it here.
@lp-pt I have no problem with your efforts trying to fix -- or at least understand -- this issue. However, a plug-in jar linked here cannot safely be used by enterprise customers. We need Microsoft (or the repository owners) to make a fix or accept a pull request.
I have contacted the TFS support team in my company. Hopefully they will quickly escalate to Microsoft support rep.
@lp-pt I have no problem with your efforts trying to fix -- or at least understand -- this issue. However, a plug-in jar linked here cannot safely be used by enterprise customers. We need Microsoft (or the repository owners) to make a fix or accept a pull request.
I have contacted the TFS support team in my company. Hopefully they will quickly escalate to Microsoft support rep.
@eric-milles You asked and I answered. In my case I do not have time to wait for Microsoft's answers that usually take forever. When I have a problem I try to solve it...that was what I did. Solved my problem and maybe of many others. I just shared my solution that will probably be Microsoft's. I do not know if you noticed but you do not have to use it! I'm not a Microsoft employee and I do not have the time to do Microsoft's work. I hope microsoft hears you.
Sorry, I did not want to "close" this issue, .. I will reopen it again.
@lp-pt, can you please submit a pull request? By the way, thanks for the .jar.gz, works on my machine.
Hi,
Problem detected with "Switch branch". TableViewer is not the best object for the job. I've changed TableView to TreeViewer.
Hi @lp-pt, your latest jar does fix the Switch Branch for me, but now "View History" is broke again. Thank you for your efforts!
ERROR INFO:
An error has occurred. See error log for more details. org.eclipse.swt.widgets.TableItem cannot be cast to org.eclipse.swt.widgets.TreeItem
Hi @lp-pt, your latest jar does fix the Switch Branch for me, but now "View History" is broke again. Thank you for your efforts!
ERROR INFO:
An error has occurred. See error log for more details. org.eclipse.swt.widgets.TableItem cannot be cast to org.eclipse.swt.widgets.TreeItem
Are you using a Mac? I'm not able to make tests in Mac. If so, I can revert that. Changed to TreeItem because TableItem is deprecated.
@lp-pt I am on RedHat with the latest eclipse build 2019-03.
Edit -
I've reinstalled Eclipse Photon until this gets an official fix. Thanks for your help!
@lp-pt I am on RedHat with the latest eclipse build 2019-03.
Edit -
I've reinstalled Eclipse Photon until this gets an official fix. Thanks for your help!
It's a issue on the GTKPadding method...
Should be fine now...
@lp-pt I gave your jar another try, View History works from the folder/project level, but it fails at the file level. Switch Branch is working great.
@lp-pt I gave your jar another try, View History works from the folder/project level, but it fails at the file level. Switch Branch is working great.
Thank you for the report. I think I know what the problem is but I have not had time to solve it. Linux and Mac have specific methods related to padding issues but unfortunately I can not test on these platforms...unfortunately I am attached to Microsh***.
But I give it another shot when I had the time.
Regards...
@phxjoe I bet that will work now! :) I made some deep changes and some, not so deep, tests.
Works fine, Thanks a lot
@lp-pt That seemed to fix the issues I was having. Thanks. Hope your changes make it into the official build soon. Please commit them if you haven't.
When will the next official build appear?
This patch can be applied to fix the 3 classes that use TableTreeViewer: TableTreeViewer.zip
How is this issue resolved official exactly?
Still no official fix?
Still no official fix?
The project is no longer maintained according the the ReadMe, so I don't think there will be one
teamexplorer-plugin-2018.12.21-10.06.31.log
Plugin for Eclipse v.14.134.0.201804261732
2018-12-21 10:06:03,920 ERROR [main] (com.microsoft.tfs.client.eclipse.ui.actions.vc.ViewHistoryAction) Error running view history java.lang.NullPointerException at com.microsoft.tfs.client.common.ui.tasks.vc.ViewHistoryTask.run(ViewHistoryTask.java:61) at com.microsoft.tfs.client.eclipse.ui.actions.vc.ViewHistoryAction.doRun(ViewHistoryAction.java:50) at com.microsoft.tfs.client.common.ui.framework.action.ExtendedAction.run(ExtendedAction.java:58) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:250) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:568) at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:400) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4131) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1055) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3944) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3547) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:636) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:563) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:151) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) 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:659) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595) at org.eclipse.equinox.launcher.Main.run(Main.java:1501)