Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
c64ee4eb
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看板
提交
c64ee4eb
编写于
8月 21, 2013
作者:
J
jjg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8022287: javac.sym.Profiles uses a static Map when it should not
Reviewed-by: ksrini
上级
00dab6cc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
115 addition
and
1 deletion
+115
-1
src/share/classes/com/sun/tools/javac/sym/Profiles.java
src/share/classes/com/sun/tools/javac/sym/Profiles.java
+1
-1
test/tools/javac/profiles/ProfileTest.java
test/tools/javac/profiles/ProfileTest.java
+114
-0
未找到文件。
src/share/classes/com/sun/tools/javac/sym/Profiles.java
浏览文件 @
c64ee4eb
...
@@ -148,7 +148,7 @@ public abstract class Profiles {
...
@@ -148,7 +148,7 @@ public abstract class Profiles {
}
}
}
}
final
static
Map
<
String
,
Package
>
packages
=
new
TreeMap
<
String
,
Package
>();
final
Map
<
String
,
Package
>
packages
=
new
TreeMap
<
String
,
Package
>();
final
int
maxProfile
=
4
;
// Three compact profiles plus full JRE
final
int
maxProfile
=
4
;
// Three compact profiles plus full JRE
...
...
test/tools/javac/profiles/ProfileTest.java
0 → 100644
浏览文件 @
c64ee4eb
/*
* Copyright (c) 2013, 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 8022287
* @summary javac.sym.Profiles uses a static Map when it should not
*/
import
java.io.File
;
import
java.io.FileWriter
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
com.sun.tools.javac.sym.Profiles
;
public
class
ProfileTest
{
public
static
void
main
(
String
...
args
)
throws
Exception
{
new
ProfileTest
().
run
();
}
public
void
run
()
throws
Exception
{
test
(
"A"
);
test
(
"B"
);
if
(
errors
>
0
)
throw
new
Exception
(
errors
+
" occurred"
);
}
void
test
(
String
base
)
throws
IOException
{
System
.
err
.
println
(
"test "
+
base
);
File
profileDesc
=
createFiles
(
base
);
checkProfile
(
profileDesc
,
base
);
}
void
checkProfile
(
File
profileDesc
,
String
base
)
throws
IOException
{
Profiles
p
=
Profiles
.
read
(
profileDesc
);
for
(
int
i
=
0
;
i
<
p
.
getProfileCount
();
i
++)
{
System
.
err
.
println
(
p
.
getPackages
(
i
));
for
(
String
pkg:
p
.
getPackages
(
i
))
{
if
(!
pkg
.
endsWith
(
base
))
error
(
"unexpected package "
+
pkg
+
" for profile "
+
i
);
}
}
}
File
createFiles
(
String
base
)
throws
IOException
{
File
baseDir
=
new
File
(
base
);
baseDir
.
mkdirs
();
for
(
int
p
=
1
;
p
<=
4
;
p
++)
{
String
pkg
=
"pkg"
+
p
+
base
;
File
pkgDir
=
new
File
(
baseDir
,
pkg
);
pkgDir
.
mkdirs
();
File
clssFile
=
new
File
(
pkgDir
,
pkg
+
"Class.java"
);
try
(
PrintWriter
out
=
new
PrintWriter
(
new
FileWriter
(
clssFile
)))
{
out
.
println
(
"package "
+
pkgDir
.
getName
()
+
";"
);
out
.
println
(
"class "
+
clssFile
.
getName
().
replace
(
".java"
,
""
));
}
}
File
profileDesc
=
new
File
(
baseDir
,
"profiles"
+
base
+
".txt"
);
try
(
PrintWriter
out
=
new
PrintWriter
(
new
FileWriter
(
profileDesc
)))
{
for
(
int
p
=
1
;
p
<=
4
;
p
++)
{
String
pkg
=
"pkg"
+
p
+
base
;
createPackage
(
baseDir
,
pkg
,
"Pkg"
+
p
+
base
+
"Class"
);
out
.
println
(
"PROFILE_"
+
p
+
"_RTJAR_INCLUDE_PACKAGES := "
+
pkg
);
out
.
println
(
"PROFILE_"
+
p
+
"_RTJAR_INCLUDE_TYPES :="
);
out
.
println
(
"PROFILE_"
+
p
+
"_RTJAR_EXCLUDE_TYPES :="
);
out
.
println
(
"PROFILE_"
+
p
+
"_INCLUDE_METAINF_SERVICES := "
);
}
}
return
profileDesc
;
}
void
createPackage
(
File
baseDir
,
String
pkg
,
String
...
classNames
)
throws
IOException
{
File
pkgDir
=
new
File
(
baseDir
,
pkg
);
pkgDir
.
mkdirs
();
for
(
String
className:
classNames
)
{
File
clssFile
=
new
File
(
pkgDir
,
className
+
".java"
);
try
(
PrintWriter
out
=
new
PrintWriter
(
new
FileWriter
(
clssFile
)))
{
out
.
println
(
"package "
+
pkg
+
";"
);
out
.
println
(
"public class "
+
className
+
" { }"
);
}
}
}
void
error
(
String
msg
)
{
System
.
err
.
println
(
"Error: "
+
msg
);
errors
++;
}
int
errors
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录