jenkinsci / salesforce-migration-assistant-plugin

Salesforce Migration Assistant plugin for Jenkins CI
https://plugins.jenkins.io/salesforce-migration-assistant-plugin/
MIT License
29 stars 15 forks source link

NoSuchMethodError from SMAGit #11

Closed gcoogle closed 7 years ago

gcoogle commented 7 years ago

I am receiving an error when using this plugin. It apparently occurs on line 206 in SMAGit. I have been unable to figure out how to resolve it. Any help is appreciated.

Here is the error output:

FATAL: org.eclipse.jgit.lib.ObjectReader.release()V
java.lang.NoSuchMethodError: org.eclipse.jgit.lib.ObjectReader.release()V
    at org.jenkinsci.plugins.sma.SMAGit.getBlob(SMAGit.java:206)
    at org.jenkinsci.plugins.sma.SMAGit.getUpdatedMetadata(SMAGit.java:144)
    at org.jenkinsci.plugins.sma.SMARunner.getPackageMembers(SMARunner.java:115)
    at org.jenkinsci.plugins.sma.SMABuilder.perform(SMABuilder.java:68)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
    at hudson.model.Build$BuildExecution.build(Build.java:205)
    at hudson.model.Build$BuildExecution.doRun(Build.java:162)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
    at hudson.model.Run.execute(Run.java:1738)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
Finished: FAILURE

Specifications: BitBucket Test Region with Git Jenkins Test Region Salesforce Sandbox

gcoogle commented 7 years ago

@aesanch2, Would you be able to help with this please? I'd really appreciate it.

aesanch2 commented 7 years ago

@Coogie7 I was able to reproduce this on one of my instances. Looks like an issue with the version of JGit the plugin is using. I'll update it and release the fix later today.

aesanch2 commented 7 years ago

@Coogie7 before I package up the release, would you mind testing it? I've attached a zip containing the .hpi file for this test build.

You can install it via Manage Jenkins -> Manage Plugins -> Advanced -> Upload salesforce-migration-assistant-plugin.zip

gcoogle commented 7 years ago

@aesanch2, Sure, I'll test it and get back to you.

gcoogle commented 7 years ago

@aesanch2,

I can confirm the error no longer occurs and I was able to run it sucessfully.

I also noticed that even if we are running the job and no changes are detected, an empty deployment is still run in the destination Salesforce org. It shows up under "Deployment Status" in Salesforce. Is this intended?

aesanch2 commented 7 years ago

@Coogie7 yes that is correct.

All of the deployments will show up in that menu on Salesforce.

gcoogle commented 7 years ago

If no differences are detected between the instance and the code, I would think the deployment would be aborted and no deployment triggered. Why wouldn't it work like that?

aesanch2 commented 7 years ago

@Coogie7 just to be clear, the plugin doesn't detect differences between the Salesforce instance itself and the code in Git; only differences in the repository between two commits are used to determine what to deploy to Salesforce.

Either the diff that was done between the commit that triggered the build for that project and the project's previous successful build commit was the same sha, or the diff did not contain any supported metadata - these would probably be the only scenarios in which you are seeing an empty deployment.

That being said, what you're suggesting isn't a bad idea. I could see the merit in not performing a wasted deployment if what the diff generated was meaningless. I just implemented it the way it currently because I wanted the build status in Jenkins to be as reflective as possible of the deployment status in Salesforce.

sreejaptfa commented 5 years ago

Hi, I still face the same issue. Here is the error: FATAL: org.eclipse.jgit.lib.ObjectReader.release()V java.lang.NoSuchMethodError: org.eclipse.jgit.lib.ObjectReader.release()V at org.jenkinsci.plugins.sma.SMAGit.getBlob(SMAGit.java:206) at org.jenkinsci.plugins.sma.SMAGit.getAllMetadata(SMAGit.java:240) at org.jenkinsci.plugins.sma.SMARunner.getPackageMembers(SMARunner.java:110) at org.jenkinsci.plugins.sma.SMABuilder.perform(SMABuilder.java:68) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744) at hudson.model.Build$BuildExecution.build(Build.java:206) at hudson.model.Build$BuildExecution.doRun(Build.java:163) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504) at hudson.model.Run.execute(Run.java:1798) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429)

We have git version 1.8.3.1 on our Jenkins instance. Is JGit mandatory to use this plugin ? Please advise.

Raushansingh184 commented 4 years ago

Hi, I am not sure if the updated plugin has worked for anyone. When i installed the plugin from Jenkins, I was receiving the "Build Failed" error and when I installed the above-mentioned Plugin(from Comment section), the deployment is taking place but no components are going to the destination org. Any help will be appreciated.