tcWebHooks
tcWebHooks copied to clipboard
Variable substitution fails for explicitly specified branches
I'm seeing the IllegalArgumentException as described in #26 also occur on finished builds (successful or failed) on specific branches for some of my projects. In general both master and all feature branches work fine, but builds on the "staging" and "production" branches (which are treated differently by some build steps for e.g. deployment logic for nightly resp. stable builds) seem to fail. Note that there is one build configuration which does not differentiate in build steps between the branches but also has this issue.
I think the common denominator is the fact that these build configurations have the branches explicitly configured in their VCS Root. My branch specification on one of the configurations:
+:refs/heads/(master)
+:refs/heads/(staging)
+:refs/heads/(production)
The default branch is set to refs/heads/master
which I'm guessing is the reason that branch does not see the issue.
In VCS Roots where the branch specification uses wildcards (i.e. +:refs/heads/*
) this issue does not appear.
Does this make sense? Could it be you're treating explicitly registered branches differently from default or wildcard matches?
Thanks for such a thorough bug report.
Yes. There is a chance I am not finding this as "branch build" correctly and maybe not rendering the correct payload.
What version of TeamCity and tcWebHooks are you using? Are you using a template? I'll try to reproduce the issue.
Currently running TeamCity 2017.1.2 with tcWebHooks 1.1-alpha10.157.147. This happens on our tailored JSON hooks (we're not using any other kind). These are basically all the webhooks for which I documented examples on the wiki: https://github.com/tcplugins/tcWebHooks/wiki/Advanced-Editing-of-tcWebHooks-configuration
Hi @jelco I'm having trouble reproducing this for finished builds. Any suggestions on something I have missed?
Here is my setup:
-
Docker TeamCity instance running 2017.1.2
-
installed plugin version: 1.1-alpha10.157.147
-
new build setup with the following VCS information Fetch URL:
https://github.com/tcplugins/tcBuildInvoker.git
Default Branch:refs/heads/master
Branch Specifications:+:refs/heads/(issue_4-fix_tc10_and_tc2017) +:refs/heads/(issue_3-fix_javascript_errors) +:refs/heads/(master)
New Webhook created
<settings>
<webhooks enabled="true">
<webhook url="http://192.168.1.72:8111/webhooks/endpoint.html?notifyType=${notifyType}&revision=${revision}&project=${project}" enabled="true" format="tailoredjson" template="none">
<states>
<state type="responsibilityChanged" enabled="true" />
<state type="buildInterrupted" enabled="true" />
<state type="buildFinished" enabled="true" />
<state type="buildSuccessful" enabled="true" />
<state type="buildStarted" enabled="true" />
<state type="buildFixed" enabled="false" />
<state type="changesLoaded" enabled="true" />
<state type="buildFailed" enabled="true" />
<state type="buildBroken" enabled="false" />
<state type="beforeBuildFinish" enabled="true" />
</states>
<build-types enabled-for-all="false" enabled-for-subprojects="false">
<build-type id="bt2" />
</build-types>
</webhook>
</webhooks>
Build Parameters
webhook.project: %teamcity.project.id%
webhook.revision: %build.vcs.number%
webhook.body:{ "project": "${project}", "branchName": "${branchName}", "revision": "${revision}", "notifyType" : "${notifyType}" }
branchName
and notifyType
are both webhook resolvable variables. project
and revision
refer to %<var_name>%
as defined as build parameters.
I am pointing my webhook at the /webhooks/endpoint.html
convenience endpoint.
For buildStarted
and changesLoaded
events, I can see what you see, but for beforeBuildFinshed
and buildFinished
events, the values resolve correctly (both in the payload and the URL).
I trigger the builds from clicking the run... button and choosing the branch to build.
Default Branch (master)
{
"project": "%teamcity.project.id%",
"branchName": "<default>",
"revision": "%build.vcs.number%",
"notifyType": "buildStarted"
}
{
"project": "%teamcity.project.id%",
"branchName": "<default>",
"revision": "%build.vcs.number%",
"notifyType": "changesLoaded"
}
{
"project": "TcPlugins",
"branchName": "<default>",
"revision": "8952d0e8840bef0df00d5314bfa1262c5c8bb46d",
"notifyType": "beforeBuildFinish"
}
{
"project": "TcPlugins",
"branchName": "<default>",
"revision": "8952d0e8840bef0df00d5314bfa1262c5c8bb46d",
"notifyType": "buildFinished"
}
Branch named "issue_4-fix_tc10_and_tc2017"
{
"project": "%teamcity.project.id%",
"branchName": "issue_4-fix_tc10_and_tc2017",
"revision": "%build.vcs.number%",
"notifyType": "buildStarted"
}
{
"project": "%teamcity.project.id%",
"branchName": "issue_4-fix_tc10_and_tc2017",
"revision": "%build.vcs.number%",
"notifyType": "changesLoaded"
}
{
"project": "TcPlugins",
"branchName": "issue_4-fix_tc10_and_tc2017",
"revision": "f0957cf7a74112152f46d5bb9560455898269a09",
"notifyType": "beforeBuildFinish"
}
{
"project": "TcPlugins",
"branchName": "issue_4-fix_tc10_and_tc2017",
"revision": "f0957cf7a74112152f46d5bb9560455898269a09",
"notifyType": "buildFinished"
}
All builds so far were triggered by VCS updates so far, but I've tested with some manualy triggers as well and I'm seeing the same issue.
Maybe it helps to have the exact full configuration of one hook that doesn't work?
<webhook url="https://api.bitbucket.org/2.0/repositories/.../${project}/commit/${revision}/statuses/build" enabled="true" format="tailoredjson" template="none">
<states>
<state type="buildStarted" enabled="false" />
<state type="buildInterrupted" enabled="false" />
<state type="changesLoaded" enabled="false" />
<state type="buildSuccessful" enabled="true" />
<state type="buildFixed" enabled="false" />
<state type="buildFinished" enabled="true" />
<state type="beforeBuildFinish" enabled="false" />
<state type="responsibilityChanged" enabled="false" />
<state type="buildFailed" enabled="false" />
<state type="buildBroken" enabled="false" />
</states>
<build-types enabled-for-all="true" enabled-for-subprojects="true" />
<trigger-filters>
<filter value="${revision}" regex="^.+$" enabled="true" />
</trigger-filters>
<parameters>
<param name="body" value="{"state": "SUCCESSFUL", "key": "${key}", "name": "${name}", "url": "${url}", "description": "${buildStatus}"}" />
</parameters>
<auth enabled="true" type="userpass" preemptive="true">
<auth-parameters>
<param name="password" value="..." />
<param name="username" value="..." />
</auth-parameters>
</auth>
</webhook>
(Of course the username and password have been removed.)
Closer inspection reveals that this issue actually also plays up in repositories that don't have this kind of branch filtering set up. In my current setup I can't really pinpoint a common configuration aspect that doesn't also apply to builds that don't show this issue.
My gut feeling tells me that maybe this applies specifically to configurations I created at a specific TC version. There's some really old configs and some really new that don't have it, but I think that maybe all the configurations that have this issue might have been created in the same timespan, at a specific TeamCity version (probably towards the end of version 9). Maybe there's some configuration issue under the hood that didn't get properly converted during an upgrade, affecting the hooks?
Hmm. That's a weird edge case. I'm not even sure how I track that down.
Are you able to enable debug logging on the server and get some more info?
Is there anything odd in project-config.xml
for those build configurations?
Btw. I just tested your example config above and it resolved the project name and revision.
I can't find anything interesting in the project-config.xml files. I'll see what I can find when I switch on TeamCity debug logging.
I'm hoping this helps, because the increased verbosity has made TeamCity barf up this set of stacktraces quite frequently into the logfiles. :)
[2017-08-15 16:01:11,855] DEBUG - jetbrains.buildServer.SERVER - About to process WebHooks for project15 at buildState buildFinished
[2017-08-15 16:01:11,855] DEBUG - jetbrains.buildServer.SERVER - WebHook NOT triggered: https://api.bitbucket.org/2.0/repositories/.../${project}/commit/${revision}/statuses/build
[2017-08-15 16:01:11,855] DEBUG - tbrains.buildServer.ACTIVITIES - WebHookListener :: Tailored JSON in body
[2017-08-15 16:01:11,856] DEBUG - jetbrains.buildServer.SERVER - WebHooksBeanUtilsVariableResolver :: class java.lang.NoSuchMethodException thrown when trying to resolve value for key
[2017-08-15 16:01:11,856] DEBUG - jetbrains.buildServer.SERVER - Unknown property 'key'
java.lang.NoSuchMethodException: Unknown property 'key'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at webhook.teamcity.payload.util.WebHooksBeanUtilsVariableResolver.resolve(WebHooksBeanUtilsVariableResolver.java:101)
at webhook.teamcity.payload.util.TemplateMatcher.replace(TemplateMatcher.java:54)
at webhook.teamcity.payload.util.VariableMessageBuilder.build(VariableMessageBuilder.java:22)
at webhook.teamcity.payload.content.WebHookPayloadContent.getExtraParameters(WebHookPayloadContent.java:638)
at webhook.teamcity.payload.format.WebHookPayloadTailoredJson.getStatusAsString(WebHookPayloadTailoredJson.java:47)
at webhook.teamcity.payload.format.WebHookPayloadGeneric.buildFinished(WebHookPayloadGeneric.java:65)
at webhook.teamcity.WebHookContentBuilder.buildWebHookContent(WebHookContentBuilder.java:89)
at webhook.teamcity.WebHookListener.processBuildEvent(WebHookListener.java:80)
at webhook.teamcity.WebHookListener.buildFinished(WebHookListener.java:145)
at sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:121)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.superDispatch(ServerSideEventDispatcher.java:5)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher$1.run(ServerSideEventDispatcher.java:2)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAs(SecurityContextImpl.java:34)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAsSystem(SecurityContextImpl.java:1)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.dispatch(ServerSideEventDispatcher.java:8)
at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:68)
at com.sun.proxy.$Proxy19.buildFinished(Unknown Source)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.finishBuild(RunningBuildsManagerImpl.java:151)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.lambda$scheduleBuildFinishing$0(RunningBuildsManagerImpl.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-08-15 16:01:11,856] DEBUG - jetbrains.buildServer.SERVER - WebHooksBeanUtilsVariableResolver :: class java.lang.NoSuchMethodException thrown when trying to resolve value for name
[2017-08-15 16:01:11,856] DEBUG - jetbrains.buildServer.SERVER - Unknown property 'name'
java.lang.NoSuchMethodException: Unknown property 'name'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at webhook.teamcity.payload.util.WebHooksBeanUtilsVariableResolver.resolve(WebHooksBeanUtilsVariableResolver.java:101)
at webhook.teamcity.payload.util.TemplateMatcher.replace(TemplateMatcher.java:54)
at webhook.teamcity.payload.util.VariableMessageBuilder.build(VariableMessageBuilder.java:22)
at webhook.teamcity.payload.content.WebHookPayloadContent.getExtraParameters(WebHookPayloadContent.java:638)
at webhook.teamcity.payload.format.WebHookPayloadTailoredJson.getStatusAsString(WebHookPayloadTailoredJson.java:47)
at webhook.teamcity.payload.format.WebHookPayloadGeneric.buildFinished(WebHookPayloadGeneric.java:65)
at webhook.teamcity.WebHookContentBuilder.buildWebHookContent(WebHookContentBuilder.java:89)
at webhook.teamcity.WebHookListener.processBuildEvent(WebHookListener.java:80)
at webhook.teamcity.WebHookListener.buildFinished(WebHookListener.java:145)
at sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:121)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.superDispatch(ServerSideEventDispatcher.java:5)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher$1.run(ServerSideEventDispatcher.java:2)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAs(SecurityContextImpl.java:34)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAsSystem(SecurityContextImpl.java:1)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.dispatch(ServerSideEventDispatcher.java:8)
at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:68)
at com.sun.proxy.$Proxy19.buildFinished(Unknown Source)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.finishBuild(RunningBuildsManagerImpl.java:151)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.lambda$scheduleBuildFinishing$0(RunningBuildsManagerImpl.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-08-15 16:01:11,856] DEBUG - jetbrains.buildServer.SERVER - WebHooksBeanUtilsVariableResolver :: class java.lang.NoSuchMethodException thrown when trying to resolve value for url
[2017-08-15 16:01:11,856] DEBUG - jetbrains.buildServer.SERVER - Unknown property 'url'
java.lang.NoSuchMethodException: Unknown property 'url'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at webhook.teamcity.payload.util.WebHooksBeanUtilsVariableResolver.resolve(WebHooksBeanUtilsVariableResolver.java:101)
at webhook.teamcity.payload.util.TemplateMatcher.replace(TemplateMatcher.java:54)
at webhook.teamcity.payload.util.VariableMessageBuilder.build(VariableMessageBuilder.java:22)
at webhook.teamcity.payload.content.WebHookPayloadContent.getExtraParameters(WebHookPayloadContent.java:638)
at webhook.teamcity.payload.format.WebHookPayloadTailoredJson.getStatusAsString(WebHookPayloadTailoredJson.java:47)
at webhook.teamcity.payload.format.WebHookPayloadGeneric.buildFinished(WebHookPayloadGeneric.java:65)
at webhook.teamcity.WebHookContentBuilder.buildWebHookContent(WebHookContentBuilder.java:89)
at webhook.teamcity.WebHookListener.processBuildEvent(WebHookListener.java:80)
at webhook.teamcity.WebHookListener.buildFinished(WebHookListener.java:145)
at sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:121)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.superDispatch(ServerSideEventDispatcher.java:5)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher$1.run(ServerSideEventDispatcher.java:2)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAs(SecurityContextImpl.java:34)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAsSystem(SecurityContextImpl.java:1)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.dispatch(ServerSideEventDispatcher.java:8)
at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:68)
at com.sun.proxy.$Proxy19.buildFinished(Unknown Source)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.finishBuild(RunningBuildsManagerImpl.java:151)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.lambda$scheduleBuildFinishing$0(RunningBuildsManagerImpl.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-08-15 16:01:11,857] DEBUG - jetbrains.buildServer.SERVER - WebHooksBeanUtilsVariableResolver :: class java.lang.NoSuchMethodException thrown when trying to resolve value for key
[2017-08-15 16:01:11,857] DEBUG - jetbrains.buildServer.SERVER - Unknown property 'key'
java.lang.NoSuchMethodException: Unknown property 'key'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at webhook.teamcity.payload.util.WebHooksBeanUtilsVariableResolver.resolve(WebHooksBeanUtilsVariableResolver.java:101)
at webhook.teamcity.payload.util.TemplateMatcher.replace(TemplateMatcher.java:54)
at webhook.teamcity.payload.util.VariableMessageBuilder.build(VariableMessageBuilder.java:22)
at webhook.teamcity.payload.content.WebHookPayloadContent.getExtraParameters(WebHookPayloadContent.java:643)
at webhook.teamcity.payload.format.WebHookPayloadTailoredJson.getStatusAsString(WebHookPayloadTailoredJson.java:47)
at webhook.teamcity.payload.format.WebHookPayloadGeneric.buildFinished(WebHookPayloadGeneric.java:65)
at webhook.teamcity.WebHookContentBuilder.buildWebHookContent(WebHookContentBuilder.java:89)
at webhook.teamcity.WebHookListener.processBuildEvent(WebHookListener.java:80)
at webhook.teamcity.WebHookListener.buildFinished(WebHookListener.java:145)
at sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:121)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.superDispatch(ServerSideEventDispatcher.java:5)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher$1.run(ServerSideEventDispatcher.java:2)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAs(SecurityContextImpl.java:34)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAsSystem(SecurityContextImpl.java:1)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.dispatch(ServerSideEventDispatcher.java:8)
at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:68)
at com.sun.proxy.$Proxy19.buildFinished(Unknown Source)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.finishBuild(RunningBuildsManagerImpl.java:151)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.lambda$scheduleBuildFinishing$0(RunningBuildsManagerImpl.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-08-15 16:01:11,857] DEBUG - jetbrains.buildServer.SERVER - WebHooksBeanUtilsVariableResolver :: class java.lang.NoSuchMethodException thrown when trying to resolve value for name
[2017-08-15 16:01:11,857] DEBUG - jetbrains.buildServer.SERVER - Unknown property 'name'
java.lang.NoSuchMethodException: Unknown property 'name'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at webhook.teamcity.payload.util.WebHooksBeanUtilsVariableResolver.resolve(WebHooksBeanUtilsVariableResolver.java:101)
at webhook.teamcity.payload.util.TemplateMatcher.replace(TemplateMatcher.java:54)
at webhook.teamcity.payload.util.VariableMessageBuilder.build(VariableMessageBuilder.java:22)
at webhook.teamcity.payload.content.WebHookPayloadContent.getExtraParameters(WebHookPayloadContent.java:643)
at webhook.teamcity.payload.format.WebHookPayloadTailoredJson.getStatusAsString(WebHookPayloadTailoredJson.java:47)
at webhook.teamcity.payload.format.WebHookPayloadGeneric.buildFinished(WebHookPayloadGeneric.java:65)
at webhook.teamcity.WebHookContentBuilder.buildWebHookContent(WebHookContentBuilder.java:89)
at webhook.teamcity.WebHookListener.processBuildEvent(WebHookListener.java:80)
at webhook.teamcity.WebHookListener.buildFinished(WebHookListener.java:145)
at sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:121)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.superDispatch(ServerSideEventDispatcher.java:5)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher$1.run(ServerSideEventDispatcher.java:2)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAs(SecurityContextImpl.java:34)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAsSystem(SecurityContextImpl.java:1)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.dispatch(ServerSideEventDispatcher.java:8)
at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:68)
at com.sun.proxy.$Proxy19.buildFinished(Unknown Source)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.finishBuild(RunningBuildsManagerImpl.java:151)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.lambda$scheduleBuildFinishing$0(RunningBuildsManagerImpl.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-08-15 16:01:11,857] DEBUG - jetbrains.buildServer.SERVER - WebHooksBeanUtilsVariableResolver :: class java.lang.NoSuchMethodException thrown when trying to resolve value for url
[2017-08-15 16:01:11,857] DEBUG - jetbrains.buildServer.SERVER - Unknown property 'url'
java.lang.NoSuchMethodException: Unknown property 'url'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at webhook.teamcity.payload.util.WebHooksBeanUtilsVariableResolver.resolve(WebHooksBeanUtilsVariableResolver.java:101)
at webhook.teamcity.payload.util.TemplateMatcher.replace(TemplateMatcher.java:54)
at webhook.teamcity.payload.util.VariableMessageBuilder.build(VariableMessageBuilder.java:22)
at webhook.teamcity.payload.content.WebHookPayloadContent.getExtraParameters(WebHookPayloadContent.java:643)
at webhook.teamcity.payload.format.WebHookPayloadTailoredJson.getStatusAsString(WebHookPayloadTailoredJson.java:47)
at webhook.teamcity.payload.format.WebHookPayloadGeneric.buildFinished(WebHookPayloadGeneric.java:65)
at webhook.teamcity.WebHookContentBuilder.buildWebHookContent(WebHookContentBuilder.java:89)
at webhook.teamcity.WebHookListener.processBuildEvent(WebHookListener.java:80)
at webhook.teamcity.WebHookListener.buildFinished(WebHookListener.java:145)
at sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:121)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.superDispatch(ServerSideEventDispatcher.java:5)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher$1.run(ServerSideEventDispatcher.java:2)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAs(SecurityContextImpl.java:34)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAsSystem(SecurityContextImpl.java:1)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.dispatch(ServerSideEventDispatcher.java:8)
at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:68)
at com.sun.proxy.$Proxy19.buildFinished(Unknown Source)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.finishBuild(RunningBuildsManagerImpl.java:151)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.lambda$scheduleBuildFinishing$0(RunningBuildsManagerImpl.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-08-15 16:01:11,857] DEBUG - jetbrains.buildServer.SERVER - WebHooksBeanUtilsVariableResolver :: class java.lang.NoSuchMethodException thrown when trying to resolve value for project
[2017-08-15 16:01:11,858] DEBUG - jetbrains.buildServer.SERVER - Unknown property 'project'
java.lang.NoSuchMethodException: Unknown property 'project'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at webhook.teamcity.payload.util.WebHooksBeanUtilsVariableResolver.resolve(WebHooksBeanUtilsVariableResolver.java:101)
at webhook.teamcity.payload.util.TemplateMatcher.replace(TemplateMatcher.java:54)
at webhook.teamcity.payload.util.VariableMessageBuilder.build(VariableMessageBuilder.java:22)
at webhook.teamcity.WebHookContentBuilder.resolveTemplatedUrl(WebHookContentBuilder.java:108)
at webhook.teamcity.WebHookContentBuilder.buildWebHookContent(WebHookContentBuilder.java:90)
at webhook.teamcity.WebHookListener.processBuildEvent(WebHookListener.java:80)
at webhook.teamcity.WebHookListener.buildFinished(WebHookListener.java:145)
at sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:121)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.superDispatch(ServerSideEventDispatcher.java:5)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher$1.run(ServerSideEventDispatcher.java:2)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAs(SecurityContextImpl.java:34)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAsSystem(SecurityContextImpl.java:1)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.dispatch(ServerSideEventDispatcher.java:8)
at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:68)
at com.sun.proxy.$Proxy19.buildFinished(Unknown Source)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.finishBuild(RunningBuildsManagerImpl.java:151)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.lambda$scheduleBuildFinishing$0(RunningBuildsManagerImpl.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-08-15 16:01:11,858] DEBUG - jetbrains.buildServer.SERVER - WebHooksBeanUtilsVariableResolver :: class java.lang.NoSuchMethodException thrown when trying to resolve value for revision
[2017-08-15 16:01:11,858] DEBUG - jetbrains.buildServer.SERVER - Unknown property 'revision'
java.lang.NoSuchMethodException: Unknown property 'revision'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at webhook.teamcity.payload.util.WebHooksBeanUtilsVariableResolver.resolve(WebHooksBeanUtilsVariableResolver.java:101)
at webhook.teamcity.payload.util.TemplateMatcher.replace(TemplateMatcher.java:54)
at webhook.teamcity.payload.util.VariableMessageBuilder.build(VariableMessageBuilder.java:22)
at webhook.teamcity.WebHookContentBuilder.resolveTemplatedUrl(WebHookContentBuilder.java:108)
at webhook.teamcity.WebHookContentBuilder.buildWebHookContent(WebHookContentBuilder.java:90)
at webhook.teamcity.WebHookListener.processBuildEvent(WebHookListener.java:80)
at webhook.teamcity.WebHookListener.buildFinished(WebHookListener.java:145)
at sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:121)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.superDispatch(ServerSideEventDispatcher.java:5)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher$1.run(ServerSideEventDispatcher.java:2)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAs(SecurityContextImpl.java:34)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAsSystem(SecurityContextImpl.java:1)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.dispatch(ServerSideEventDispatcher.java:8)
at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:68)
at com.sun.proxy.$Proxy19.buildFinished(Unknown Source)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.finishBuild(RunningBuildsManagerImpl.java:151)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.lambda$scheduleBuildFinishing$0(RunningBuildsManagerImpl.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[2017-08-15 16:01:11,858] DEBUG - jetbrains.buildServer.SERVER - WebHooksBeanUtilsVariableResolver :: class java.lang.NoSuchMethodException thrown when trying to resolve value for revision
[2017-08-15 16:01:11,858] DEBUG - jetbrains.buildServer.SERVER - Unknown property 'revision'
java.lang.NoSuchMethodException: Unknown property 'revision'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1122)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at webhook.teamcity.payload.util.WebHooksBeanUtilsVariableResolver.resolve(WebHooksBeanUtilsVariableResolver.java:101)
at webhook.teamcity.payload.util.TemplateMatcher.replace(TemplateMatcher.java:54)
at webhook.teamcity.payload.util.VariableMessageBuilder.build(VariableMessageBuilder.java:22)
at webhook.WebHookImpl.checkFilters(WebHookImpl.java:362)
at webhook.teamcity.WebHookContentBuilder.buildWebHookContent(WebHookContentBuilder.java:91)
at webhook.teamcity.WebHookListener.processBuildEvent(WebHookListener.java:80)
at webhook.teamcity.WebHookListener.buildFinished(WebHookListener.java:145)
at sun.reflect.GeneratedMethodAccessor375.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at jetbrains.buildServer.util.EventDispatcher.dispatch(EventDispatcher.java:121)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.superDispatch(ServerSideEventDispatcher.java:5)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher$1.run(ServerSideEventDispatcher.java:2)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAs(SecurityContextImpl.java:34)
at jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl.runAsSystem(SecurityContextImpl.java:1)
at jetbrains.buildServer.serverSide.ServerSideEventDispatcher.dispatch(ServerSideEventDispatcher.java:8)
at jetbrains.buildServer.util.EventDispatcher$2.invoke(EventDispatcher.java:68)
at com.sun.proxy.$Proxy19.buildFinished(Unknown Source)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.finishBuild(RunningBuildsManagerImpl.java:151)
at jetbrains.buildServer.serverSide.impl.RunningBuildsManagerImpl.lambda$scheduleBuildFinishing$0(RunningBuildsManagerImpl.java:184)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Yes. I should turn those off. They don't really add much value. I'll go through it when I get to a computer.