microsoft / team-explorer-everywhere

Team Explorer Everywhere Plugin for Eclipse
Other
300 stars 97 forks source link

Eclipse 2018-12: Error running view history - NullPointerException (because of the TableTreeViewer) #290

Closed IvanBaricic closed 4 years ago

IvanBaricic commented 5 years ago

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)

IvanBaricic commented 5 years ago

Platform log

Caused by: java.lang.NoClassDefFoundError: org/eclipse/jface/viewers/TableTreeViewer .log

IvanBaricic commented 5 years ago

Hint: Platform Plug-in Developer Guide

https://help.eclipse.org/2018-12/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fporting%2Fremovals.html&resultof=%22tabletreeviewer%22%20%22tabletreeview%22%20

API removals in the Eclipse 4.10 release

The org.eclipse.jface.viewers.TableTreeViewer class is deprecated since Eclipse 3.1 and has been replaced by TreeViewer.

IvanBaricic commented 5 years ago

API removals in the Eclipse 4.10 release

https://help.eclipse.org/2018-12/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fporting%2Fremovals.html&cp=2_3_0&anchor=icontextcomputer

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.

sigint76 commented 5 years ago

Have someone found a possible solution?

IvanBaricic commented 5 years ago

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?

sigint76 commented 5 years ago

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 .

mrluglio commented 5 years ago

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.

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

mpenningroth commented 5 years ago

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)

chilliger commented 5 years ago

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?

mrluglio commented 5 years ago

Why did you not create a pull request to fix that?

ok, where can I do it? I never tried ...

eric-milles commented 5 years ago

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?

lp-pt commented 5 years ago

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...

IvanBaricic commented 5 years ago

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!

eric-milles commented 5 years ago

How is this issue resolved exactly? I check for updates and no new TEE version.

lp-pt commented 5 years ago

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.

eric-milles commented 5 years ago

@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 commented 5 years ago

@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.

IvanBaricic commented 5 years ago

Sorry, I did not want to "close" this issue, .. I will reopen it again.

technoscavenger commented 5 years ago

@lp-pt, can you please submit a pull request? By the way, thanks for the .jar.gz, works on my machine.

lp-pt commented 5 years ago

Hi,

Problem detected with "Switch branch". TableViewer is not the best object for the job. I've changed TableView to TreeViewer.

com.microsoft.tfs.client.common.ui.jar.gz

phxjoe commented 5 years ago

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

lp-pt commented 5 years ago

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.

phxjoe commented 5 years ago

@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 commented 5 years ago

@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...

com.microsoft.tfs.client.common.ui.jar.gz

phxjoe commented 5 years ago

@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 commented 5 years ago

@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...

lp-pt commented 5 years ago

@phxjoe I bet that will work now! :) I made some deep changes and some, not so deep, tests.

com.microsoft.tfs.client.common.ui.jar.gz

ar996 commented 5 years ago

Works fine, Thanks a lot

phxjoe commented 5 years ago

@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.

cniweb commented 5 years ago

When will the next official build appear?

eric-milles commented 5 years ago

This patch can be applied to fix the 3 classes that use TableTreeViewer: TableTreeViewer.zip

cniweb commented 5 years ago

How is this issue resolved official exactly?

flueb commented 5 years ago

Still no official fix?

daleclements commented 5 years ago

Still no official fix?

The project is no longer maintained according the the ReadMe, so I don't think there will be one