HiromuHota / pdi-git-plugin

SpoonGit allows you to manage versions of local Kettle files without leaving Spoon. In addition to Git, Subversion is also supported.
Apache License 2.0
29 stars 12 forks source link

Error "Unable to open GitSpoon project 'path/to/project' when first executing a job/transformation in spoon #37

Open anagonzalez133 opened 4 years ago

anagonzalez133 commented 4 years ago

I'm using Matt Casters Kettle-REMIX PDI file which includes the PDI-Git plugin and his own Environment plugin (it's a deployment of PDI 8.2.0.7-719 with some more plugins added). When I inform in an Environment the field Spoongit project pointing to one of my local git repositories, and use that Environment to execute something in Spoon, the first time I execute anything in Spoon I get an error message at the beginning of the Execution in Spoon log panel, though the error doesn't affect the execution, everything works as expected.

The complete error message is this: 2020/01/16 17:25:51 - GUI - ERROR (version 8.2.0.7-719, build 8.2.0.7-719 from 2019-06-27 12.22.51 by kettle) : Unable to open GitSpoon project '/path/to/my/git/repository' 2020/01/16 17:25:51 - GUI - ERROR (version 8.2.0.7-719, build 8.2.0.7-719 from 2019-06-27 12.22.51 by kettle) : java.lang.reflect.InvocationTargetException 2020/01/16 17:25:51 - GUI - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2020/01/16 17:25:51 - GUI - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 2020/01/16 17:25:51 - GUI - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 2020/01/16 17:25:51 - GUI - at java.lang.reflect.Method.invoke(Method.java:498) 2020/01/16 17:25:51 - GUI - at org.kettle.env.util.EnvironmentUtil.loadSpoonGitRepository(EnvironmentUtil.java:207) 2020/01/16 17:25:51 - GUI - at org.kettle.env.util.EnvironmentUtil.enableEnvironment(EnvironmentUtil.java:108) 2020/01/16 17:25:51 - GUI - at org.kettle.env.xp.SpoonStartEnvironmentPrompt.callExtensionPoint(SpoonStartEnvironmentPrompt.java:78) 2020/01/16 17:25:51 - GUI - at org.pentaho.di.core.extension.ExtensionPointMap.callExtensionPoint(ExtensionPointMap.java:151) 2020/01/16 17:25:51 - GUI - at org.pentaho.di.core.extension.ExtensionPointHandler.callExtensionPoint(ExtensionPointHandler.java:45) 2020/01/16 17:25:51 - GUI - at org.pentaho.di.ui.spoon.Spoon.start(Spoon.java:9175) 2020/01/16 17:25:51 - GUI - at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:707) 2020/01/16 17:25:51 - GUI - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2020/01/16 17:25:51 - GUI - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 2020/01/16 17:25:51 - GUI - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 2020/01/16 17:25:51 - GUI - at java.lang.reflect.Method.invoke(Method.java:498) 2020/01/16 17:25:51 - GUI - at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92) 2020/01/16 17:25:51 - GUI - Caused by: java.lang.NullPointerException 2020/01/16 17:25:51 - GUI - at org.pentaho.di.git.spoon.GitController.openGit(GitController.java:234) 2020/01/16 17:25:51 - GUI - at org.pentaho.di.git.spoon.GitSpoonMenuController.openRepo(GitSpoonMenuController.java:90) 2020/01/16 17:25:51 - GUI - at org.pentaho.di.git.spoon.GitPerspective.openRepository(GitPerspective.java:213) 2020/01/16 17:25:51 - GUI - ... 16 more

I'm using Ubuntu 16.04 and I have also the same problem in a VM running Ubuntu 18.04.

HiromuHota commented 4 years ago

Thank you for reporting this. I was able to reproduce it. It is not a bug, but I'd say SpoonGit and Environment are not well-integrated. Let me think how I can address this.

HiromuHota commented 4 years ago

Unable to open GitSpoon project '/path/to/my/git/repository' implies that you used a path for a git project name. Actually, you are supposed to choose a git project out of a drop-down list instead of typing a path.

Even if you choose a git project out of a given list, you will get an error, though. The drop-down list shows a list of git projects in the current environment, not the one you are editting. Therefore, as a work-around, you can type a git project name that exists in the environment you are editing and switching to.

To explain more details, each environment has a different metastore, and each metastore manages a different list of git projects.

HiromuHota commented 4 years ago

Just for the record, the version of SpoonGit you are using is 1.1.0-SNAPSHOT, compiled on Dec. 19, 2018. Correct me if I'm wrong.

anagonzalez133 commented 4 years ago

Sorry for the delay, yesterday couldn't look into this. Yes, I'm using the 1.1.0-SNAPSHOT version of SpoonGit. About choosing the git project from a drop-down list... my bad, I was setting this up in the reverse order. I've been checking out the SpoonGit plugin after setting up environments and getting a handle on them, so I set up the directory in the Environment directly and then went to the Git perspective to take a look at how it worked, so I created the project after informing in the environment the SpoonGit project as a path to a git repository.

So the correct workflow should be:

  1. Open the Git Perspective and set up a new project to point to my Git (or SVN) working repository
  2. Edit the environment and select the SpoonGit project I have set up from the drop-down list.
HiromuHota commented 4 years ago

I'm glad you found a work-around.

However, I'd still say SpoonGit and Environment need to be better-integrated. It's never user-friendly if you have to follow a certain order of operations.