Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
jenkins
提交
688eb6ab
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,发现更多精彩内容 >>
提交
688eb6ab
编写于
8月 24, 2012
作者:
J
Jesse Glick
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[FIXED JENKINS-14922] TarArchiver.visitSymlink can throw undeclared PosixException.
上级
f4c65633
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
30 addition
and
7 deletion
+30
-7
changelog.html
changelog.html
+3
-0
core/src/main/java/hudson/util/IOUtils.java
core/src/main/java/hudson/util/IOUtils.java
+5
-2
core/src/main/java/hudson/util/io/TarArchiver.java
core/src/main/java/hudson/util/io/TarArchiver.java
+9
-2
core/src/test/java/hudson/util/io/TarArchiverTest.java
core/src/test/java/hudson/util/io/TarArchiverTest.java
+13
-3
未找到文件。
changelog.html
浏览文件 @
688eb6ab
...
...
@@ -55,6 +55,9 @@ Upcoming changes</a>
<!-- Record your changes in the trunk here. -->
<div
id=
"trunk"
style=
"display:none"
>
<!--=TRUNK-BEGIN=-->
<ul
class=
image
>
<li
class=
bug
>
<code>
TarArchiver.visitSymlink
</code>
can throw undeclared
<code>
PosixException
</code>
.
(
<a
href=
"https://issues.jenkins-ci.org/browse/JENKINS-14922"
>
issue 14922
</a>
)
<li
class=
>
</ul
>
</div>
<!--=TRUNK-END=-->
...
...
core/src/main/java/hudson/util/IOUtils.java
浏览文件 @
688eb6ab
...
...
@@ -2,6 +2,7 @@ package hudson.util;
import
hudson.Functions
;
import
hudson.os.PosixAPI
;
import
hudson.os.PosixException
;
import
java.io.*
;
import
java.util.regex.Pattern
;
...
...
@@ -115,9 +116,11 @@ public class IOUtils extends org.apache.commons.io.IOUtils {
/**
* Gets the mode of a file/directory, if appropriate. Returns -1 if not on Unix.
* Gets the mode of a file/directory, if appropriate.
* @return a file mode, or -1 if not on Unix
* @throws PosixException if the file could not be statted, e.g. broken symlink
*/
public
static
int
mode
(
File
f
)
{
public
static
int
mode
(
File
f
)
throws
PosixException
{
if
(
Functions
.
isWindows
())
return
-
1
;
return
PosixAPI
.
get
().
stat
(
f
.
getPath
()).
mode
();
}
...
...
core/src/main/java/hudson/util/io/TarArchiver.java
浏览文件 @
688eb6ab
...
...
@@ -26,6 +26,7 @@ package hudson.util.io;
import
hudson.Functions
;
import
hudson.org.apache.tools.tar.TarOutputStream
;
import
hudson.os.PosixException
;
import
hudson.util.FileVisitor
;
import
hudson.util.IOException2
;
import
hudson.util.IOUtils
;
...
...
@@ -65,8 +66,14 @@ final class TarArchiver extends Archiver {
@Override
public
void
visitSymlink
(
File
link
,
String
target
,
String
relativePath
)
throws
IOException
{
TarEntry
e
=
new
TarEntry
(
relativePath
,
LF_SYMLINK
);
int
mode
=
IOUtils
.
mode
(
link
);
if
(
mode
!=-
1
)
e
.
setMode
(
mode
);
try
{
int
mode
=
IOUtils
.
mode
(
link
);
if
(
mode
!=
-
1
)
{
e
.
setMode
(
mode
);
}
}
catch
(
PosixException
x
)
{
// ignore
}
try
{
StringBuffer
linkName
=
(
StringBuffer
)
LINKNAME_FIELD
.
get
(
e
);
...
...
core/src/test/java/hudson/util/io/TarArchiverTest.java
浏览文件 @
688eb6ab
...
...
@@ -26,6 +26,9 @@ package hudson.util.io;
import
hudson.FilePath
;
import
hudson.Functions
;
import
hudson.Launcher.LocalLauncher
;
import
hudson.Util
;
import
hudson.model.TaskListener
;
import
hudson.util.NullStream
;
import
hudson.util.StreamTaskListener
;
import
java.io.File
;
import
java.io.FileOutputStream
;
...
...
@@ -34,10 +37,8 @@ import static org.junit.Assume.*;
import
org.junit.Test
;
import
org.jvnet.hudson.test.Bug
;
/**
* @author Kohsuke Kawaguchi
*/
public
class
TarArchiverTest
{
/**
* Makes sure that permissions are properly stored in the tar file.
*/
...
...
@@ -92,4 +93,13 @@ public class TarArchiverTest {
dir
.
deleteRecursive
();
}
}
@Bug
(
14922
)
@Test
public
void
brokenSymlinks
()
throws
Exception
{
assumeTrue
(!
Functions
.
isWindows
());
File
dir
=
Util
.
createTempDir
();
Util
.
createSymlink
(
dir
,
"nonexistent"
,
"link"
,
TaskListener
.
NULL
);
new
FilePath
(
dir
).
tar
(
new
NullStream
(),
"**"
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录