Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
jenkins
提交
79c0bbf7
J
jenkins
项目概览
xxadev
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
79c0bbf7
编写于
8月 05, 2015
作者:
K
Kanstantsin Shautsou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Protect from race condition in Triggers
[FIXED JENKINS-29790] [FIXED JENKINS-29945]
上级
a2ba196e
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
110 addition
and
2 deletion
+110
-2
core/src/main/java/hudson/triggers/SCMTrigger.java
core/src/main/java/hudson/triggers/SCMTrigger.java
+21
-1
core/src/main/java/hudson/triggers/TimerTrigger.java
core/src/main/java/hudson/triggers/TimerTrigger.java
+5
-0
core/src/main/java/hudson/triggers/Trigger.java
core/src/main/java/hudson/triggers/Trigger.java
+3
-1
core/src/test/java/hudson/triggers/SCMTriggerTest.java
core/src/test/java/hudson/triggers/SCMTriggerTest.java
+42
-0
core/src/test/java/hudson/triggers/TimerTriggerTest.java
core/src/test/java/hudson/triggers/TimerTriggerTest.java
+39
-0
未找到文件。
core/src/main/java/hudson/triggers/SCMTrigger.java
浏览文件 @
79c0bbf7
...
...
@@ -2,6 +2,7 @@
* The MIT License
*
* Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Brian Westrich, Jean-Baptiste Quenot, id:cactusman
* 2015 Kanstantsin Shautsou
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
...
...
@@ -24,6 +25,7 @@
package
hudson.triggers
;
import
antlr.ANTLRException
;
import
com.google.common.base.Preconditions
;
import
hudson.Extension
;
import
hudson.Util
;
import
hudson.console.AnnotatedLargeText
;
...
...
@@ -117,6 +119,10 @@ public class SCMTrigger extends Trigger<Item> {
@Override
public
void
run
()
{
if
(
job
==
null
)
{
return
;
}
run
(
null
);
}
...
...
@@ -128,6 +134,10 @@ public class SCMTrigger extends Trigger<Item> {
* @since 1.375
*/
public
void
run
(
Action
[]
additionalActions
)
{
if
(
job
==
null
)
{
return
;
}
DescriptorImpl
d
=
getDescriptor
();
LOGGER
.
fine
(
"Scheduling a polling for "
+
job
);
...
...
@@ -152,6 +162,10 @@ public class SCMTrigger extends Trigger<Item> {
@Override
public
Collection
<?
extends
Action
>
getProjectActions
()
{
if
(
job
==
null
)
{
return
Collections
.
emptyList
();
}
return
Collections
.
singleton
(
new
SCMAction
());
}
...
...
@@ -457,10 +471,12 @@ public class SCMTrigger extends Trigger<Item> {
private
Action
[]
additionalActions
;
public
Runner
()
{
additionalActions
=
new
Action
[
0
]
;
this
(
null
)
;
}
public
Runner
(
Action
[]
actions
)
{
Preconditions
.
checkNotNull
(
job
,
"Runner can't be instantiated when job is null"
);
if
(
actions
==
null
)
{
additionalActions
=
new
Action
[
0
];
}
else
{
...
...
@@ -532,6 +548,10 @@ public class SCMTrigger extends Trigger<Item> {
}
public
void
run
()
{
if
(
job
==
null
)
{
return
;
}
String
threadName
=
Thread
.
currentThread
().
getName
();
Thread
.
currentThread
().
setName
(
"SCM polling for "
+
job
);
try
{
...
...
core/src/main/java/hudson/triggers/TimerTrigger.java
浏览文件 @
79c0bbf7
...
...
@@ -2,6 +2,7 @@
* The MIT License
*
* Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jean-Baptiste Quenot, Martin Eigenbrodt
* 2015 Kanstantsin Shautsou
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
...
...
@@ -52,6 +53,10 @@ public class TimerTrigger extends Trigger<BuildableItem> {
@Override
public
void
run
()
{
if
(
job
==
null
)
{
return
;
}
job
.
scheduleBuild
(
0
,
new
TimerTriggerCause
());
}
...
...
core/src/main/java/hudson/triggers/Trigger.java
浏览文件 @
79c0bbf7
...
...
@@ -2,7 +2,8 @@
* The MIT License
*
* Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Brian Westrich, Jean-Baptiste Quenot, Stephen Connolly, Tom Huybrechts
*
* 2015 Kanstantsin Shautsou
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
...
...
@@ -149,6 +150,7 @@ public abstract class Trigger<J extends Item> implements Describable<Trigger<?>>
protected
final
String
spec
;
protected
transient
CronTabList
tabs
;
@CheckForNull
protected
transient
J
job
;
/**
...
...
core/src/test/java/hudson/triggers/SCMTriggerTest.java
0 → 100644
浏览文件 @
79c0bbf7
/*
* The MIT License
*
* Copyright (c) 2015 Kanstantsin Shautsou
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package
hudson.triggers
;
import
org.junit.Test
;
import
org.jvnet.hudson.test.Issue
;
/**
* @author Kanstantsin Shautsou
*/
public
class
SCMTriggerTest
{
@Issue
({
"JENKINS-29790"
,
"JENKINS-29945"
})
@Test
public
void
testNoNPE
()
throws
Exception
{
final
SCMTrigger
scmTrigger
=
new
SCMTrigger
(
""
);
scmTrigger
.
run
();
scmTrigger
.
run
(
null
);
scmTrigger
.
getProjectActions
();
}
}
core/src/test/java/hudson/triggers/TimerTriggerTest.java
0 → 100644
浏览文件 @
79c0bbf7
/*
* The MIT License
*
* Copyright (c) 2015 Kanstantsin Shautsou
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package
hudson.triggers
;
import
antlr.ANTLRException
;
import
org.junit.Test
;
import
org.jvnet.hudson.test.Issue
;
/**
* @author Kanstantsin Shautsou
*/
public
class
TimerTriggerTest
{
@Issue
(
"JENKINS-29790"
)
@Test
public
void
testNoNPE
()
throws
ANTLRException
{
new
TimerTrigger
(
""
).
run
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录