Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Component/s: email-ext-plugin
    • Labels:
      None
    • Environment:
      jenkins 1.477
      email-ext 2.24.1
    • Similar Issues:

      Description

      For sender i have "${EMAIL_VAR} User@domain.com" and have NPE.
      Probably problem appeared after upgrading to 2.24.1 and token plugin...
      Email was triggered for: Success
      Email was triggered for: Fixed
      Trigger Success was overridden by another trigger and will not send an email.
      Sending email for trigger: Fixed
      ERROR: Could not send email as a part of the post-build publishers.
      java.lang.NullPointerException
      at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
      at java.util.regex.Matcher.reset(Matcher.java:291)
      at java.util.regex.Matcher.<init>(Matcher.java:211)
      at java.util.regex.Pattern.matcher(Pattern.java:888)
      at hudson.plugins.emailext.plugins.ContentBuilder$Tokenizer.<init>(ContentBuilder.java:171)
      at hudson.plugins.emailext.plugins.ContentBuilder.replaceTokensWithContent(ContentBuilder.java:106)
      at hudson.plugins.emailext.plugins.ContentBuilder.replaceTokensWithContent(ContentBuilder.java:124)
      at hudson.plugins.emailext.plugins.ContentBuilder.transformText(ContentBuilder.java:88)
      at hudson.plugins.emailext.ExtendedEmailPublisher.getContent(ExtendedEmailPublisher.java:540)
      at hudson.plugins.emailext.ExtendedEmailPublisher.createMail(ExtendedEmailPublisher.java:363)
      at hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:273)
      at hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:265)
      at hudson.plugins.emailext.ExtendedEmailPublisher.perform(ExtendedEmailPublisher.java:225)
      at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36)
      at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:717)
      at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:692)
      at hudson.model.Build$BuildExecution.cleanUp(Build.java:192)
      at hudson.model.Run.execute(Run.java:1546)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:236)
      Finished: SUCCESS

        Attachments

          Activity

          integer Kanstantsin Shautsou created issue -
          integer Kanstantsin Shautsou made changes -
          Field Original Value New Value
          Description For sender i have "${EMAIL_VAR} User@domain.com" and have NPE.
          Probably problem appeared after upgrading to
          Email was triggered for: Success
          Email was triggered for: Fixed
          Trigger Success was overridden by another trigger and will not send an email.
          Sending email for trigger: Fixed
          ERROR: Could not send email as a part of the post-build publishers.
          java.lang.NullPointerException
          at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
          at java.util.regex.Matcher.reset(Matcher.java:291)
          at java.util.regex.Matcher.<init>(Matcher.java:211)
          at java.util.regex.Pattern.matcher(Pattern.java:888)
          at hudson.plugins.emailext.plugins.ContentBuilder$Tokenizer.<init>(ContentBuilder.java:171)
          at hudson.plugins.emailext.plugins.ContentBuilder.replaceTokensWithContent(ContentBuilder.java:106)
          at hudson.plugins.emailext.plugins.ContentBuilder.replaceTokensWithContent(ContentBuilder.java:124)
          at hudson.plugins.emailext.plugins.ContentBuilder.transformText(ContentBuilder.java:88)
          at hudson.plugins.emailext.ExtendedEmailPublisher.getContent(ExtendedEmailPublisher.java:540)
          at hudson.plugins.emailext.ExtendedEmailPublisher.createMail(ExtendedEmailPublisher.java:363)
          at hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:273)
          at hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:265)
          at hudson.plugins.emailext.ExtendedEmailPublisher.perform(ExtendedEmailPublisher.java:225)
          at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36)
          at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:717)
          at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:692)
          at hudson.model.Build$BuildExecution.cleanUp(Build.java:192)
          at hudson.model.Run.execute(Run.java:1546)
          at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
          at hudson.model.ResourceController.execute(ResourceController.java:88)
          at hudson.model.Executor.run(Executor.java:236)
          Finished: SUCCESS
          For sender i have "${EMAIL_VAR} User@domain.com" and have NPE.
          Probably problem appeared after upgrading to 2.24.1 and token plugin...
          Email was triggered for: Success
          Email was triggered for: Fixed
          Trigger Success was overridden by another trigger and will not send an email.
          Sending email for trigger: Fixed
          ERROR: Could not send email as a part of the post-build publishers.
          java.lang.NullPointerException
          at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
          at java.util.regex.Matcher.reset(Matcher.java:291)
          at java.util.regex.Matcher.<init>(Matcher.java:211)
          at java.util.regex.Pattern.matcher(Pattern.java:888)
          at hudson.plugins.emailext.plugins.ContentBuilder$Tokenizer.<init>(ContentBuilder.java:171)
          at hudson.plugins.emailext.plugins.ContentBuilder.replaceTokensWithContent(ContentBuilder.java:106)
          at hudson.plugins.emailext.plugins.ContentBuilder.replaceTokensWithContent(ContentBuilder.java:124)
          at hudson.plugins.emailext.plugins.ContentBuilder.transformText(ContentBuilder.java:88)
          at hudson.plugins.emailext.ExtendedEmailPublisher.getContent(ExtendedEmailPublisher.java:540)
          at hudson.plugins.emailext.ExtendedEmailPublisher.createMail(ExtendedEmailPublisher.java:363)
          at hudson.plugins.emailext.ExtendedEmailPublisher.sendMail(ExtendedEmailPublisher.java:273)
          at hudson.plugins.emailext.ExtendedEmailPublisher._perform(ExtendedEmailPublisher.java:265)
          at hudson.plugins.emailext.ExtendedEmailPublisher.perform(ExtendedEmailPublisher.java:225)
          at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36)
          at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:717)
          at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:692)
          at hudson.model.Build$BuildExecution.cleanUp(Build.java:192)
          at hudson.model.Run.execute(Run.java:1546)
          at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
          at hudson.model.ResourceController.execute(ResourceController.java:88)
          at hudson.model.Executor.run(Executor.java:236)
          Finished: SUCCESS
          Hide
          slide_o_mix Alex Earl added a comment -

          What are you expecting to happen? What is the value of ${EMAIL_VAR}?

          Show
          slide_o_mix Alex Earl added a comment - What are you expecting to happen? What is the value of ${EMAIL_VAR}?
          Hide
          integer Kanstantsin Shautsou added a comment -

          Just in ${var} just array of mails. "def@domain.com sdf@domain.com". This var is entered in global jenkins settings and space separated.

          Show
          integer Kanstantsin Shautsou added a comment - Just in ${var} just array of mails. "def@domain.com sdf@domain.com". This var is entered in global jenkins settings and space separated.
          Hide
          slide_o_mix Alex Earl added a comment -

          I have the exact same setup and don't have this issue. Can you upload an example config.xml for a job (scrubbed of any personal/company info) so I can see if there is anything amiss?

          Show
          slide_o_mix Alex Earl added a comment - I have the exact same setup and don't have this issue. Can you upload an example config.xml for a job (scrubbed of any personal/company info) so I can see if there is anything amiss?
          Hide
          integer Kanstantsin Shautsou added a comment -

          config

          Show
          integer Kanstantsin Shautsou added a comment - config
          integer Kanstantsin Shautsou made changes -
          Attachment config.xml [ 22474 ]
          Hide
          integer Kanstantsin Shautsou added a comment -

          This construction work ok in other jobs, but in this i not found reason of NPE.

          Show
          integer Kanstantsin Shautsou added a comment - This construction work ok in other jobs, but in this i not found reason of NPE.
          Hide
          slide_o_mix Alex Earl added a comment -

          Can you isolate on which token is causing the issue? I don't think its the item in the recipient list. It could be the FILE or ENV tokens.

          Show
          slide_o_mix Alex Earl added a comment - Can you isolate on which token is causing the issue? I don't think its the item in the recipient list. It could be the FILE or ENV tokens.
          Hide
          integer Kanstantsin Shautsou added a comment - - edited

          It seems i found the problem: i have input string parameter $hWorkspace + custom workspace set to this variable. Current workspace browser shows $JENKINS_HOME content, so i think something wrong with variables overload.

          Show
          integer Kanstantsin Shautsou added a comment - - edited It seems i found the problem: i have input string parameter $hWorkspace + custom workspace set to this variable. Current workspace browser shows $JENKINS_HOME content, so i think something wrong with variables overload.
          Hide
          integer Kanstantsin Shautsou added a comment -

          Hehe
          Job A has parametrized build plugin that executes Job B with variable WORKSPACE=$WORKSPACE, it's ok passed.
          Job B has input string $fWorkspace + custom workspace set to $fWorkspace (this variable wasn't passed to job B, but WORKSPACE was injected). After all i got in build.xml workspace = "/opt/jenkins" (it's $JENKINS_HOME). But, job B's shell execution work correctly with $WORKSPACE variable

          Show
          integer Kanstantsin Shautsou added a comment - Hehe Job A has parametrized build plugin that executes Job B with variable WORKSPACE=$WORKSPACE, it's ok passed. Job B has input string $fWorkspace + custom workspace set to $fWorkspace (this variable wasn't passed to job B, but WORKSPACE was injected). After all i got in build.xml workspace = "/opt/jenkins" (it's $JENKINS_HOME). But, job B's shell execution work correctly with $WORKSPACE variable
          Hide
          integer Kanstantsin Shautsou added a comment -

          So, there are 2 problems:
          1) how parametrized build plugin work with vars
          2) NPE on ${FILE, path="file_on_fs"} gives NPE if there file doesn't exist.

          Can you try reproduce/check on your jenkins 2) ?

          Show
          integer Kanstantsin Shautsou added a comment - So, there are 2 problems: 1) how parametrized build plugin work with vars 2) NPE on ${FILE, path="file_on_fs"} gives NPE if there file doesn't exist. Can you try reproduce/check on your jenkins 2) ?
          Hide
          slide_o_mix Alex Earl added a comment -

          I can't say anything about the parameterized build plugin works, but I can look at the NPE if the file doesn't exist.

          Show
          slide_o_mix Alex Earl added a comment - I can't say anything about the parameterized build plugin works, but I can look at the NPE if the file doesn't exist.
          Hide
          integer Kanstantsin Shautsou added a comment -

          Yeap, skip 1), i also not know all nuances.

          Show
          integer Kanstantsin Shautsou added a comment - Yeap, skip 1), i also not know all nuances.
          Hide
          slide_o_mix Alex Earl added a comment -

          Your file is relative to the root of the workspace, correct?

          Show
          slide_o_mix Alex Earl added a comment - Your file is relative to the root of the workspace, correct?
          Hide
          integer Kanstantsin Shautsou added a comment -

          yes, ext-email plugin calculates it from workspace... But workspace tag in build.xml was different from WORKSPACE, because of variable overload...

          Show
          integer Kanstantsin Shautsou added a comment - yes, ext-email plugin calculates it from workspace... But workspace tag in build.xml was different from WORKSPACE, because of variable overload...
          Hide
          slide_o_mix Alex Earl added a comment -

          variable overload? apparently, the content token for FILE is meant to return a null if the file doesn't exist or something similar (if the file can't be accessed in the workspace for some reason). I'll see if I can change it so that it just returns an error string saying that the item doesn't exist, does this work?

          Show
          slide_o_mix Alex Earl added a comment - variable overload? apparently, the content token for FILE is meant to return a null if the file doesn't exist or something similar (if the file can't be accessed in the workspace for some reason). I'll see if I can change it so that it just returns an error string saying that the item doesn't exist, does this work?
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Alex Earl
          Path:
          src/main/java/hudson/plugins/emailext/plugins/content/WorkspaceFileContent.java
          src/test/java/hudson/plugins/emailext/plugins/content/WorkspaceFileContentTest.java
          http://jenkins-ci.org/commit/email-ext-plugin/33dbcc6d4248098314959809695276bf2bcf5e80
          Log:
          Fix JENKINS-15008

          Make the message clear as to what is missing

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Alex Earl Path: src/main/java/hudson/plugins/emailext/plugins/content/WorkspaceFileContent.java src/test/java/hudson/plugins/emailext/plugins/content/WorkspaceFileContentTest.java http://jenkins-ci.org/commit/email-ext-plugin/33dbcc6d4248098314959809695276bf2bcf5e80 Log: Fix JENKINS-15008 Make the message clear as to what is missing
          Hide
          integer Kanstantsin Shautsou added a comment -

          I mean that i not sure what absolute path ${FILE} tried to load because my workspace path was strange.
          Yes, there shouldn't be NPE, if file doesn't exist. Btw, ${ENV} doesn't show anything in output if var=$VAR not exist.

          Show
          integer Kanstantsin Shautsou added a comment - I mean that i not sure what absolute path ${FILE} tried to load because my workspace path was strange. Yes, there shouldn't be NPE, if file doesn't exist. Btw, ${ENV} doesn't show anything in output if var=$VAR not exist.
          Hide
          slide_o_mix Alex Earl added a comment -

          I'd rather put an error in so the user knows that the file was not found correctly in the path and what path they were trying to access.

          Show
          slide_o_mix Alex Earl added a comment - I'd rather put an error in so the user knows that the file was not found correctly in the path and what path they were trying to access.
          Hide
          integer Kanstantsin Shautsou added a comment -

          Yes, thanks. Will be tested on next release. Do i need to press resolved?

          Show
          integer Kanstantsin Shautsou added a comment - Yes, thanks. Will be tested on next release. Do i need to press resolved?
          Hide
          slide_o_mix Alex Earl added a comment -

          Not until it is released and tested.

          Show
          slide_o_mix Alex Earl added a comment - Not until it is released and tested.
          Hide
          slide_o_mix Alex Earl added a comment -

          Made the FILE token return an error if the file doesn't exist.

          Show
          slide_o_mix Alex Earl added a comment - Made the FILE token return an error if the file doesn't exist.
          slide_o_mix Alex Earl made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          rtyler R. Tyler Croy made changes -
          Workflow JNJira [ 145727 ] JNJira + In-Review [ 191601 ]

            People

            • Assignee:
              slide_o_mix Alex Earl
              Reporter:
              integer Kanstantsin Shautsou
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: