Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
039165d8
D
dragonwell8_langtools
项目概览
openanolis
/
dragonwell8_langtools
通知
0
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_langtools
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
039165d8
编写于
2月 10, 2011
作者:
J
jjg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6485027: javac incorrectly handles relative paths in manifest classpath
Reviewed-by: mcimadamore
上级
ddc3a462
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
129 addition
and
12 deletion
+129
-12
src/share/classes/com/sun/tools/javac/file/Paths.java
src/share/classes/com/sun/tools/javac/file/Paths.java
+10
-4
test/tools/javac/Paths/Class-Path.sh
test/tools/javac/Paths/Class-Path.sh
+4
-4
test/tools/javac/Paths/Class-Path2.sh
test/tools/javac/Paths/Class-Path2.sh
+111
-0
test/tools/javac/Paths/Diagnostics.sh
test/tools/javac/Paths/Diagnostics.sh
+4
-4
未找到文件。
src/share/classes/com/sun/tools/javac/file/Paths.java
浏览文件 @
039165d8
...
...
@@ -247,10 +247,16 @@ public class Paths {
public
Path
()
{
super
();
}
public
Path
addDirectories
(
String
dirs
,
boolean
warn
)
{
if
(
dirs
!=
null
)
for
(
File
dir
:
getPathEntries
(
dirs
))
addDirectory
(
dir
,
warn
);
return
this
;
boolean
prev
=
expandJarClassPaths
;
expandJarClassPaths
=
true
;
try
{
if
(
dirs
!=
null
)
for
(
File
dir
:
getPathEntries
(
dirs
))
addDirectory
(
dir
,
warn
);
return
this
;
}
finally
{
expandJarClassPaths
=
prev
;
}
}
public
Path
addDirectories
(
String
dirs
)
{
...
...
test/tools/javac/Paths/Class-Path.sh
浏览文件 @
039165d8
#!/bin/sh
#
# Copyright (c) 2003, 20
05
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2003, 20
11
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -24,7 +24,7 @@
#
# @test
@(#)Class-Path.sh 1.3 03/10/31
# @test
# @bug 4212732
# @summary Test handling of the Class-Path attribute in jar file manifests
# @author Martin Buchholz
...
...
@@ -184,8 +184,8 @@ Success "$jar" umf MANIFEST.MF "Hello.jar"
#
Success
"
$jar
"
cfe
"Hello.jar"
"Hello"
Bye.class
# Jar creation and update when there is no manifest and inputfiles
specified
# Jar creation and update when there is no manifest and inputfiles
#
specified
Failure
"
$jar
"
cvf
"A.jar"
Failure
"
$jar
"
uvf
"A.jar"
...
...
test/tools/javac/Paths/Class-Path2.sh
0 → 100644
浏览文件 @
039165d8
#!/bin/sh
#
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# @test
# @bug 4212732 6485027
# @summary Test handling of the Class-Path attribute in jar file manifests
# @author Martin Buchholz
#
# @run shell Class-Path2.sh
# To run this test manually, simply do ./Class-Path2.sh
.
${
TESTSRC
-.
}
/Util.sh
set
-u
Cleanup
()
{
Sys
rm
-rf
pkg Main.java Main.class Main.jar jars
Sys
rm
-rf
MANIFEST.MF A.jar B.zip
}
Cleanup
Sys
mkdir
pkg
#----------------------------------------------------------------
# Create mutually referential jar files
#----------------------------------------------------------------
cat
>
pkg/A.java
<<
EOF
package pkg;
import pkg.B;
public class A {
public static int f() { return B.g(); }
public static int g() { return 0; }
}
EOF
cat
>
pkg/B.java
<<
EOF
package pkg;
import pkg.A;
public class B {
public static int f() { return A.g(); }
public static int g() { return 0; }
}
EOF
Sys
"
$javac
"
pkg/A.java pkg/B.java
MkManifestWithClassPath
"./sub/B.zip"
Sys
"
$jar
"
cmf MANIFEST.MF A.jar pkg/A.class
MkManifestWithClassPath
"../A.jar"
Sys
"
$jar
"
cmf MANIFEST.MF B.zip pkg/B.class
cat
>
Main.java
<<
EOF
import pkg.*;
public class Main {
public static void main(String []a) { System.exit(A.f() + B.f()); }
}
EOF
Sys
rm
-rf
pkg
Sys
mkdir
jars
Sys
mkdir
jars/sub/
Sys
mv
A.jar jars/.
Sys
mv
B.zip jars/sub/.
#
# Test 1: Compiling
#
Success
"
$javac
"
${
TESTTOOLVMOPTS
}
-cp
"jars/A.jar"
Main.java
Success
"
$java
"
${
TESTVMOPTS
}
-cp
"jars/A.jar
${
PS
}
."
Main
Success
"
$javac
"
${
TESTTOOLVMOPTS
}
-cp
"jars/sub/B.zip"
Main.java
Success
"
$java
"
${
TESTVMOPTS
}
-cp
"jars/sub/B.zip
${
PS
}
."
Main
#
# Test 2: Use of extension directories is incorrect
#
Success
"
$javac
"
${
TESTTOOLVMOPTS
}
-extdirs
jars
-cp
None Main.java
Success
"
$java
"
${
TESTVMOPTS
}
-Djava
.ext.dirs
=
"jars"
-cp
.
Main
Success
"
$javac
"
${
TESTTOOLVMOPTS
}
-extdirs
jars/sub
-cp
None Main.java
Success
"
$java
"
${
TESTVMOPTS
}
-Djava
.ext.dirs
=
"jars/sub"
-cp
.
Main
Cleanup
Bottom Line
test/tools/javac/Paths/Diagnostics.sh
浏览文件 @
039165d8
#!/bin/sh
#
# Copyright (c) 2003, 20
06
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2003, 20
11
, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
...
...
@@ -182,12 +182,12 @@ No Warning "$javac" ${TESTTOOLVMOPTS} -Xlint -classpath classesRefRef.jar
No Warning
"
$javac
"
${
TESTTOOLVMOPTS
}
-Xlint
-Xbootclasspath
/p:classesRefRef.jar Main.java
#----------------------------------------------------------------
# Class-Path attribute
ignor
ed in extdirs or endorseddirs
# Class-Path attribute
follow
ed in extdirs or endorseddirs
#----------------------------------------------------------------
Sys
mkdir
jars
Sys
cp
-p
classesRefRef.jar jars/.
No
Warning
"
$javac
"
${
TESTTOOLVMOPTS
}
-Xlint
-extdirs
jars Main.java
No
Warning
"
$javac
"
${
TESTTOOLVMOPTS
}
-Xlint
-endorseddirs
jars Main.java
Warning
"
$javac
"
${
TESTTOOLVMOPTS
}
-Xlint
-extdirs
jars Main.java
Warning
"
$javac
"
${
TESTTOOLVMOPTS
}
-Xlint
-endorseddirs
jars Main.java
#----------------------------------------------------------------
# Bad Jar file in extdirs and endorseddirs should not be ignored
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录