0
votes

I am new to Jenkins, and regardless of where I try to check code out from (Git, SVN, etc.), I receive the errors below. I am using Jenkins 1.514 on Tomcat 6.0.37 with oracle JDK 1.7.0_25, and receiving the errors below.

I have downloaded and configured the pertinent plugins, and the check connection tests succeed, so I know that the Jenkins is able to communicate with the repository servers.

I have configured Jenkins to use the same version of Java (1.6), Maven (3.0.5), and Ant (1.9.1) to build my projects locally and on the remote server where Jenkins resides. However, I do not think the build is ever downloading the code.

What am I doing wrong? Could this be some sort of issue with the JDK I am using to start the Tomcat server where Jenkins is running?

Thanks, Sean

The build fails with the following info being sent to the console:

FATAL: (class: org/apache/commons/codec/binary/Base64OutputStream, method: signature: (Ljava/io/OutputStream;ZI[B)V) Incompatible argument to function FATAL: (class: org/apache/commons/codec/binary/Base64OutputStream, method: signature: (Ljava/io/OutputStream;ZI[B)V) Incompatible argument to function Finished: null

The log file says:

Jul 16, 2013 2:17:31 PM hudson.model.listeners.RunListener report WARNING: RunListener failed java.lang.NullPointerException at hudson.model.PermalinkProjectAction$Permalink$3.apply(PermalinkProjectAction.java:134) at jenkins.model.PeepholePermalink$RunListenerImpl.onCompleted(PeepholePermalink.java:194) at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:199) at hudson.model.Run.execute(Run.java:1625) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:241)

Jul 16, 2013 2:17:31 PM hudson.model.Run onEndBuilding WARNING: McWebAccessWS #7: No build result is set, so marking as failure. This shouldn't happen. Jul 16, 2013 2:17:31 PM hudson.model.Executor run SEVERE: Executor threw an exception java.lang.VerifyError: (class: org/apache/commons/codec/binary/Base64OutputStream, method: signature: (Ljava/io/OutputSt ream;ZI[B)V) Incompatible argument to function at hudson.console.ConsoleNote.encodeToBytes(ConsoleNote.java:180) at hudson.console.ConsoleNote.encodeTo(ConsoleNote.java:158) at hudson.util.StreamTaskListener.annotate(StreamTaskListener.java:157) at hudson.util.StreamTaskListener._error(StreamTaskListener.java:132) at hudson.util.StreamTaskListener.fatalError(StreamTaskListener.java:149) at hudson.model.Run.handleFatalBuildProblem(Run.java:1659) at hudson.model.Run.execute(Run.java:1605) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:241)

3

3 Answers

3
votes

Let's get really, really simple:

  • Jenkins has its own built in Application servlet. Let's try that, and eliminate any complexity due to Tomcat.
  • Jenkins should come with built in Subversion plugin. I don't know if the Git plugin is built in or not.
  • Jenkins installs its tools from the Manage Jenkins->Configure System. It installs the tools under JENKINS_HOME directory. We'll do that.

Shut down Jenkins. and try running it directory from the command line:

$ java -jar jenkins.jar

Take the default Jenkins home (which I believe is .jenkins) and the default port (8080). We're just trying to get everything setup.

  • Don't install any plugins. Don't install any security. We're just trying to get Jenkins to do a checkout now.

  • If you can get Jenkins up and running, it's time to setup a test job. The only thing this job will do is a checkout, and it will checkout only when you press the Build button. One thing at a time, let's try to get the checkout working. Use a Subversion project first. The Subversion.

  • Click on New Job. Create a job. Give the job a name and make it a Free Style job. One thing at a time.

  • In the New Job, go to Source Code Management and select Subversion. Put in the full repository URL to a project. Make sure *Local Module Directory is ., Infinity is selected, and the defaults are taken.

If Subversion cannot find the repository, it will give you an error. If it can't log in, it will give you a link below the URL box. Click on that link and give the login.

  • Save the job. This job will only checkout and will only do the check when requested. One step at a time.

  • Now, go to the job you just created and click on the Build button. It should give you a Build # that's building. Click on that build number. Now click on the Console Output and see if the checkout is working.

Make sure the checkout worked. It it doesn't, does anything display on the Console Output It should display something like this:

Started by an anonymous
Building in workspace /opt/.jenkins/jobs/test/workspace
Checking out http://svn.mycorp.com/svn/trunk/project at revision '2013-07-03T11:48:44.326 -0500'
(Checkout)

If it doesn't work. Update your question with the output of your Console Output. This is actually more important than the Tomcat log.

0
votes

This turned out to be a typical user error on my part. I am using the Serena Dimensions plugin, and the plugin requires some Serena-specific jar files to be copied to jenkins' WEB-INF/lib.

Well, I copied the required jars and inadvertently copied one additional: commons-codec-1.3.jar. This is a problem because commons-codec-1.6.jar is already present in WEB-INF/lib; so since the 1.3 version was picked up higher in the classpath, other classes needing v1.6 Base64OutputStream got the v1.3 instead, throwing the errors above.

Stupid Tax is painful sometimes. Hope this helps someone else.

  • Sean
0
votes

Note there is related https://issues.jenkins-ci.org/browse/JENKINS-19643 and as SeanLon11 wrote this is caused by incompatible versions of commons-codec (Tomcat container / Jenkins / plugins / swarm client for slave nodes).