Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
0e9a4d8f
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
3
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0e9a4d8f
编写于
12月 18, 2013
作者:
K
ksrini
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8029388: java.exe consumes argument intended for launched java class
Reviewed-by: mchung
上级
fb9e7bee
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
63 addition
and
16 deletion
+63
-16
src/windows/bin/java_md.c
src/windows/bin/java_md.c
+7
-2
test/tools/launcher/ChangeDataModel.java
test/tools/launcher/ChangeDataModel.java
+56
-14
未找到文件。
src/windows/bin/java_md.c
浏览文件 @
0e9a4d8f
/*
* Copyright (c) 1997, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
3
, 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
...
...
@@ -179,7 +179,7 @@ CreateExecutionEnvironment(int *pargc, char ***pargv,
int
wanted
=
running
;
char
**
argv
=
*
pargv
;
for
(
i
=
0
;
i
<
*
pargc
;
i
++
)
{
for
(
i
=
1
;
i
<
*
pargc
;
i
++
)
{
if
(
JLI_StrCmp
(
argv
[
i
],
"-J-d64"
)
==
0
||
JLI_StrCmp
(
argv
[
i
],
"-d64"
)
==
0
)
{
wanted
=
64
;
continue
;
...
...
@@ -188,6 +188,11 @@ CreateExecutionEnvironment(int *pargc, char ***pargv,
wanted
=
32
;
continue
;
}
if
(
IsJavaArgs
()
&&
argv
[
i
][
0
]
!=
'-'
)
continue
;
if
(
argv
[
i
][
0
]
!=
'-'
)
break
;
}
if
(
running
!=
wanted
)
{
JLI_ReportErrorMessage
(
JRE_ERROR2
,
wanted
);
...
...
test/tools/launcher/ChangeDataModel.java
浏览文件 @
0e9a4d8f
...
...
@@ -23,41 +23,43 @@
/**
* @test
* @bug 4894330 4810347 6277269
* @bug 4894330 4810347 6277269
8029388
* @compile -XDignore.symbol.file ChangeDataModel.java
* @run main ChangeDataModel
* @summary Verify -d32 and -d64 options are accepted(rejected) on all platforms
* @author Joseph D. Darcy, ksrini
*/
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
ChangeDataModel
extends
TestHelper
{
private
static
final
File
TestJar
=
new
File
(
"test"
+
JAR_FILE_EXT
);
private
static
final
String
OptionName
=
"Args"
;
private
static
final
File
TestOptionJar
=
new
File
(
OptionName
+
JAR_FILE_EXT
);
private
static
final
String
OPT_PREFIX
=
"ARCH_OPT:"
;
public
static
void
main
(
String
...
args
)
throws
Exception
{
static
void
createTestJar
(
)
throws
Exception
{
String
[]
code
=
{
" public static void main(String argv[]) {"
,
" System.out.println(\""
+
OPT_PREFIX
+
"-d\" + System.getProperty(\"sun.arch.data.model\", \"none\"));"
,
" }"
,
};
" }"
,};
createJar
(
TestJar
,
code
);
}
public
static
void
main
(
String
...
args
)
throws
Exception
{
createTestJar
();
createOptionsJar
();
// verify if data model flag for default data model is accepted
// verify if data model flag for default data model is accepted, also
// verify if the complimentary data model is rejected.
if
(
is32Bit
)
{
checkAcceptance
(
javaCmd
,
"-d32"
);
}
else
if
(
is64Bit
)
{
checkAcceptance
(
javaCmd
,
"-d64"
);
}
else
{
throw
new
Error
(
"unsupported data model"
);
}
// Negative tests: ensure that non-dual mode systems reject the
// complementary (other) data model
if
(
is32Bit
)
{
checkRejection
(
javaCmd
,
"-d64"
);
checkOption
(
javaCmd
,
"-d64"
);
}
else
if
(
is64Bit
)
{
checkAcceptance
(
javaCmd
,
"-d64"
);
checkRejection
(
javaCmd
,
"-d32"
);
checkOption
(
javaCmd
,
"-d32"
);
}
else
{
throw
new
Error
(
"unsupported data model"
);
}
...
...
@@ -81,4 +83,44 @@ public class ChangeDataModel extends TestHelper {
throw
new
RuntimeException
(
message
);
}
}
static
void
checkOption
(
String
cmd
,
String
dmodel
)
throws
Exception
{
TestResult
tr
=
doExec
(
cmd
,
"-jar"
,
TestOptionJar
.
getAbsolutePath
(),
dmodel
);
verifyOption
(
tr
,
dmodel
);
tr
=
doExec
(
cmd
,
"-cp"
,
"."
,
OptionName
,
dmodel
);
verifyOption
(
tr
,
dmodel
);
}
static
void
verifyOption
(
TestResult
tr
,
String
dmodel
)
{
if
(!
tr
.
contains
(
OPT_PREFIX
+
dmodel
))
{
System
.
out
.
println
(
tr
);
String
message
=
"app argument: "
+
dmodel
+
" not found."
;
throw
new
RuntimeException
(
message
);
}
if
(!
tr
.
isOK
())
{
System
.
out
.
println
(
tr
);
String
message
=
"app argument: "
+
dmodel
+
" interpreted ?"
;
throw
new
RuntimeException
(
message
);
}
}
static
void
createOptionsJar
()
throws
Exception
{
List
<
String
>
code
=
new
ArrayList
<>();
code
.
add
(
"public class Args {"
);
code
.
add
(
" public static void main(String argv[]) {"
);
code
.
add
(
" for (String x : argv)"
);
code
.
add
(
" System.out.println(\""
+
OPT_PREFIX
+
"\" + x);"
);
code
.
add
(
" }"
);
code
.
add
(
"}"
);
File
optionsJava
=
new
File
(
OptionName
+
JAVA_FILE_EXT
);
createFile
(
optionsJava
,
code
);
File
optionsClass
=
new
File
(
OptionName
+
CLASS_FILE_EXT
);
compile
(
optionsJava
.
getName
());
createJar
(
"cvfe"
,
TestOptionJar
.
getName
(),
OptionName
,
optionsClass
.
getName
());
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录