Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
ab120e65
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,发现更多精彩内容 >>
提交
ab120e65
编写于
12月 02, 2015
作者:
A
asaha
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
93e0f4f2
799cd6e9
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
764 addition
and
69 deletion
+764
-69
.hgtags
.hgtags
+14
-0
src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java
src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java
+3
-4
src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
...lasses/javax/swing/plaf/nimbus/AbstractRegionPainter.java
+0
-4
src/share/classes/javax/swing/plaf/nimbus/skin.laf
src/share/classes/javax/swing/plaf/nimbus/skin.laf
+11
-7
src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java
...re/classes/javax/swing/plaf/synth/SynthProgressBarUI.java
+14
-7
src/share/classes/sun/security/util/Resources_zh_CN.java
src/share/classes/sun/security/util/Resources_zh_CN.java
+6
-6
src/share/classes/sun/tools/jar/resources/jar_ja.properties
src/share/classes/sun/tools/jar/resources/jar_ja.properties
+1
-1
src/windows/native/java/net/Inet4AddressImpl.c
src/windows/native/java/net/Inet4AddressImpl.c
+211
-37
test/java/lang/invoke/CustomizedLambdaFormTest.java
test/java/lang/invoke/CustomizedLambdaFormTest.java
+45
-0
test/java/net/MulticastSocket/MultiDead.java
test/java/net/MulticastSocket/MultiDead.java
+15
-1
test/java/nio/file/Files/probeContentType/ParallelProbes.java
.../java/nio/file/Files/probeContentType/ParallelProbes.java
+1
-1
test/javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java
.../swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java
+93
-0
test/lib/testlibrary/jdk/testlibrary/Utils.java
test/lib/testlibrary/jdk/testlibrary/Utils.java
+1
-1
test/sun/security/provider/certpath/ReverseBuilder/ReverseBuild.java
...curity/provider/certpath/ReverseBuilder/ReverseBuild.java
+349
-0
未找到文件。
.hgtags
浏览文件 @
ab120e65
...
...
@@ -432,6 +432,7 @@ ee86422973691bb7efae58d201e5a382ea0bb150 jdk8u51-b16
f94ea276f608b22d78281d70361092ba4864038e jdk8u51-b31
887dde3afb3bb233958775de22eafb3328af6437 jdk8u51-b32
dc7b827522bc3a804f7e8951cc27414f19a7c427 jdk8u51-b33
55ecfc5067721bd27282a14419e5784f7c7d212d jdk8u51-b34
5c31204d19e5976f025026db3d5c17331e8c44db jdk8u60-b00
c46daef6edb5385d11876ed40f292a4b62e96867 jdk8u60-b01
c10fd784956cc7099657181029ac3e790267b678 jdk8u60-b02
...
...
@@ -494,8 +495,11 @@ e951c898bb6ca7be2ce49ac23f8442c0bccad4e9 jdk8u66-b13
ea602badedd0cd0c352c072220a884e8f1335e33 jdk8u66-b15
5ceafca6a734e13d51319df6afd40678d68f9851 jdk8u66-b16
e6d562c0f079dfd1e21c3734b2dca16f4b2e2494 jdk8u66-b17
fd2fe69089aca0f187901a5f6f8bfe261ff17f5b jdk8u66-b18
f712dceafb546ea5833aeea507b5736e7e45f1ae jdk8u66-b31
74cfe16ae44c1c6d511dbeabf13a516da3799d55 jdk8u66-b32
ea7a705eab9e6495d08a92ff21e0370b68374c54 jdk8u66-b33
72ab45285f0e8293aa63e889bc75f0287b6e0436 jdk8u66-b34
9a2747ef337bdee71bc8225dea77eb403cca1179 jdk8u71-b00
e8b5e10a19d66a77d04f12d4677e6fec66f79651 jdk8u71-b01
25d689a73bc037e1710f95f6d4acf0671d22047d jdk8u71-b02
...
...
@@ -503,6 +507,11 @@ ab54163c8610f6238a1d5f1f67cbd19ba13d08a0 jdk8u71-b03
5ea62bb625b6b8f828098884d13eb2e3114a7c97 jdk8u71-b04
1a9ced1852957b65e0c156602c3101aff17274fb jdk8u71-b05
be9d91d310a02c2974d2bdabc31d8a6df8ad596e jdk8u71-b06
f556d4c82ef13430e2708053caa9e11a74b2aebf jdk8u71-b07
a81edad7e1e16c2b3cf2e60a8a98e232ebcaf3b1 jdk8u71-b08
eac13ca04cc5c9adb4f14a76856376db0187f7dc jdk8u71-b09
e494e93d48f943229223d881a2928064a69cdf23 jdk8u71-b10
32226f73879f21f7a7bb024f4197c089b53a93c4 jdk8u71-b11
be5faa9c77042f202106c18f4e8ea211137b4a3b jdk8u72-b00
5ad1e9e8e8417f80c91d7e0f1f44cdf89b34ead3 jdk8u72-b01
ab0c1040414d038ccbcfcc8ceb1ccf2f44ead8e4 jdk8u72-b02
...
...
@@ -510,4 +519,9 @@ bdbb8a650d90d3481802a4f5297b522a16bd3f63 jdk8u72-b03
b6645d81ccd773820aca99548640ace9c2f39225 jdk8u72-b04
2bae9d627eb83f2ea23f4fa86e8eb46920cd1be6 jdk8u72-b05
93148bc60f510af5160b6727533733c66284a84f jdk8u72-b06
2a18f2af436ea62e7565ca0324f99112ef9cd4bc jdk8u72-b07
c7d5bd8d04eb5d2adbb1112de95a2e2986e85925 jdk8u72-b08
ff73e114d682ec14c11099c6c5d48b75bf685394 jdk8u72-b09
dcf7fd07b08b59e1802851d016d913c254221a44 jdk8u72-b10
d7cc3225f1050de03b236b92e12c547f21697013 jdk8u72-b11
7cfd2c51c501df909833aa0fb6e40c50c61621ed jdk8u75-b00
src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java
浏览文件 @
ab120e65
/*
* Copyright (c) 1998, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
5
, 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
...
...
@@ -1041,12 +1041,11 @@ class VirtualMachineImpl extends MirrorImpl
}
Type
findBootType
(
String
signature
)
throws
ClassNotLoadedException
{
List
<
ReferenceType
>
types
=
allClasses
(
);
List
<
ReferenceType
>
types
=
retrieveClassesBySignature
(
signature
);
Iterator
<
ReferenceType
>
iter
=
types
.
iterator
();
while
(
iter
.
hasNext
())
{
ReferenceType
type
=
iter
.
next
();
if
((
type
.
classLoader
()
==
null
)
&&
(
type
.
signature
().
equals
(
signature
)))
{
if
(
type
.
classLoader
()
==
null
)
{
return
type
;
}
}
...
...
src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java
浏览文件 @
ab120e65
...
...
@@ -625,10 +625,6 @@ public abstract class AbstractRegionPainter implements Painter<JComponent> {
// check if we can scale to the requested size
Dimension
canvas
=
ctx
.
canvasSize
;
Insets
insets
=
ctx
.
stretchingInsets
;
if
(
insets
.
left
+
insets
.
right
>
w
||
insets
.
top
+
insets
.
bottom
>
h
)
{
return
;
}
if
(
w
<=
(
canvas
.
width
*
ctx
.
maxHorizontalScaleFactor
)
&&
h
<=
(
canvas
.
height
*
ctx
.
maxVerticalScaleFactor
))
{
// get image at canvas size
VolatileImage
img
=
getImage
(
g
.
getDeviceConfiguration
(),
c
,
canvas
.
width
,
canvas
.
height
,
extendedCacheKeys
);
...
...
src/share/classes/javax/swing/plaf/nimbus/skin.laf
浏览文件 @
ab120e65
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 1998, 201
4
, Oracle and/or its affiliates. All rights reserved.
Copyright (c) 1998, 201
5
, 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
...
...
@@ -16195,6 +16195,10 @@
<dimension width="150" height="19"/>
</uiProperty>
<uiProperty name="cycleTime" type="INT" value="250"/>
<uiProperty name="minBarSize" type="DIMENSION">
<dimension width="6" height="6"/>
</uiProperty>
<uiProperty name="glowWidth" type="INT" value="2"/>
</uiproperties>
</style>
<backgroundStates>
...
...
@@ -16351,7 +16355,7 @@
<canvas>
<size width="27" height="19"/>
<nextLayerNameIndex>2</nextLayerNameIndex>
<stretchingInsets top="
5" bottom="5" left="5" right="5
"/>
<stretchingInsets top="
3" bottom="3" left="3" right="3
"/>
<layer name="Layer 1">
<opacity>1.0</opacity>
<fillOpacity>1.0</fillOpacity>
...
...
@@ -16444,7 +16448,7 @@
<canvas>
<size width="27" height="19"/>
<nextLayerNameIndex>2</nextLayerNameIndex>
<stretchingInsets top="
5" bottom="5" left="5" right="5
"/>
<stretchingInsets top="
3" bottom="3" left="3" right="3
"/>
<layer name="Layer 1">
<opacity>1.0</opacity>
<fillOpacity>1.0</fillOpacity>
...
...
@@ -16528,7 +16532,7 @@
<canvas>
<size width="30" height="13"/>
<nextLayerNameIndex>2</nextLayerNameIndex>
<stretchingInsets top="
5" bottom="5" left="5" right="5
"/>
<stretchingInsets top="
3" bottom="3" left="3" right="3
"/>
<layer name="Layer 1">
<opacity>1.0</opacity>
<fillOpacity>1.0</fillOpacity>
...
...
@@ -16619,7 +16623,7 @@
<canvas>
<size width="27" height="19"/>
<nextLayerNameIndex>2</nextLayerNameIndex>
<stretchingInsets top="
5" bottom="5" left="5" right="5
"/>
<stretchingInsets top="
3" bottom="3" left="3" right="3
"/>
<layer name="Layer 1">
<opacity>1.0</opacity>
<fillOpacity>1.0</fillOpacity>
...
...
@@ -16701,7 +16705,7 @@
<canvas>
<size width="27" height="19"/>
<nextLayerNameIndex>2</nextLayerNameIndex>
<stretchingInsets top="
5" bottom="5" left="5" right="5
"/>
<stretchingInsets top="
3" bottom="3" left="3" right="3
"/>
<layer name="Layer 1">
<opacity>1.0</opacity>
<fillOpacity>1.0</fillOpacity>
...
...
@@ -16785,7 +16789,7 @@
<canvas>
<size width="30" height="13"/>
<nextLayerNameIndex>2</nextLayerNameIndex>
<stretchingInsets top="
5" bottom="5" left="5" right="5
"/>
<stretchingInsets top="
3" bottom="3" left="3" right="3
"/>
<layer name="Layer 1">
<opacity>1.0</opacity>
<fillOpacity>1.0</fillOpacity>
src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java
浏览文件 @
ab120e65
/*
* Copyright (c) 2002, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 201
5
, 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
...
...
@@ -49,6 +49,8 @@ public class SynthProgressBarUI extends BasicProgressBarUI
private
boolean
paintOutsideClip
;
private
boolean
tileWhenIndeterminate
;
//whether to tile indeterminate painting
private
int
tileWidth
;
//the width of each tile
private
Dimension
minBarSize
;
// minimal visible bar size
private
int
glowWidth
;
// Glow around the bar foreground
/**
* Creates a new UI object for the given component.
...
...
@@ -114,6 +116,8 @@ public class SynthProgressBarUI extends BasicProgressBarUI
tileWidth
*=
0.784
;
}
}
minBarSize
=
(
Dimension
)
style
.
get
(
context
,
"ProgressBar.minBarSize"
);
glowWidth
=
style
.
getInt
(
context
,
"ProgressBar.glowWidth"
,
0
);
context
.
dispose
();
}
...
...
@@ -258,7 +262,7 @@ public class SynthProgressBarUI extends BasicProgressBarUI
if
(!
SynthLookAndFeel
.
isLeftToRight
(
pBar
))
{
x
=
pBar
.
getWidth
()
-
pBarInsets
.
right
-
width
-
progressPadding
;
-
progressPadding
-
glowWidth
;
}
}
else
{
// JProgressBar.VERTICAL
x
=
pBarInsets
.
left
+
progressPadding
;
...
...
@@ -271,9 +275,9 @@ public class SynthProgressBarUI extends BasicProgressBarUI
y
=
pBar
.
getHeight
()
-
pBarInsets
.
bottom
-
height
-
progressPadding
;
// When the progress bar is vertical we always paint
// from bottom to top, not matter what the component
// orientation is.
if
(
SynthLookAndFeel
.
isLeftToRight
(
pBar
))
{
y
-=
glowWidth
;
}
}
}
}
else
{
...
...
@@ -307,8 +311,11 @@ public class SynthProgressBarUI extends BasicProgressBarUI
}
g
.
setClip
(
clip
);
}
else
{
context
.
getPainter
().
paintProgressBarForeground
(
context
,
g
,
x
,
y
,
width
,
height
,
pBar
.
getOrientation
());
if
(
minBarSize
==
null
||
(
width
>=
minBarSize
.
width
&&
height
>=
minBarSize
.
height
))
{
context
.
getPainter
().
paintProgressBarForeground
(
context
,
g
,
x
,
y
,
width
,
height
,
pBar
.
getOrientation
());
}
}
if
(
pBar
.
isStringPainted
())
{
...
...
src/share/classes/sun/security/util/Resources_zh_CN.java
浏览文件 @
ab120e65
/*
* Copyright (c) 2000, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 201
5
, 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
...
...
@@ -63,7 +63,7 @@ public class Resources_zh_CN extends java.util.ListResourceBundle {
"\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A AccessControlContext"
},
{
"invalid.null.action.provided"
,
"\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A\u64CD\u4F5C"
},
{
"invalid.null.Class.provided"
,
"\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A\u7C7B"
},
{
"Subject."
,
"\u4E3B\u
9898
: \n"
},
{
"Subject."
,
"\u4E3B\u
4F53
: \n"
},
{
".Principal."
,
"\t\u4E3B\u7528\u6237: "
},
{
".Public.Credential."
,
"\t\u516C\u5171\u8EAB\u4EFD\u8BC1\u660E: "
},
{
".Private.Credentials.inaccessible."
,
...
...
@@ -71,9 +71,9 @@ public class Resources_zh_CN extends java.util.ListResourceBundle {
{
".Private.Credential."
,
"\t\u4E13\u7528\u8EAB\u4EFD\u8BC1\u660E: "
},
{
".Private.Credential.inaccessible."
,
"\t\u65E0\u6CD5\u8BBF\u95EE\u4E13\u7528\u8EAB\u4EFD\u8BC1\u660E\n"
},
{
"Subject.is.read.only"
,
"\u4E3B\u
9898
\u4E3A\u53EA\u8BFB"
},
{
"Subject.is.read.only"
,
"\u4E3B\u
4F53
\u4E3A\u53EA\u8BFB"
},
{
"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set"
,
"\u6B63\u5728\u5C1D\u8BD5\u5C06\u4E00\u4E2A\u975E java.security.Principal \u5B9E\u4F8B\u7684\u5BF9\u8C61\u6DFB\u52A0\u5230\u4E3B\u
9898
\u7684\u4E3B\u7528\u6237\u96C6\u4E2D"
},
"\u6B63\u5728\u5C1D\u8BD5\u5C06\u4E00\u4E2A\u975E java.security.Principal \u5B9E\u4F8B\u7684\u5BF9\u8C61\u6DFB\u52A0\u5230\u4E3B\u
4F53
\u7684\u4E3B\u7528\u6237\u96C6\u4E2D"
},
{
"attempting.to.add.an.object.which.is.not.an.instance.of.class"
,
"\u6B63\u5728\u5C1D\u8BD5\u6DFB\u52A0\u4E00\u4E2A\u975E{0}\u5B9E\u4F8B\u7684\u5BF9\u8C61"
},
...
...
@@ -84,11 +84,11 @@ public class Resources_zh_CN extends java.util.ListResourceBundle {
{
"Invalid.null.input.name"
,
"\u65E0\u6548\u7A7A\u8F93\u5165: \u540D\u79F0"
},
{
"No.LoginModules.configured.for.name"
,
"\u6CA1\u6709\u4E3A{0}\u914D\u7F6E LoginModules"
},
{
"invalid.null.Subject.provided"
,
"\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A\u4E3B\u
9898
"
},
{
"invalid.null.Subject.provided"
,
"\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A\u4E3B\u
4F53
"
},
{
"invalid.null.CallbackHandler.provided"
,
"\u63D0\u4F9B\u4E86\u65E0\u6548\u7684\u7A7A CallbackHandler"
},
{
"null.subject.logout.called.before.login"
,
"\u7A7A\u4E3B\u
9898
- \u5728\u767B\u5F55\u4E4B\u524D\u8C03\u7528\u4E86\u6CE8\u9500"
},
"\u7A7A\u4E3B\u
4F53
- \u5728\u767B\u5F55\u4E4B\u524D\u8C03\u7528\u4E86\u6CE8\u9500"
},
{
"unable.to.instantiate.LoginModule.module.because.it.does.not.provide.a.no.argument.constructor"
,
"\u65E0\u6CD5\u5B9E\u4F8B\u5316 LoginModule, {0}, \u56E0\u4E3A\u5B83\u672A\u63D0\u4F9B\u4E00\u4E2A\u65E0\u53C2\u6570\u6784\u9020\u5668"
},
{
"unable.to.instantiate.LoginModule"
,
...
...
src/share/classes/sun/tools/jar/resources/jar_ja.properties
浏览文件 @
ab120e65
...
...
@@ -45,4 +45,4 @@ out.extracted={0}\u304C\u62BD\u51FA\u3055\u308C\u307E\u3057\u305F
out.inflated
=
\
{0}
\u
304C
\u
5C55
\u
958B
\u3055\u
308C
\u
307E
\u3057\u
305F
out.size
=
(
\u5165
={0})(
\u
51FA={1})
usage
=
\u
4F7F
\u7528\u
65B9
\u
6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
\n\u
30AA
\u
30D7
\u
30B7
\u
30E7
\u
30F3:
\n
-c
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u3092\u
65B0
\u
898F
\u
4F5C
\u6210\u3059\u
308B
\n
-t
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
306E
\u5185\u
5BB9
\u3092\u
4E00
\u
89A7
\u8868\u
793A
\u3059\u
308B
\n
-x
\u6307\u
5B9A
\u
306E(
\u
307E
\u
305F
\u
306F
\u3059\u3079\u3066\u
306E)
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
304B
\u3089\u
62BD
\u
51FA
\u3059\u
308B
\n
-u
\u
65E2
\u
5B58
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u3092\u
66F4
\u
65B0
\u3059\u
308B
\n
-v
\u
6A19
\u
6E96
\u
51FA
\u
529B
\u
306B
\u
8A73
\u
7D30
\u
306A
\u
51FA
\u
529B
\u3092\u
751F
\u6210\u3059\u
308B
\n
-f
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
540D
\u3092\u6307\u
5B9A
\u3059\u
308B
\n
-m
\u6307\u
5B9A
\u
306E
\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
304B
\u3089\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
60C5
\u5831\u3092\u
53D6
\u
308A
\u
8FBC
\u3080\n
-n
\u
65B0
\u
898F
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
306E
\u
4F5C
\u6210\u
5F8C
\u
306BPack200
\u
6B63
\u
898F
\u5316\u3092\u
5B9F
\u
884C
\u3059\u
308B
\n
-e
\u
5B9F
\u
884C
\u
53EF
\u
80FDjar
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
306B
\u
30D0
\u
30F3
\u
30C9
\u
30EB
\u3055\u
308C
\u
305F
\u
30B9
\u
30BF
\u
30F3
\u
30C9
\u
30A2
\u
30ED
\u
30F3
\u
30FB
\n
\u
30A2
\u
30D7
\u
30EA
\u
30B1
\u
30FC
\u
30B7
\u
30E7
\u
30F3
\u
306E
\u
30A8
\u
30F3
\u
30C8
\u
30EA
\u
30FB
\u
30DD
\u
30A4
\u
30F3
\u
30C8
\u3092\u6307\u
5B9A
\u3059\u
308B
\n
-0
\u
683C
\u
7D0D
\u
306E
\u
307F
\u3002
ZIP
\u5727\u
7E2E
\u3092\u
4F7F
\u7528\u3057\u
306A
\u3044\n
-P
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
540D
\u
306E
\u5148\u
982D
\u
306E'/' (
\u
7D76
\u
5BFE
\u
30D1
\u
30B9)
\u
304A
\u3088\u3073\\
"..
\\
"
(
\u
89AA
\u
30C7
\u
30A3
\u
30EC
\u
30AF
\u
30C8
\u
30EA)
\u
30B3
\u
30F3
\u
30DD
\u
30FC
\u
30CD
\u
30F3
\u
30C8
\u3092\u
4FDD
\u6301\u3059\u
308B
\n
-M
\u
30A8
\u
30F3
\u
30C8
\u
30EA
\u
306E
\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092\u
4F5C
\u6210\u3057\u
306A
\u3044\n
-i
\u6307\u
5B9A
\u
306Ejar
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
306E
\u
7D22
\u
5F15
\u
60C5
\u5831\u3092\u
751F
\u6210\u3059\u
308B
\n
-C
\u6307\u
5B9A
\u
306E
\u
30C7
\u
30A3
\u
30EC
\u
30AF
\u
30C8
\u
30EA
\u
306B
\u5909\u
66F4
\u3057\u3001\u
6B21
\u
306E
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092\u
53D6
\u
308A
\u
8FBC
\u3080\n\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
304C
\u
30C7
\u
30A3
\u
30EC
\u
30AF
\u
30C8
\u
30EA
\u
306E
\u5834\u5408\u
306F
\u
518D
\u
5E30
\u7684\u
306B
\u
51E6
\u7406\u3055\u
308C
\u
307E
\u3059\u3002\n\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
540D
\u3001\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
540D
\u
304A
\u3088\u3073\u
30A8
\u
30F3
\u
30C8
\u
30EA
\u
30FB
\u
30DD
\u
30A4
\u
30F3
\u
30C8
\u
540D
\u
306F
\u3001\n\u
30D5
\u
30E9
\u
30B0'm'
\u3001
'f'
\u3001
'e'
\u
306E
\u6307\u
5B9A
\u3068\u
540C
\u3058\u9806\u
756A
\u3067\u6307\u
5B9A
\u3059\u
308B
\u
5FC5
\u8981\u
304C
\u3042\u
308A
\u
307E
\u3059\u3002\n\n\u
4F8B1: 2
\u3064\u
306E
\u
30AF
\u
30E9
\u
30B9
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6classes.jar
\u
306B
\u
4FDD
\u
5B58
\u3059\u
308B:
\n
jar cvf classes.jar Foo.class Bar.class
\n\u
4F8B2:
\u
65E2
\u
5B58
\u
306E
\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB'mymanifest'
\u3092\u
4F7F
\u7528\u3057\u3001
foo/
\u
30C7
\u
30A3
\u
30EC
\u
30AF
\u
30C8
\u
30EA
\u
306E
\n
\u5168\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092
'classes.jar'
\u
306B
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u3059\u
308B:
\n
jar cvfm classes.jar mymanifest -C foo/
\n
usage
=
\u
4F7F
\u7528\u
65B9
\u
6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
\n\u
30AA
\u
30D7
\u
30B7
\u
30E7
\u
30F3:
\n
-c
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u3092\u
65B0
\u
898F
\u
4F5C
\u6210\u3059\u
308B
\n
-t
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
306E
\u5185\u
5BB9
\u3092\u
4E00
\u
89A7
\u8868\u
793A
\u3059\u
308B
\n
-x
\u6307\u
5B9A
\u
306E(
\u
307E
\u
305F
\u
306F
\u3059\u3079\u3066\u
306E)
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
304B
\u3089\u
62BD
\u
51FA
\u3059\u
308B
\n
-u
\u
65E2
\u
5B58
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u3092\u
66F4
\u
65B0
\u3059\u
308B
\n
-v
\u
6A19
\u
6E96
\u
51FA
\u
529B
\u
306B
\u
8A73
\u
7D30
\u
306A
\u
51FA
\u
529B
\u3092\u
751F
\u6210\u3059\u
308B
\n
-f
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
540D
\u3092\u6307\u
5B9A
\u3059\u
308B
\n
-m
\u6307\u
5B9A
\u
306E
\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
304B
\u3089\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
60C5
\u5831\u3092\u
53D6
\u
308A
\u
8FBC
\u3080\n
-n
\u
65B0
\u
898F
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
306E
\u
4F5C
\u6210\u
5F8C
\u
306BPack200
\u
6B63
\u
898F
\u5316\u3092\u
5B9F
\u
884C
\u3059\u
308B
\n
-e
\u
5B9F
\u
884C
\u
53EF
\u
80FDjar
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
306B
\u
30D0
\u
30F3
\u
30C9
\u
30EB
\u3055\u
308C
\u
305F
\u
30B9
\u
30BF
\u
30F3
\u
30C9
\u
30A2
\u
30ED
\u
30F3
\u
30FB
\n
\u
30A2
\u
30D7
\u
30EA
\u
30B1
\u
30FC
\u
30B7
\u
30E7
\u
30F3
\u
306E
\u
30A8
\u
30F3
\u
30C8
\u
30EA
\u
30FB
\u
30DD
\u
30A4
\u
30F3
\u
30C8
\u3092\u6307\u
5B9A
\u3059\u
308B
\n
-0
\u
683C
\u
7D0D
\u
306E
\u
307F
\u3002
ZIP
\u5727\u
7E2E
\u3092\u
4F7F
\u7528\u3057\u
306A
\u3044\n
-P
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
540D
\u
306E
\u5148\u
982D
\u
306E'/' (
\u
7D76
\u
5BFE
\u
30D1
\u
30B9)
\u
304A
\u3088\u3073\\
"..
\\
"
(
\u
89AA
\u
30C7
\u
30A3
\u
30EC
\u
30AF
\u
30C8
\u
30EA)
\u
30B3
\u
30F3
\u
30DD
\u
30FC
\u
30CD
\u
30F3
\u
30C8
\u3092\u
4FDD
\u6301\u3059\u
308B
\n
-M
\u
30A8
\u
30F3
\u
30C8
\u
30EA
\u
306E
\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092\u
4F5C
\u6210\u3057\u
306A
\u3044\n
-i
\u6307\u
5B9A
\u
306Ejar
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
306E
\u
7D22
\u
5F15
\u
60C5
\u5831\u3092\u
751F
\u6210\u3059\u
308B
\n
-C
\u6307\u
5B9A
\u
306E
\u
30C7
\u
30A3
\u
30EC
\u
30AF
\u
30C8
\u
30EA
\u
306B
\u5909\u
66F4
\u3057\u3001\u
6B21
\u
306E
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092\u
53D6
\u
308A
\u
8FBC
\u3080\n\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
304C
\u
30C7
\u
30A3
\u
30EC
\u
30AF
\u
30C8
\u
30EA
\u
306E
\u5834\u5408\u
306F
\u
518D
\u
5E30
\u7684\u
306B
\u
51E6
\u7406\u3055\u
308C
\u
307E
\u3059\u3002\n\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
540D
\u3001\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u
540D
\u
304A
\u3088\u3073\u
30A8
\u
30F3
\u
30C8
\u
30EA
\u
30FB
\u
30DD
\u
30A4
\u
30F3
\u
30C8
\u
540D
\u
306F
\u3001\n\u
30D5
\u
30E9
\u
30B0'm'
\u3001
'f'
\u3001
'e'
\u
306E
\u6307\u
5B9A
\u3068\u
540C
\u3058\u9806\u
756A
\u3067\u6307\u
5B9A
\u3059\u
308B
\u
5FC5
\u8981\u
304C
\u3042\u
308A
\u
307E
\u3059\u3002\n\n\u
4F8B1: 2
\u3064\u
306E
\u
30AF
\u
30E9
\u
30B9
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6classes.jar
\u
306B
\u
4FDD
\u
5B58
\u3059\u
308B:
\n
jar cvf classes.jar Foo.class Bar.class
\n\u
4F8B2:
\u
65E2
\u
5B58
\u
306E
\u
30DE
\u
30CB
\u
30D5
\u
30A7
\u
30B9
\u
30C8
\u
30FB
\u
30D5
\u
30A1
\u
30A4
\u
30EB'mymanifest'
\u3092\u
4F7F
\u7528\u3057\u3001
foo/
\u
30C7
\u
30A3
\u
30EC
\u
30AF
\u
30C8
\u
30EA
\u
306E
\n
\u5168\u
30D5
\u
30A1
\u
30A4
\u
30EB
\u3092
'classes.jar'
\u
306B
\u
30A2
\u
30FC
\u
30AB
\u
30A4
\u
30D6
\u3059\u
308B:
\n
jar cvfm classes.jar mymanifest -C foo/
.
\n
src/windows/native/java/net/Inet4AddressImpl.c
浏览文件 @
ab120e65
...
...
@@ -292,6 +292,175 @@ Java_java_net_Inet4AddressImpl_getHostByAddr(JNIEnv *env, jobject this,
}
static
BOOL
WindowsVersionCheck
(
WORD
wMajorVersion
,
WORD
wMinorVersion
,
WORD
wServicePackMajor
)
{
OSVERSIONINFOEXW
osvi
=
{
sizeof
(
osvi
),
0
,
0
,
0
,
0
,
{
0
},
0
,
0
};
DWORDLONG
const
dwlConditionMask
=
VerSetConditionMask
(
VerSetConditionMask
(
VerSetConditionMask
(
0
,
VER_MAJORVERSION
,
VER_GREATER_EQUAL
),
VER_MINORVERSION
,
VER_GREATER_EQUAL
),
VER_SERVICEPACKMAJOR
,
VER_GREATER_EQUAL
);
osvi
.
dwMajorVersion
=
wMajorVersion
;
osvi
.
dwMinorVersion
=
wMinorVersion
;
osvi
.
wServicePackMajor
=
wServicePackMajor
;
return
VerifyVersionInfoW
(
&
osvi
,
VER_MAJORVERSION
|
VER_MINORVERSION
|
VER_SERVICEPACKMAJOR
,
dwlConditionMask
)
!=
FALSE
;
}
static
BOOL
isVistaSP1OrGreater
()
{
return
WindowsVersionCheck
(
HIBYTE
(
_WIN32_WINNT_VISTA
),
LOBYTE
(
_WIN32_WINNT_VISTA
),
1
);
}
static
jboolean
wxp_ping4
(
JNIEnv
*
env
,
jbyteArray
addrArray
,
jint
timeout
,
jbyteArray
ifArray
,
jint
ttl
)
{
jint
addr
;
jbyte
caddr
[
4
];
jint
fd
;
struct
sockaddr_in
him
;
struct
sockaddr_in
*
netif
=
NULL
;
struct
sockaddr_in
inf
;
int
len
=
0
;
WSAEVENT
hEvent
;
int
connect_rv
=
-
1
;
int
sz
;
/**
* Convert IP address from byte array to integer
*/
sz
=
(
*
env
)
->
GetArrayLength
(
env
,
addrArray
);
if
(
sz
!=
4
)
{
return
JNI_FALSE
;
}
memset
((
char
*
)
&
him
,
0
,
sizeof
(
him
));
memset
((
char
*
)
caddr
,
0
,
sizeof
(
caddr
));
(
*
env
)
->
GetByteArrayRegion
(
env
,
addrArray
,
0
,
4
,
caddr
);
addr
=
((
caddr
[
0
]
<<
24
)
&
0xff000000
);
addr
|=
((
caddr
[
1
]
<<
16
)
&
0xff0000
);
addr
|=
((
caddr
[
2
]
<<
8
)
&
0xff00
);
addr
|=
(
caddr
[
3
]
&
0xff
);
addr
=
htonl
(
addr
);
/**
* Socket address
*/
him
.
sin_addr
.
s_addr
=
addr
;
him
.
sin_family
=
AF_INET
;
len
=
sizeof
(
him
);
/**
* If a network interface was specified, let's convert its address
* as well.
*/
if
(
!
(
IS_NULL
(
ifArray
)))
{
memset
((
char
*
)
caddr
,
0
,
sizeof
(
caddr
));
(
*
env
)
->
GetByteArrayRegion
(
env
,
ifArray
,
0
,
4
,
caddr
);
addr
=
((
caddr
[
0
]
<<
24
)
&
0xff000000
);
addr
|=
((
caddr
[
1
]
<<
16
)
&
0xff0000
);
addr
|=
((
caddr
[
2
]
<<
8
)
&
0xff00
);
addr
|=
(
caddr
[
3
]
&
0xff
);
addr
=
htonl
(
addr
);
inf
.
sin_addr
.
s_addr
=
addr
;
inf
.
sin_family
=
AF_INET
;
inf
.
sin_port
=
0
;
netif
=
&
inf
;
}
/*
* Can't create a raw socket, so let's try a TCP socket
*/
fd
=
NET_Socket
(
AF_INET
,
SOCK_STREAM
,
0
);
if
(
fd
==
JVM_IO_ERR
)
{
/* note: if you run out of fds, you may not be able to load
* the exception class, and get a NoClassDefFoundError
* instead.
*/
NET_ThrowNew
(
env
,
WSAGetLastError
(),
"Can't create socket"
);
return
JNI_FALSE
;
}
if
(
ttl
>
0
)
{
setsockopt
(
fd
,
IPPROTO_IP
,
IP_TTL
,
(
const
char
*
)
&
ttl
,
sizeof
(
ttl
));
}
/*
* A network interface was specified, so let's bind to it.
*/
if
(
netif
!=
NULL
)
{
if
(
bind
(
fd
,
(
struct
sockaddr
*
)
netif
,
sizeof
(
struct
sockaddr_in
))
<
0
)
{
NET_ThrowNew
(
env
,
WSAGetLastError
(),
"Can't bind socket"
);
closesocket
(
fd
);
return
JNI_FALSE
;
}
}
/*
* Make the socket non blocking so we can use select/poll.
*/
hEvent
=
WSACreateEvent
();
WSAEventSelect
(
fd
,
hEvent
,
FD_READ
|
FD_CONNECT
|
FD_CLOSE
);
/* no need to use NET_Connect as non-blocking */
him
.
sin_port
=
htons
(
7
);
/* Echo */
connect_rv
=
connect
(
fd
,
(
struct
sockaddr
*
)
&
him
,
len
);
/**
* connection established or refused immediately, either way it means
* we were able to reach the host!
*/
if
(
connect_rv
==
0
||
WSAGetLastError
()
==
WSAECONNREFUSED
)
{
WSACloseEvent
(
hEvent
);
closesocket
(
fd
);
return
JNI_TRUE
;
}
else
{
int
optlen
;
switch
(
WSAGetLastError
())
{
case
WSAEHOSTUNREACH
:
/* Host Unreachable */
case
WSAENETUNREACH
:
/* Network Unreachable */
case
WSAENETDOWN
:
/* Network is down */
case
WSAEPFNOSUPPORT
:
/* Protocol Family unsupported */
WSACloseEvent
(
hEvent
);
closesocket
(
fd
);
return
JNI_FALSE
;
}
if
(
WSAGetLastError
()
!=
WSAEWOULDBLOCK
)
{
NET_ThrowByNameWithLastError
(
env
,
JNU_JAVANETPKG
"ConnectException"
,
"connect failed"
);
WSACloseEvent
(
hEvent
);
closesocket
(
fd
);
return
JNI_FALSE
;
}
timeout
=
NET_Wait
(
env
,
fd
,
NET_WAIT_CONNECT
,
timeout
);
/* has connection been established */
if
(
timeout
>=
0
)
{
optlen
=
sizeof
(
connect_rv
);
if
(
getsockopt
(
fd
,
SOL_SOCKET
,
SO_ERROR
,
(
void
*
)
&
connect_rv
,
&
optlen
)
<
0
)
{
connect_rv
=
WSAGetLastError
();
}
if
(
connect_rv
==
0
||
connect_rv
==
WSAECONNREFUSED
)
{
WSACloseEvent
(
hEvent
);
closesocket
(
fd
);
return
JNI_TRUE
;
}
}
}
WSACloseEvent
(
hEvent
);
closesocket
(
fd
);
return
JNI_FALSE
;
}
/**
* ping implementation.
* Send a ICMP_ECHO_REQUEST packet every second until either the timeout
...
...
@@ -367,43 +536,48 @@ ping4(JNIEnv *env,
*/
JNIEXPORT
jboolean
JNICALL
Java_java_net_Inet4AddressImpl_isReachable0
(
JNIEnv
*
env
,
jobject
this
,
jbyteArray
addrArray
,
jint
timeout
,
jbyteArray
ifArray
,
jint
ttl
)
{
jint
src_addr
=
0
;
jint
dest_addr
=
0
;
jbyte
caddr
[
4
];
int
sz
;
/**
* Convert IP address from byte array to integer
*/
sz
=
(
*
env
)
->
GetArrayLength
(
env
,
addrArray
);
if
(
sz
!=
4
)
{
return
JNI_FALSE
;
}
memset
((
char
*
)
caddr
,
0
,
sizeof
(
caddr
));
(
*
env
)
->
GetByteArrayRegion
(
env
,
addrArray
,
0
,
4
,
caddr
);
dest_addr
=
((
caddr
[
0
]
<<
24
)
&
0xff000000
);
dest_addr
|=
((
caddr
[
1
]
<<
16
)
&
0xff0000
);
dest_addr
|=
((
caddr
[
2
]
<<
8
)
&
0xff00
);
dest_addr
|=
(
caddr
[
3
]
&
0xff
);
dest_addr
=
htonl
(
dest_addr
);
/**
* If a network interface was specified, let's convert its address
* as well.
*/
if
(
!
(
IS_NULL
(
ifArray
)))
{
jbyteArray
addrArray
,
jint
timeout
,
jbyteArray
ifArray
,
jint
ttl
)
{
if
(
isVistaSP1OrGreater
())
{
jint
src_addr
=
0
;
jint
dest_addr
=
0
;
jbyte
caddr
[
4
];
int
sz
;
/**
* Convert IP address from byte array to integer
*/
sz
=
(
*
env
)
->
GetArrayLength
(
env
,
addrArray
);
if
(
sz
!=
4
)
{
return
JNI_FALSE
;
}
memset
((
char
*
)
caddr
,
0
,
sizeof
(
caddr
));
(
*
env
)
->
GetByteArrayRegion
(
env
,
ifArray
,
0
,
4
,
caddr
);
src_addr
=
((
caddr
[
0
]
<<
24
)
&
0xff000000
);
src_addr
|=
((
caddr
[
1
]
<<
16
)
&
0xff0000
);
src_addr
|=
((
caddr
[
2
]
<<
8
)
&
0xff00
);
src_addr
|=
(
caddr
[
3
]
&
0xff
);
src_addr
=
htonl
(
src_addr
);
}
(
*
env
)
->
GetByteArrayRegion
(
env
,
addrArray
,
0
,
4
,
caddr
);
dest_addr
=
((
caddr
[
0
]
<<
24
)
&
0xff000000
);
dest_addr
|=
((
caddr
[
1
]
<<
16
)
&
0xff0000
);
dest_addr
|=
((
caddr
[
2
]
<<
8
)
&
0xff00
);
dest_addr
|=
(
caddr
[
3
]
&
0xff
);
dest_addr
=
htonl
(
dest_addr
);
/**
* If a network interface was specified, let's convert its address
* as well.
*/
if
(
!
(
IS_NULL
(
ifArray
)))
{
memset
((
char
*
)
caddr
,
0
,
sizeof
(
caddr
));
(
*
env
)
->
GetByteArrayRegion
(
env
,
ifArray
,
0
,
4
,
caddr
);
src_addr
=
((
caddr
[
0
]
<<
24
)
&
0xff000000
);
src_addr
|=
((
caddr
[
1
]
<<
16
)
&
0xff0000
);
src_addr
|=
((
caddr
[
2
]
<<
8
)
&
0xff00
);
src_addr
|=
(
caddr
[
3
]
&
0xff
);
src_addr
=
htonl
(
src_addr
);
}
return
ping4
(
env
,
src_addr
,
dest_addr
,
timeout
);
return
ping4
(
env
,
src_addr
,
dest_addr
,
timeout
);
}
else
{
wxp_ping4
(
env
,
addrArray
,
timeout
,
ifArray
,
ttl
);
}
}
test/java/lang/invoke/CustomizedLambdaFormTest.java
0 → 100644
浏览文件 @
ab120e65
/*
* Copyright (c) 2015, 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.
*/
package
java.lang.invoke
;
/* @test
* @summary Assertion in LambdaFormEditor.bindArgumentType is too strong
*
* @run main/bootclasspath -esa java.lang.invoke.CustomizedLambdaFormTest
*/
public
class
CustomizedLambdaFormTest
{
static
void
testExtendCustomizedBMH
()
throws
Exception
{
// Construct BMH
MethodHandle
mh
=
MethodHandles
.
Lookup
.
IMPL_LOOKUP
.
findVirtual
(
String
.
class
,
"concat"
,
MethodType
.
methodType
(
String
.
class
,
String
.
class
))
.
bindTo
(
"a"
);
mh
.
customize
();
mh
.
bindTo
(
"b"
);
// Try to extend customized BMH
}
public
static
void
main
(
String
[]
args
)
throws
Throwable
{
testExtendCustomizedBMH
();
}
}
test/java/net/MulticastSocket/MultiDead.java
浏览文件 @
ab120e65
...
...
@@ -35,11 +35,17 @@ import java.net.MulticastSocket;
import
java.util.concurrent.atomic.AtomicBoolean
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.concurrent.CountDownLatch
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
MILLISECONDS
;
import
jdk.testlibrary.JDKToolLauncher
;
import
jdk.testlibrary.Utils
;
public
class
MultiDead
{
private
static
final
int
THREAD_PAIR_COUNT
=
4
;
private
static
final
int
CHILDREN_COUNT
=
20
;
// at least 2.5 seconds for a child to complete
private
static
final
long
CHILD_TIMEOUT
=
2500
;
private
static
final
long
TIMEOUT
=
Utils
.
adjustTimeout
(
CHILDREN_COUNT
*
CHILD_TIMEOUT
*
2
);
public
static
void
main
(
String
[]
args
)
throws
Throwable
{
if
(
args
.
length
==
0
||
args
[
0
].
equals
(
"parent"
))
{
...
...
@@ -65,6 +71,7 @@ public class MultiDead {
for
(
int
i
=
0
;
i
<
CHILDREN_COUNT
;
++
i
)
{
System
.
out
.
println
(
"child #"
+
(
i
+
1
)
+
" of "
+
CHILDREN_COUNT
);
long
start
=
System
.
nanoTime
();
try
{
child
.
set
(
pb
.
start
());
child
.
get
().
waitFor
();
...
...
@@ -74,11 +81,18 @@ public class MultiDead {
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
if
(
System
.
nanoTime
()
-
start
>
MILLISECONDS
.
toNanos
(
CHILD_TIMEOUT
))
{
System
.
err
.
println
(
"Machine is too slow, "
+
"skipping the test..."
);
break
;
}
}
});
th
.
start
();
th
.
join
(
CHILDREN_COUNT
*
1000
);
// 1 sec for a child to complete
th
.
join
(
TIMEOUT
);
stopFlag
.
set
(
true
);
if
(
th
.
isAlive
())
{
if
(
child
.
get
()
!=
null
)
{
...
...
test/java/nio/file/Files/probeContentType/ParallelProbes.java
浏览文件 @
ab120e65
...
...
@@ -29,7 +29,7 @@ import java.util.ArrayList;
/* @test
* @summary Test probing content type simultaneously from multiple threads.
* @requires (os.family == "linux") | (os.family == "solaris")
* @run main
/othervm
ParallelProbes 10
* @run main ParallelProbes 10
*/
public
class
ParallelProbes
{
...
...
test/javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java
0 → 100644
浏览文件 @
ab120e65
/*
* Copyright (c) 2015, 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 8134828
@summary Scrollbar thumb disappears with Nimbus L&F
@author Semyon Sadetsky
*/
import
javax.swing.*
;
import
java.awt.*
;
public
class
ScrollBarThumbVisibleTest
{
private
static
JFrame
frame
;
private
static
Point
point
;
private
static
JScrollBar
bar
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
for
(
UIManager
.
LookAndFeelInfo
info
:
UIManager
.
getInstalledLookAndFeels
())
{
if
(
"Nimbus"
.
equals
(
info
.
getName
()))
{
try
{
UIManager
.
setLookAndFeel
(
info
.
getClassName
());
}
catch
(
Exception
ex
)
{
}
break
;
}
}
try
{
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
public
void
run
()
{
frame
=
new
JFrame
();
frame
.
setUndecorated
(
true
);
frame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
setup
(
frame
);
}
});
final
Robot
robot
=
new
Robot
();
robot
.
delay
(
200
);
robot
.
waitForIdle
();
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
@Override
public
void
run
()
{
point
=
bar
.
getLocationOnScreen
();
}
});
Color
color1
=
robot
.
getPixelColor
(
point
.
x
+
48
,
point
.
y
+
55
);
Color
color2
=
robot
.
getPixelColor
(
point
.
x
+
48
,
point
.
y
+
125
);
System
.
out
.
println
(
color1
);
System
.
out
.
println
(
color2
);
if
(
color1
.
equals
(
color2
))
{
throw
new
RuntimeException
(
"Thump is not visible"
);
}
}
finally
{
SwingUtilities
.
invokeAndWait
(
new
Runnable
()
{
@Override
public
void
run
()
{
frame
.
dispose
();
}
});
}
System
.
out
.
println
(
"ok"
);
}
static
void
setup
(
JFrame
frame
)
{
bar
=
new
JScrollBar
(
Adjustable
.
VERTICAL
,
500
,
0
,
0
,
1000
);
frame
.
getContentPane
().
add
(
bar
);
frame
.
setSize
(
50
,
250
);
frame
.
setLocation
(
100
,
100
);
frame
.
setVisible
(
true
);
}
}
test/lib/testlibrary/jdk/testlibrary/Utils.java
浏览文件 @
ab120e65
...
...
@@ -66,7 +66,7 @@ public final class Utils {
public
static
final
double
TIMEOUT_FACTOR
;
static
{
String
toFactor
=
System
.
getProperty
(
"test.timeout.factor"
,
"1.0"
);
TIMEOUT_FACTOR
=
Double
.
parseDouble
(
toFactor
);
TIMEOUT_FACTOR
=
Double
.
parseDouble
(
toFactor
);
}
/**
...
...
test/sun/security/provider/certpath/ReverseBuilder/ReverseBuild.java
0 → 100644
浏览文件 @
ab120e65
/*
* Copyright (c) 2012, 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 7167988
* @summary PKIX CertPathBuilder in reverse mode doesn't work if more than
* one trust anchor is specified
* @run main/othervm ReverseBuild
*/
import
java.io.*
;
import
java.util.*
;
import
java.security.cert.*
;
import
sun.security.provider.certpath.SunCertPathBuilderParameters
;
public
class
ReverseBuild
{
// Certificate information:
// Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
// Validity
// Not Before: Dec 8 02:43:36 2008 GMT
// Not After : Aug 25 02:43:36 2028 GMT
// Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
// X509v3 Subject Key Identifier:
// FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
// X509v3 Authority Key Identifier:
// keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
// DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
// serial:00
static
String
NoiceTrusedCertStr
=
"-----BEGIN CERTIFICATE-----\n"
+
"MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n"
+
"MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n"
+
"EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n"
+
"BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n"
+
"dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n"
+
"gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n"
+
"4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n"
+
"7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n"
+
"A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n"
+
"hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n"
+
"U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n"
+
"DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n"
+
"ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n"
+
"LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n"
+
"6Mvf0r1PNTY2hwTJLJmKtg==\n"
+
"-----END CERTIFICATE-----"
;
// Certificate information:
// Issuer: C=US, O=Java, OU=SunJSSE Test Serivce
// Validity
// Not Before: Aug 19 01:52:19 2011 GMT
// Not After : Jul 29 01:52:19 2032 GMT
// Subject: C=US, O=Java, OU=SunJSSE Test Serivce
// X509v3 Subject Key Identifier:
// B9:7C:D5:D9:DF:A7:4C:03:AE:FD:0E:27:5B:31:95:6C:C7:F3:75:E1
// X509v3 Authority Key Identifier:
// keyid:B9:7C:D5:D9:DF:A7:4C:03:AE:FD:0E:27:5B:31:95:6C:C7:F3:75:E1
// DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
// serial:00
static
String
NoiceTrusedCertStr_2nd
=
"-----BEGIN CERTIFICATE-----\n"
+
"MIICkjCCAfugAwIBAgIBADANBgkqhkiG9w0BAQQFADA7MQswCQYDVQQGEwJVUzEN\n"
+
"MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwHhcN\n"
+
"MTEwODE5MDE1MjE5WhcNMzIwNzI5MDE1MjE5WjA7MQswCQYDVQQGEwJVUzENMAsG\n"
+
"A1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwgZ8wDQYJ\n"
+
"KoZIhvcNAQEBBQADgY0AMIGJAoGBAM8orG08DtF98TMSscjGsidd1ZoN4jiDpi8U\n"
+
"ICz+9dMm1qM1d7O2T+KH3/mxyox7Rc2ZVSCaUD0a3CkhPMnlAx8V4u0H+E9sqso6\n"
+
"iDW3JpOyzMExvZiRgRG/3nvp55RMIUV4vEHOZ1QbhuqG4ebN0Vz2DkRft7+flthf\n"
+
"vDld6f5JAgMBAAGjgaUwgaIwHQYDVR0OBBYEFLl81dnfp0wDrv0OJ1sxlWzH83Xh\n"
+
"MGMGA1UdIwRcMFqAFLl81dnfp0wDrv0OJ1sxlWzH83XhoT+kPTA7MQswCQYDVQQG\n"
+
"EwJVUzENMAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2\n"
+
"Y2WCAQAwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEE\n"
+
"BQADgYEALlgaH1gWtoBZ84EW8Hu6YtGLQ/L9zIFmHonUPZwn3Pr//icR9Sqhc3/l\n"
+
"pVTxOINuFHLRz4BBtEylzRIOPzK3tg8XwuLb1zd0db90x3KBCiAL6E6cklGEPwLe\n"
+
"XYMHDn9eDsaq861Tzn6ZwzMgw04zotPMoZN0mVd/3Qca8UJFucE=\n"
+
"-----END CERTIFICATE-----"
;
// Certificate information:
// Issuer: C=US, O=Java, OU=SunJSSE Test Serivce
// Validity
// Not Before: May 5 02:40:50 2012 GMT
// Not After : Apr 15 02:40:50 2033 GMT
// Subject: C=US, O=Java, OU=SunJSSE Test Serivce
// X509v3 Subject Key Identifier:
// DD:4E:8D:2A:11:C0:83:03:F0:AC:EB:A2:BF:F9:F2:7D:C8:69:1F:9B
// X509v3 Authority Key Identifier:
// keyid:DD:4E:8D:2A:11:C0:83:03:F0:AC:EB:A2:BF:F9:F2:7D:C8:69:1F:9B
// DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
// serial:00
static
String
trustedCertStr
=
"-----BEGIN CERTIFICATE-----\n"
+
"MIICkjCCAfugAwIBAgIBADANBgkqhkiG9w0BAQIFADA7MQswCQYDVQQGEwJVUzEN\n"
+
"MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwHhcN\n"
+
"MTIwNTA1MDI0MDUwWhcNMzMwNDE1MDI0MDUwWjA7MQswCQYDVQQGEwJVUzENMAsG\n"
+
"A1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwgZ8wDQYJ\n"
+
"KoZIhvcNAQEBBQADgY0AMIGJAoGBANtiq0AIJK+iVRwFrqcD7fYXTCbMYC5Qz/k6\n"
+
"AXBy7/1rI8wDhEJLE3m/+NSqiJwZcmdq2dNh/1fJFrwvzuURbc9+paOBWeHbN+Sc\n"
+
"x3huw91oPZme385VpoK3G13rSE114S/rF4DM9mz4EStFhSHXATjtdbskNOAYGLTV\n"
+
"x8uEy9GbAgMBAAGjgaUwgaIwHQYDVR0OBBYEFN1OjSoRwIMD8Kzror/58n3IaR+b\n"
+
"MGMGA1UdIwRcMFqAFN1OjSoRwIMD8Kzror/58n3IaR+boT+kPTA7MQswCQYDVQQG\n"
+
"EwJVUzENMAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2\n"
+
"Y2WCAQAwDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEC\n"
+
"BQADgYEAjjkJesQrkbr36N40egybaIxw7RcqT6iy5fkAGS1JYlBDk8uSCK1o6bCH\n"
+
"ls5EpYcGeEoabSS73WRdkO1lgeyWDduO4ef8cCCSpmpT6/YdZG0QS1PtcREeVig+\n"
+
"Zr25jNemS4ADHX0aaXP4kiV/G80cR7nX5t5XCUm4bYdbwM07NgI=\n"
+
"-----END CERTIFICATE-----"
;
static
String
trustedPrivateKey
=
// Private key in the format of PKCS#8
"MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANtiq0AIJK+iVRwF\n"
+
"rqcD7fYXTCbMYC5Qz/k6AXBy7/1rI8wDhEJLE3m/+NSqiJwZcmdq2dNh/1fJFrwv\n"
+
"zuURbc9+paOBWeHbN+Scx3huw91oPZme385VpoK3G13rSE114S/rF4DM9mz4EStF\n"
+
"hSHXATjtdbskNOAYGLTVx8uEy9GbAgMBAAECgYEA2VjHkIiA0ABjkX+PqKeb+VLb\n"
+
"fxS7tSca5C8zfdRhLxAWRui0/3ihst0eCJNrBDuxvAOACovsDWyLuaUjtI2v2ysz\n"
+
"vz6SPyGy82PhQOFzyKQuQ814N6EpothpiZzF0yFchfKIGhUsdY89UrGs9nM7m6NT\n"
+
"rztYvgIu4avg2VPR2AECQQD+pFAqipR2BplQRIuuRSZfHRxvoEyDjT1xnHJsC6WP\n"
+
"I5hCLghL91MhQGWbP4EJMKYQOTRVukWlcp2Kycpf+P5hAkEA3I43gmVUAPEdyZdY\n"
+
"fatW7OaLlbbYJb6qEtpCZ1Rwe/BIvm6H6E3qSi/lpz7Ia7WDulpbF6BawHH3pRFq\n"
+
"CUY5ewJBAP3pUDqrRpBN0jB0uSeDslhjSciQ+dqvSpZv3rSYBHUvlBJhnkpJiy37\n"
+
"7ZUZhIxqYxyIPgRBolLwb+FFh7OdL+ECQCtldDic9WVmC+VheRDpCKZ+SlK/8lGi\n"
+
"7VXeShiIvcU1JysJFoa35fSI7hf1O3wt7+hX5PqGG7Un94EsJwACKEcCQQC1TWt6\n"
+
"ArKH6tRxKjOxFtqfs8fgEVYUaOr3j1jF4KBUuX2mtQtddZe3VfJ2wPsuKMMxmhkB\n"
+
"e7xWWZnJsErt2e+E"
;
// Certificate information:
// Issuer: C=US, O=Java, OU=SunJSSE Test Serivce
// Validity
// Not Before: May 5 02:40:53 2012 GMT
// Not After : Jan 21 02:40:53 2032 GMT
// Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=casigner
// X509v3 Subject Key Identifier:
// 13:07:E0:11:07:DB:EB:33:23:87:31:D0:DB:7E:16:56:BE:11:90:0A
// X509v3 Authority Key Identifier:
// keyid:DD:4E:8D:2A:11:C0:83:03:F0:AC:EB:A2:BF:F9:F2:7D:C8:69:1F:9B
// DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
// serial:00
static
String
caSignerStr
=
"-----BEGIN CERTIFICATE-----\n"
+
"MIICqDCCAhGgAwIBAgIBAjANBgkqhkiG9w0BAQQFADA7MQswCQYDVQQGEwJVUzEN\n"
+
"MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UwHhcN\n"
+
"MTIwNTA1MDI0MDUzWhcNMzIwMTIxMDI0MDUzWjBOMQswCQYDVQQGEwJVUzENMAsG\n"
+
"A1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxETAPBgNV\n"
+
"BAMTCGNhc2lnbmVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+x8+o7oM0\n"
+
"ct/LZmZLXBL4CQ8jrULD5P7NtEW0hg/zxBFZfBHf+44Oo2eMPYZj+7xaREOH5BmV\n"
+
"KRYlzRtONAaC5Ng4Mrm5UKNPcMIIUjUOvm7vWM4oSTMSfoEcSX+vp99uUAkw3w7Z\n"
+
"+frYDm1M4At/j0b+lLij71GFN2L8drpgPQIDAQABo4GoMIGlMB0GA1UdDgQWBBQT\n"
+
"B+ARB9vrMyOHMdDbfhZWvhGQCjBjBgNVHSMEXDBagBTdTo0qEcCDA/Cs66K/+fJ9\n"
+
"yGkfm6E/pD0wOzELMAkGA1UEBhMCVVMxDTALBgNVBAoTBEphdmExHTAbBgNVBAsT\n"
+
"FFN1bkpTU0UgVGVzdCBTZXJpdmNlggEAMBIGA1UdEwEB/wQIMAYBAf8CAQEwCwYD\n"
+
"VR0PBAQDAgEGMA0GCSqGSIb3DQEBBAUAA4GBAI+LXA/UCPkTANablUkt80JNPWsl\n"
+
"pS4XLNgPxWaN0bkRDs5oI4ooWAz1rwpeJ/nfetOvWlpmrVjSeovBFja5Hl+dUHTf\n"
+
"VfuyzkxXbhuNiJIpo1mVBpNsjwu9YRxuwX6UA2LTUQpgvtVJEE012x3zRvxBCbu2\n"
+
"Y/v1R5fZ4c+hXDfC\n"
+
"-----END CERTIFICATE-----"
;
static
String
caSignerPrivateKey
=
// Private key in the format of PKCS#8
"MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL7Hz6jugzRy38tm\n"
+
"ZktcEvgJDyOtQsPk/s20RbSGD/PEEVl8Ed/7jg6jZ4w9hmP7vFpEQ4fkGZUpFiXN\n"
+
"G040BoLk2DgyublQo09wwghSNQ6+bu9YzihJMxJ+gRxJf6+n325QCTDfDtn5+tgO\n"
+
"bUzgC3+PRv6UuKPvUYU3Yvx2umA9AgMBAAECgYBYvu30cW8LONyt62Zua9hPFTe7\n"
+
"qt9B7QYyfkdmoG5PQMepTrOp84SzfoOukvgvDm0huFuJnSvhXQl2cCDhkgXskvFj\n"
+
"Hh7KBCFViVXokGdq5YoS0/KYMyQV0TZfJUvILBl51uc4/siQ2tClC/N4sa+1JhgW\n"
+
"a6dFGfRjiUKSSlmMwQJBAPWpIz3Q/c+DYMvoQr5OD8EaYwYIevlTdXb97RnJJh2b\n"
+
"UnhB9jrqesJiHYVzPmP0ukyPOXOwlp2T5Am4Kw0LFOkCQQDGz150NoHOp28Mvyc4\n"
+
"CTqz/zYzUhy2eCJESl196uyP4N65Y01VYQ3JDww4DlsXiU17tVSbgA9TCcfTYOzy\n"
+
"vyw1AkARUky+1hafZCcWGZljK8PmnMKwsTZikCTvL/Zg5BMA8Wu+OQBwpQnk3OAy\n"
+
"Aa87gw0DyvGFG8Vy9POWT9sRP1/JAkBqP0hrMvYMSs6+MSn0eHo2151PsAJIQcuO\n"
+
"U2/Da1khSzu8N6WMi2GiobgV/RYRbf9KrY2ZzMZjykZQYOxAjopBAkEAghCu38cN\n"
+
"aOsW6ueo24uzsWI1FTdE+qWNVEi3RSP120xXBCyhaBjIq4WVSlJK9K2aBaJpit3j\n"
+
"iQ5tl6zrLlxQhg=="
;
// Certificate information:
// Issuer: C=US, O=Java, OU=SunJSSE Test Serivce, CN=casigner
// Validity
// Not Before: May 5 02:40:57 2012 GMT
// Not After : Jan 21 02:40:57 2032 GMT
// Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=certissuer
// X509v3 Subject Key Identifier:
// 39:0E:C6:33:B1:50:BC:73:07:31:E5:D8:04:F7:BB:97:55:CF:9B:C8
// X509v3 Authority Key Identifier:
// keyid:13:07:E0:11:07:DB:EB:33:23:87:31:D0:DB:7E:16:56:BE:11:90:0A
// DirName:/C=US/O=Java/OU=SunJSSE Test Serivce
// serial:02
static
String
certIssuerStr
=
"-----BEGIN CERTIFICATE-----\n"
+
"MIICvjCCAiegAwIBAgIBAzANBgkqhkiG9w0BAQQFADBOMQswCQYDVQQGEwJVUzEN\n"
+
"MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxETAP\n"
+
"BgNVBAMTCGNhc2lnbmVyMB4XDTEyMDUwNTAyNDA1N1oXDTMyMDEyMTAyNDA1N1ow\n"
+
"UDELMAkGA1UEBhMCVVMxDTALBgNVBAoTBEphdmExHTAbBgNVBAsTFFN1bkpTU0Ug\n"
+
"VGVzdCBTZXJpdmNlMRMwEQYDVQQDEwpjZXJ0aXNzdWVyMIGfMA0GCSqGSIb3DQEB\n"
+
"AQUAA4GNADCBiQKBgQCyz55zinU6kNL/LeiTNiBI0QWYmDG0YTotuC4D75liBNqs\n"
+
"7Mmladsh2mTtQUAwmuGaGzaZV25a+cUax0DXZoyBwdbTI09u1bUYsZcaUUKbPoCC\n"
+
"HH26e4jLFL4olW13Sv4ZAd57tIYevMw+Fp5f4fLPFGegCJTFlv2Qjpmic/cuvQID\n"
+
"AQABo4GpMIGmMB0GA1UdDgQWBBQ5DsYzsVC8cwcx5dgE97uXVc+byDBjBgNVHSME\n"
+
"XDBagBQTB+ARB9vrMyOHMdDbfhZWvhGQCqE/pD0wOzELMAkGA1UEBhMCVVMxDTAL\n"
+
"BgNVBAoTBEphdmExHTAbBgNVBAsTFFN1bkpTU0UgVGVzdCBTZXJpdmNlggECMBMG\n"
+
"A1UdEwEB/wQJMAcBAf8CAgQAMAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQQFAAOB\n"
+
"gQCQTagenCdClT98C+oTJGJrw/dUBD9K3tE6ZJKPMc/2bUia8G5ei1C0eXj4mWG2\n"
+
"lu9umR6C90/A6qB050QB2h50qtqxSrkpu+ym1yypauZpg7U3nUY9wZWJNI1vqrQZ\n"
+
"pqUMRcXY3iQIVKx+Qj+4/Za1wwFQzpEoGmqRW31V1SdMEw==\n"
+
"-----END CERTIFICATE-----"
;
static
String
certIssuerPrivateKey
=
// Private key in the format of PKCS#8
"MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBALLPnnOKdTqQ0v8t\n"
+
"6JM2IEjRBZiYMbRhOi24LgPvmWIE2qzsyaVp2yHaZO1BQDCa4ZobNplXblr5xRrH\n"
+
"QNdmjIHB1tMjT27VtRixlxpRQps+gIIcfbp7iMsUviiVbXdK/hkB3nu0hh68zD4W\n"
+
"nl/h8s8UZ6AIlMWW/ZCOmaJz9y69AgMBAAECgYEAjtew2tgm4gxDojqIauF4VPM1\n"
+
"pzsdqd1p3pAdomNLgrQiBLZ8N7oiph6TNb1EjA+OXc+ThFgF/oM9ZDD8qZZwcvjN\n"
+
"qDZlpTkFs2TaGcyEZfUaMB45NHVs6Nn+pSkagSNwwy3xeyAct7sQEzGNTDlEwVv5\n"
+
"7V9LQutQtBd6xT48KzkCQQDpNRfv2OFNG/6GtzJoO68oJhpnpl2MsYNi4ntRkre/\n"
+
"6uXpiCYaDskcrPMRwOOs0m7mxG+Ev+uKnLnSoEMm1GCbAkEAxEmDtiD0Psb8Z9BL\n"
+
"ZRb83Jqho3xe2MCAh3xUfz9b/Mhae9dZ44o4OCgQZuwvW1mczF0NtpgZl93BmYa2\n"
+
"hTwHhwJBAKHrEj6ep/fA6x0gD2idoATRR94VfbiU+7NpqtO9ecVP0+gsdr/66hn1\n"
+
"3yLBeZLh3MxvMTrLgkAQh1i9m0JXjOcCQQClLXAHHegrw+u3uNMZeKTFR+Lp3sk6\n"
+
"AZSnbvr0Me9I45kxSeG81x3ENALJecvIRbrrRws5MvmmkNhQR8rkh8WVAkEAk6b+\n"
+
"aVtmBgUaTS5+FFlHGHJY9HFrfT1a1C/dwyMuqlmbC3YsBmZaMOlKli5TXNybLff8\n"
+
"5KMeGEpXMzgC7AscGA=="
;
// Certificate information:
// Issuer: C=US, O=Java, OU=SunJSSE Test Serivce, CN=certissuer
// Validity
// Not Before: May 5 02:41:01 2012 GMT
// Not After : Jan 21 02:41:01 2032 GMT
// Subject: C=US, O=Java, OU=SunJSSE Test Serivce, CN=localhost
// X509v3 Subject Key Identifier:
// AD:C0:2C:4C:E4:C2:2E:A1:BB:5D:92:BE:66:E0:4E:E0:0D:2F:11:EF
// X509v3 Authority Key Identifier:
// keyid:39:0E:C6:33:B1:50:BC:73:07:31:E5:D8:04:F7:BB:97:55:CF:9B:C8
static
String
targetCertStr
=
"-----BEGIN CERTIFICATE-----\n"
+
"MIICjTCCAfagAwIBAgIBBDANBgkqhkiG9w0BAQQFADBQMQswCQYDVQQGEwJVUzEN\n"
+
"MAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNTRSBUZXN0IFNlcml2Y2UxEzAR\n"
+
"BgNVBAMTCmNlcnRpc3N1ZXIwHhcNMTIwNTA1MDI0MTAxWhcNMzIwMTIxMDI0MTAx\n"
+
"WjBPMQswCQYDVQQGEwJVUzENMAsGA1UEChMESmF2YTEdMBsGA1UECxMUU3VuSlNT\n"
+
"RSBUZXN0IFNlcml2Y2UxEjAQBgNVBAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0B\n"
+
"AQEFAAOBjQAwgYkCgYEAvwaUd7wmBSKqycEstYLWD26vkU08DM39EtaT8wL9HnQ0\n"
+
"fgPblwBFI4zdLa2cuYXRZcFUb04N8nrkcpR0D6kkE+AlFAoRWrrZF80B7JTbtEK4\n"
+
"1PIeurihXvUT+4MpzGLOojIihMfvM4ufelblD56SInso4WFHm7t4qCln88J1gjkC\n"
+
"AwEAAaN4MHYwCwYDVR0PBAQDAgPoMB0GA1UdDgQWBBStwCxM5MIuobtdkr5m4E7g\n"
+
"DS8R7zAfBgNVHSMEGDAWgBQ5DsYzsVC8cwcx5dgE97uXVc+byDAnBgNVHSUEIDAe\n"
+
"BggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDMA0GCSqGSIb3DQEBBAUAA4GB\n"
+
"AGfwcfdvEG/nSCiAn2MGbYHp34mgF3OA1SJLWUW0LvWJhwm2cn4AXlSoyvbwrkaB\n"
+
"IDDCwhJvvc0vUyL2kTx7sqVaFTq3mDs+ktlB/FfH0Pb+i8FE+g+7T42Iw/j0qxHL\n"
+
"YmgbrjBQf5WYN1AvBE/rrPt9aOtS3UsqtVGW574b0shW\n"
+
"-----END CERTIFICATE-----"
;
static
String
targetPrivateKey
=
// Private key in the format of PKCS#8
"MIICdAIBADANBgkqhkiG9w0BAQEFAASCAl4wggJaAgEAAoGBAL8GlHe8JgUiqsnB\n"
+
"LLWC1g9ur5FNPAzN/RLWk/MC/R50NH4D25cARSOM3S2tnLmF0WXBVG9ODfJ65HKU\n"
+
"dA+pJBPgJRQKEVq62RfNAeyU27RCuNTyHrq4oV71E/uDKcxizqIyIoTH7zOLn3pW\n"
+
"5Q+ekiJ7KOFhR5u7eKgpZ/PCdYI5AgMBAAECf3CscOYvFD3zNMnMJ5LomVqA7w3F\n"
+
"gKYM2jlCWAH+wU41PMEXhW6Lujw92jgXL1o+lERwxFzirVdZJWZwKgUSvzP1G0h3\n"
+
"fkucq1/UWnToK+8NSXNM/yS8hXbBgSEoJo5f7LKcIi1Ev6doBVofMxs+njzyWKbM\n"
+
"Nb7rOLHadghoon0CQQDgQzbzzSN8Dc1YmmylhI5v+0sQRHH0DL7D24k4Weh4vInG\n"
+
"EAbt4x8M7ZKEo8/dv0s4hbmNmAnJl93/RRxIyEqLAkEA2g87DiswSQam2pZ8GlrO\n"
+
"+w4Qg9mH8uxx8ou2rl0XlHzH1XiTNbkjfY0EZoL7L31BHFk9n11Fb2P85g6ws+Hy\n"
+
"ywJAM/xgyLNM/nzUlS128geAXUULaYH0SHaL4isJ7B4rXZGW/mrIsGxtzjlkNYsj\n"
+
"rGujrD6TfNc5rZmexIXowJZtcQJBAIww+pCzZ4mrgx5JXWQ8OZHiiu+ZrPOa2+9J\n"
+
"r5sOMpi+WGN/73S8oHqZbNjTINZ5OqEVJq8MchWZPQBTNXuQql0CQHEjUzzkCQa3\n"
+
"j6JTa2KAdqyvLOx0XF9zcc1gA069uNQI2gPUHS8V215z57f/gMGnDNhVfLs/vMKz\n"
+
"sFkVZ3zg7As="
;
public
static
void
main
(
String
args
[])
throws
Exception
{
// MD5 is used in this test case, don't disable MD5 algorithm.
java
.
security
.
Security
.
setProperty
(
"jdk.certpath.disabledAlgorithms"
,
"MD2, RSA keySize < 1024"
);
// generate certificate from cert string
CertificateFactory
cf
=
CertificateFactory
.
getInstance
(
"X.509"
);
// create a set of trust anchors
LinkedHashSet
<
TrustAnchor
>
trustAnchors
=
new
LinkedHashSet
<>();
ByteArrayInputStream
is
=
new
ByteArrayInputStream
(
NoiceTrusedCertStr
.
getBytes
());
Certificate
trustedCert
=
cf
.
generateCertificate
(
is
);
is
.
close
();
TrustAnchor
anchor
=
new
TrustAnchor
((
X509Certificate
)
trustedCert
,
null
);
trustAnchors
.
add
(
anchor
);
is
=
new
ByteArrayInputStream
(
trustedCertStr
.
getBytes
());
trustedCert
=
cf
.
generateCertificate
(
is
);
is
.
close
();
anchor
=
new
TrustAnchor
((
X509Certificate
)
trustedCert
,
null
);
trustAnchors
.
add
(
anchor
);
is
=
new
ByteArrayInputStream
(
NoiceTrusedCertStr_2nd
.
getBytes
());
trustedCert
=
cf
.
generateCertificate
(
is
);
is
.
close
();
anchor
=
new
TrustAnchor
((
X509Certificate
)
trustedCert
,
null
);
trustAnchors
.
add
(
anchor
);
// create a list of certificates
List
<
Certificate
>
chainList
=
new
ArrayList
<>();
is
=
new
ByteArrayInputStream
(
targetCertStr
.
getBytes
());
Certificate
cert
=
cf
.
generateCertificate
(
is
);
is
.
close
();
chainList
.
add
(
cert
);
is
=
new
ByteArrayInputStream
(
certIssuerStr
.
getBytes
());
cert
=
cf
.
generateCertificate
(
is
);
is
.
close
();
chainList
.
add
(
cert
);
is
=
new
ByteArrayInputStream
(
caSignerStr
.
getBytes
());
cert
=
cf
.
generateCertificate
(
is
);
is
.
close
();
chainList
.
add
(
cert
);
// create a certificate selector
X509CertSelector
xcs
=
new
X509CertSelector
();
X509Certificate
eeCert
=
(
X509Certificate
)
chainList
.
get
(
0
);
xcs
.
setSubject
(
eeCert
.
getSubjectX500Principal
());
// reverse build
SunCertPathBuilderParameters
params
=
new
SunCertPathBuilderParameters
(
trustAnchors
,
xcs
);
params
.
setBuildForward
(
false
);
params
.
setRevocationEnabled
(
false
);
CollectionCertStoreParameters
ccsp
=
new
CollectionCertStoreParameters
(
chainList
);
params
.
addCertStore
(
CertStore
.
getInstance
(
"Collection"
,
ccsp
));
CertPathBuilder
cpb
=
CertPathBuilder
.
getInstance
(
"PKIX"
);
CertPathBuilderResult
res
=
cpb
.
build
(
params
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录