Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-4741

Subversion SCM Polling: notifyCommit post-commit hook only reads first line

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • subversion-plugin
    • None
    • Platform: All, OS: Linux

      we are using version 1.327

      Hi, we've been trying to setup SCM polling to alert hudson to changes in our
      subversion repos as documented in:
      http://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin

      It seems there's a bug in that the mechanism only reads the first line of the
      POST http body, thus only the first SVN url in the changeset will be compared
      against to determine what jobs are polled.

      We've setup some debug scripts to manually send notifies in the same way we'd
      trigger via a subversion post-commit hook, and are able to examine the data
      we're sending and verify that all the lines from our "svnlook changed" are being
      sent correctly in the request.

      Cranking up the debug output in hudson shows that the class handling the
      response is only reading in the first line. The file is
      SubversionRepositoryStatus.java found here:

      https://svn.dev.java.net/svn/hudson/trunk/hudson/plugins/subversion/src/main/java/hudson/scm/SubversionRepositoryStatus.java

      The relevant code:

      while((line=new BufferedReader(req.getReader()).readLine())!=null) {
      LOGGER.finer("Reading line: "+line);
      affectedPath.add(line.substring(4));
      }

      It seems the problem is the while loop, you can typically only invoke
      getReader() once per HTTPServletRequest, so moving it out of the loop should
      resolve the issue.

            Unassigned Unassigned
            fireresq fireresq
            Votes:
            5 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: