Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell11
提交
ff8a8d35
D
dragonwell11
项目概览
openanolis
/
dragonwell11
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell11
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ff8a8d35
编写于
6月 26, 2012
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
f44b7635
1efcd29d
变更
40
展开全部
隐藏空白更改
内联
并排
Showing
40 changed file
with
1069 addition
and
164 deletion
+1069
-164
jdk/make/com/sun/jmx/Makefile
jdk/make/com/sun/jmx/Makefile
+18
-1
jdk/src/macosx/classes/apple/applescript/AppleScriptEngine.java
...c/macosx/classes/apple/applescript/AppleScriptEngine.java
+3
-2
jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
+3
-4
jdk/src/share/classes/java/awt/Font.java
jdk/src/share/classes/java/awt/Font.java
+4
-3
jdk/src/share/classes/java/lang/invoke/MethodHandles.java
jdk/src/share/classes/java/lang/invoke/MethodHandles.java
+22
-11
jdk/src/share/classes/javax/imageio/stream/FileCacheImageInputStream.java
...asses/javax/imageio/stream/FileCacheImageInputStream.java
+7
-3
jdk/src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java
...sses/javax/imageio/stream/FileCacheImageOutputStream.java
+7
-3
jdk/src/share/classes/javax/management/loading/MLet.java
jdk/src/share/classes/javax/management/loading/MLet.java
+5
-3
jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
...c/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
+2
-2
jdk/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
...rc/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
+2
-2
jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java
...hare/classes/javax/swing/plaf/synth/SynthLookAndFeel.java
+32
-25
jdk/src/share/classes/sun/invoke/util/VerifyAccess.java
jdk/src/share/classes/sun/invoke/util/VerifyAccess.java
+32
-11
jdk/src/share/classes/sun/print/PSPrinterJob.java
jdk/src/share/classes/sun/print/PSPrinterJob.java
+2
-1
jdk/src/share/classes/sun/rmi/server/Activation.java
jdk/src/share/classes/sun/rmi/server/Activation.java
+3
-2
jdk/src/share/classes/sun/security/x509/CRLExtensions.java
jdk/src/share/classes/sun/security/x509/CRLExtensions.java
+6
-3
jdk/src/share/classes/sun/security/x509/CertificateExtensions.java
...hare/classes/sun/security/x509/CertificateExtensions.java
+10
-3
jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java
...src/share/classes/sun/security/x509/X509CRLEntryImpl.java
+36
-14
jdk/src/share/classes/sun/security/x509/X509CRLImpl.java
jdk/src/share/classes/sun/security/x509/X509CRLImpl.java
+34
-22
jdk/src/share/classes/sun/security/x509/X509CertImpl.java
jdk/src/share/classes/sun/security/x509/X509CertImpl.java
+13
-9
jdk/src/share/classes/sun/tools/jar/Main.java
jdk/src/share/classes/sun/tools/jar/Main.java
+2
-2
jdk/src/share/classes/sun/tools/native2ascii/Main.java
jdk/src/share/classes/sun/tools/native2ascii/Main.java
+4
-7
jdk/src/share/lib/security/java.security
jdk/src/share/lib/security/java.security
+3
-3
jdk/src/share/lib/security/java.security-macosx
jdk/src/share/lib/security/java.security-macosx
+3
-3
jdk/src/share/lib/security/java.security-solaris
jdk/src/share/lib/security/java.security-solaris
+3
-3
jdk/src/share/lib/security/java.security-windows
jdk/src/share/lib/security/java.security-windows
+3
-3
jdk/src/share/native/java/net/net_util.c
jdk/src/share/native/java/net/net_util.c
+3
-1
jdk/src/share/native/java/net/net_util.h
jdk/src/share/native/java/net/net_util.h
+2
-1
jdk/src/share/native/sun/font/layout/LookupProcessor.cpp
jdk/src/share/native/sun/font/layout/LookupProcessor.cpp
+14
-1
jdk/src/share/native/sun/font/layout/LookupProcessor.h
jdk/src/share/native/sun/font/layout/LookupProcessor.h
+1
-0
jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
+3
-2
jdk/src/solaris/classes/sun/print/UnixPrintJob.java
jdk/src/solaris/classes/sun/print/UnixPrintJob.java
+3
-2
jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java
...src/solaris/classes/sun/print/UnixPrintServiceLookup.java
+2
-1
jdk/src/solaris/native/java/net/net_util_md.c
jdk/src/solaris/native/java/net/net_util_md.c
+32
-10
jdk/src/windows/native/java/net/net_util_md.c
jdk/src/windows/native/java/net/net_util_md.c
+1
-0
jdk/test/java/lang/invoke/AccessControlTest.java
jdk/test/java/lang/invoke/AccessControlTest.java
+495
-0
jdk/test/java/lang/invoke/AccessControlTest_subpkg/Acquaintance_remote.java
.../invoke/AccessControlTest_subpkg/Acquaintance_remote.java
+42
-0
jdk/test/java/net/Socket/setReuseAddress/Basic.java
jdk/test/java/net/Socket/setReuseAddress/Basic.java
+8
-1
jdk/test/java/net/Socket/setReuseAddress/Restart.java
jdk/test/java/net/Socket/setReuseAddress/Restart.java
+8
-0
jdk/test/javax/swing/plaf/synth/7143614/bug7143614.java
jdk/test/javax/swing/plaf/synth/7143614/bug7143614.java
+97
-0
jdk/test/sun/security/x509/X509CRLImpl/OrderAndDup.java
jdk/test/sun/security/x509/X509CRLImpl/OrderAndDup.java
+99
-0
未找到文件。
jdk/make/com/sun/jmx/Makefile
浏览文件 @
ff8a8d35
#
# Copyright (c) 2003, 201
0
, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2003, 201
2
, 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
...
...
@@ -100,6 +100,23 @@ FILES_ties = $(subst javax/management/remote/rmi/,javax/management/remote/rmi/
# so that *_tie classes are generated in package without the prefix
# org.omg.stub (6375696)
#
# To ensure the latest stub generator files are picked up from corba repo
# when available, we need to run with latest rmic version available. rmic
# launch tool not built at this stage but we can invoke via rmi class.
RMIC_JAVA
=
$(OUTPUTDIR)
/bin/java
# need to treat 64bit solaris differently
ifeq
($(PLATFORM)-$(LIBARCH), solaris-amd64)
RMIC_JAVA
=
$(OUTPUTDIR)
/bin/amd64/java
endif
ifeq
($(PLATFORM)-$(LIBARCH), solaris-sparcv9)
RMIC_JAVA
=
$(OUTPUTDIR)
/bin/sparcv9/java
endif
ifeq
($(CROSS_COMPILE_ARCH),)
RMIC
=
$(RMIC_JAVA)
$(JAVA_TOOLS_FLAGS)
-cp
$(OUTPUTDIR)
/classes sun.rmi.rmic.Main
endif
$(CLASSDESTDIR)/%_Stub.class
:
$(CLASSDESTDIR)/%.class
$
(
prep-target
)
$(RMIC)
-classpath
"
$(CLASSDESTDIR)
"
\
...
...
jdk/src/macosx/classes/apple/applescript/AppleScriptEngine.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011,
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
...
...
@@ -26,6 +26,7 @@
package
apple.applescript
;
import
java.io.*
;
import
java.nio.file.Files
;
import
java.util.*
;
import
java.util.Map.Entry
;
...
...
@@ -297,7 +298,7 @@ public class AppleScriptEngine implements ScriptEngine {
File
tmpfile
;
FileWriter
tmpwrite
;
try
{
tmpfile
=
File
.
createTempFile
(
"AppleScriptEngine."
,
".scpt"
);
tmpfile
=
File
s
.
createTempFile
(
"AppleScriptEngine."
,
".scpt"
).
toFile
(
);
tmpwrite
=
new
FileWriter
(
tmpfile
);
// read in our input and write directly to tmpfile
...
...
jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 2003, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 201
2
, 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
...
...
@@ -35,6 +35,7 @@ import java.io.InputStream;
import
java.io.OutputStream
;
import
java.io.PrintStream
;
import
java.text.MessageFormat
;
import
java.nio.file.Files
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashMap
;
...
...
@@ -385,9 +386,7 @@ class Driver {
if
(
base
.
getParentFile
()
==
null
&&
suffix
.
equals
(
".bak"
))
where
=
new
File
(
"."
).
getAbsoluteFile
();
File
f
=
File
.
createTempFile
(
prefix
,
suffix
,
where
);
return
f
;
return
Files
.
createTempFile
(
where
.
toPath
(),
prefix
,
suffix
).
toFile
();
}
static
private
...
...
jdk/src/share/classes/java/awt/Font.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 1995, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1995, 201
2
, 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
...
...
@@ -36,6 +36,7 @@ import java.awt.geom.Rectangle2D;
import
java.awt.peer.FontPeer
;
import
java.io.*
;
import
java.lang.ref.SoftReference
;
import
java.nio.file.Files
;
import
java.security.AccessController
;
import
java.security.PrivilegedExceptionAction
;
import
java.text.AttributedCharacterIterator.Attribute
;
...
...
@@ -831,7 +832,7 @@ public class Font implements java.io.Serializable
File
f
=
null
;
boolean
hasPerm
=
false
;
try
{
f
=
File
.
createTempFile
(
"+~JT"
,
".tmp"
,
null
);
f
=
File
s
.
createTempFile
(
"+~JT"
,
".tmp"
).
toFile
(
);
f
.
delete
();
f
=
null
;
hasPerm
=
true
;
...
...
@@ -881,7 +882,7 @@ public class Font implements java.io.Serializable
final
File
tFile
=
AccessController
.
doPrivileged
(
new
PrivilegedExceptionAction
<
File
>()
{
public
File
run
()
throws
IOException
{
return
File
.
createTempFile
(
"+~JF"
,
".tmp"
,
null
);
return
File
s
.
createTempFile
(
"+~JF"
,
".tmp"
).
toFile
(
);
}
}
);
...
...
jdk/src/share/classes/java/lang/invoke/MethodHandles.java
浏览文件 @
ff8a8d35
...
...
@@ -407,7 +407,7 @@ public class MethodHandles {
* an access$N method.
*/
Lookup
()
{
this
(
getCallerClassAtEntryPoint
(),
ALL_MODES
);
this
(
getCallerClassAtEntryPoint
(
false
),
ALL_MODES
);
// make sure we haven't accidentally picked up a privileged class:
checkUnprivilegedlookupClass
(
lookupClass
);
}
...
...
@@ -461,8 +461,8 @@ public class MethodHandles {
&&
!
VerifyAccess
.
isSamePackageMember
(
this
.
lookupClass
,
requestedLookupClass
))
{
newModes
&=
~
PRIVATE
;
}
if
(
newModes
==
PUBLIC
&&
!
VerifyAccess
.
isClassAccessible
(
requestedLookupClass
,
this
.
lookupClass
))
{
if
(
(
newModes
&
PUBLIC
)
!=
0
&&
!
VerifyAccess
.
isClassAccessible
(
requestedLookupClass
,
this
.
lookupClass
,
allowedModes
))
{
// The requested class it not accessible from the lookup class.
// No permissions.
newModes
=
0
;
...
...
@@ -540,13 +540,17 @@ public class MethodHandles {
}
}
/
/ call this from an entry point method in Lookup with extraFrames=0.
private
static
Class
<?>
getCallerClassAtEntryPoint
()
{
/
* Obtain the external caller class, when called from Lookup.<init> or a first-level subroutine. */
private
static
Class
<?>
getCallerClassAtEntryPoint
(
boolean
inSubroutine
)
{
final
int
CALLER_DEPTH
=
4
;
// Stack for the constructor entry point (inSubroutine=false):
// 0: Reflection.getCC, 1: getCallerClassAtEntryPoint,
// 2: Lookup.<init>, 3: MethodHandles.*, 4: caller
// The stack is slightly different for a subroutine of a Lookup.find* method:
// 2: Lookup.*, 3: Lookup.find*.*, 4: caller
// Note: This should be the only use of getCallerClass in this file.
assert
(
Reflection
.
getCallerClass
(
CALLER_DEPTH
-
1
)
==
MethodHandles
.
class
);
assert
(
Reflection
.
getCallerClass
(
CALLER_DEPTH
-
2
)
==
Lookup
.
class
);
assert
(
Reflection
.
getCallerClass
(
CALLER_DEPTH
-
1
)
==
(
inSubroutine
?
Lookup
.
class
:
MethodHandles
.
class
));
return
Reflection
.
getCallerClass
(
CALLER_DEPTH
);
}
...
...
@@ -1087,7 +1091,7 @@ return mh1;
void
checkSymbolicClass
(
Class
<?>
refc
)
throws
IllegalAccessException
{
Class
<?>
caller
=
lookupClassOrNull
();
if
(
caller
!=
null
&&
!
VerifyAccess
.
isClassAccessible
(
refc
,
caller
))
if
(
caller
!=
null
&&
!
VerifyAccess
.
isClassAccessible
(
refc
,
caller
,
allowedModes
))
throw
new
MemberName
(
refc
).
makeAccessException
(
"symbolic reference class is not public"
,
this
);
}
...
...
@@ -1102,7 +1106,13 @@ return mh1;
// Step 1:
smgr
.
checkMemberAccess
(
refc
,
Member
.
PUBLIC
);
// Step 2:
if
(!
VerifyAccess
.
classLoaderIsAncestor
(
lookupClass
,
refc
))
Class
<?>
callerClass
=
((
allowedModes
&
PRIVATE
)
!=
0
?
lookupClass
// for strong access modes, no extra check
// next line does stack walk magic; do not refactor:
:
getCallerClassAtEntryPoint
(
true
));
if
(!
VerifyAccess
.
classLoaderIsAncestor
(
lookupClass
,
refc
)
||
(
callerClass
!=
lookupClass
&&
!
VerifyAccess
.
classLoaderIsAncestor
(
callerClass
,
refc
)))
smgr
.
checkPackageAccess
(
VerifyAccess
.
getPackageName
(
refc
));
// Step 3:
if
(
m
.
isPublic
())
return
;
...
...
@@ -1153,9 +1163,10 @@ return mh1;
int
requestedModes
=
fixmods
(
mods
);
// adjust 0 => PACKAGE
if
((
requestedModes
&
allowedModes
)
!=
0
&&
VerifyAccess
.
isMemberAccessible
(
refc
,
m
.
getDeclaringClass
(),
mods
,
lookupClass
()))
mods
,
lookupClass
()
,
allowedModes
))
return
;
if
(((
requestedModes
&
~
allowedModes
)
&
PROTECTED
)
!=
0
&&
(
allowedModes
&
PACKAGE
)
!=
0
&&
VerifyAccess
.
isSamePackage
(
m
.
getDeclaringClass
(),
lookupClass
()))
// Protected members can also be checked as if they were package-private.
return
;
...
...
@@ -1170,9 +1181,9 @@ return mh1;
(
defc
==
refc
||
Modifier
.
isPublic
(
refc
.
getModifiers
())));
if
(!
classOK
&&
(
allowedModes
&
PACKAGE
)
!=
0
)
{
classOK
=
(
VerifyAccess
.
isClassAccessible
(
defc
,
lookupClass
())
&&
classOK
=
(
VerifyAccess
.
isClassAccessible
(
defc
,
lookupClass
()
,
ALL_MODES
)
&&
(
defc
==
refc
||
VerifyAccess
.
isClassAccessible
(
refc
,
lookupClass
())));
VerifyAccess
.
isClassAccessible
(
refc
,
lookupClass
()
,
ALL_MODES
)));
}
if
(!
classOK
)
return
"class is not public"
;
...
...
jdk/src/share/classes/javax/imageio/stream/FileCacheImageInputStream.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 2000, 20
07
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 20
12
, 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
...
...
@@ -29,6 +29,7 @@ import java.io.File;
import
java.io.InputStream
;
import
java.io.IOException
;
import
java.io.RandomAccessFile
;
import
java.nio.file.Files
;
import
com.sun.imageio.stream.StreamCloser
;
import
com.sun.imageio.stream.StreamFinalizer
;
import
sun.java2d.Disposer
;
...
...
@@ -97,8 +98,11 @@ public class FileCacheImageInputStream extends ImageInputStreamImpl {
throw
new
IllegalArgumentException
(
"Not a directory!"
);
}
this
.
stream
=
stream
;
this
.
cacheFile
=
File
.
createTempFile
(
"imageio"
,
".tmp"
,
cacheDir
);
if
(
cacheDir
==
null
)
this
.
cacheFile
=
Files
.
createTempFile
(
"imageio"
,
".tmp"
).
toFile
();
else
this
.
cacheFile
=
Files
.
createTempFile
(
cacheDir
.
toPath
(),
"imageio"
,
".tmp"
)
.
toFile
();
this
.
cache
=
new
RandomAccessFile
(
cacheFile
,
"rw"
);
this
.
closeAction
=
StreamCloser
.
createCloseAction
(
this
);
...
...
jdk/src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 2000, 20
07
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 20
12
, 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
...
...
@@ -29,6 +29,7 @@ import java.io.File;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.io.RandomAccessFile
;
import
java.nio.file.Files
;
import
com.sun.imageio.stream.StreamCloser
;
/**
...
...
@@ -83,8 +84,11 @@ public class FileCacheImageOutputStream extends ImageOutputStreamImpl {
throw
new
IllegalArgumentException
(
"Not a directory!"
);
}
this
.
stream
=
stream
;
this
.
cacheFile
=
File
.
createTempFile
(
"imageio"
,
".tmp"
,
cacheDir
);
if
(
cacheDir
==
null
)
this
.
cacheFile
=
Files
.
createTempFile
(
"imageio"
,
".tmp"
).
toFile
();
else
this
.
cacheFile
=
Files
.
createTempFile
(
cacheDir
.
toPath
(),
"imageio"
,
".tmp"
)
.
toFile
();
this
.
cache
=
new
RandomAccessFile
(
cacheFile
,
"rw"
);
this
.
closeAction
=
StreamCloser
.
createCloseAction
(
this
);
...
...
jdk/src/share/classes/javax/management/loading/MLet.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 1999, 20
08
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 20
12
, 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
...
...
@@ -44,6 +44,7 @@ import java.lang.reflect.Constructor;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.net.URLStreamHandlerFactory
;
import
java.nio.file.Files
;
import
java.security.AccessController
;
import
java.security.PrivilegedAction
;
import
java.util.ArrayList
;
...
...
@@ -1160,8 +1161,9 @@ public class MLet extends java.net.URLClassLoader
try
{
File
directory
=
new
File
(
libraryDirectory
);
directory
.
mkdirs
();
File
file
=
File
.
createTempFile
(
libname
+
"."
,
null
,
directory
);
File
file
=
Files
.
createTempFile
(
directory
.
toPath
(),
libname
+
"."
,
null
)
.
toFile
();
file
.
deleteOnExit
();
FileOutputStream
fileOutput
=
new
FileOutputStream
(
file
);
try
{
...
...
jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java
浏览文件 @
ff8a8d35
...
...
@@ -152,8 +152,8 @@ public class SynthButtonUI extends BasicButtonUI implements
if
(!
c
.
isEnabled
())
{
state
=
DISABLED
;
}
if
(
SynthLookAndFeel
.
selectedUI
==
this
)
{
return
SynthLookAndFeel
.
selectedUIState
|
SynthConstants
.
ENABLED
;
if
(
SynthLookAndFeel
.
getSelectedUI
()
==
this
)
{
return
SynthLookAndFeel
.
getSelectedUIState
()
|
SynthConstants
.
ENABLED
;
}
AbstractButton
button
=
(
AbstractButton
)
c
;
ButtonModel
model
=
button
.
getModel
();
...
...
jdk/src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java
浏览文件 @
ff8a8d35
...
...
@@ -97,9 +97,9 @@ public class SynthLabelUI extends BasicLabelUI implements SynthUI {
private
int
getComponentState
(
JComponent
c
)
{
int
state
=
SynthLookAndFeel
.
getComponentState
(
c
);
if
(
SynthLookAndFeel
.
selectedUI
==
this
&&
if
(
SynthLookAndFeel
.
getSelectedUI
()
==
this
&&
state
==
SynthConstants
.
ENABLED
)
{
state
=
SynthLookAndFeel
.
selectedUIState
|
SynthConstants
.
ENABLED
;
state
=
SynthLookAndFeel
.
getSelectedUIState
()
|
SynthConstants
.
ENABLED
;
}
return
state
;
}
...
...
jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java
浏览文件 @
ff8a8d35
...
...
@@ -76,28 +76,26 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
private
static
final
Object
STYLE_FACTORY_KEY
=
new
StringBuffer
(
"com.sun.java.swing.plaf.gtk.StyleCache"
);
/**
* AppContext key to get selectedUI.
*/
private
static
final
Object
SELECTED_UI_KEY
=
new
StringBuilder
(
"selectedUI"
);
/**
* AppContext key to get selectedUIState.
*/
private
static
final
Object
SELECTED_UI_STATE_KEY
=
new
StringBuilder
(
"selectedUIState"
);
/**
* The last SynthStyleFactory that was asked for from AppContext
* <code>lastContext</code>.
*/
private
static
SynthStyleFactory
lastFactory
;
/**
* If this is true it indicates there is more than one AppContext active
* and that we need to make sure in getStyleCache the requesting
* AppContext matches that of <code>lastContext</code> before returning
* it.
*/
private
static
boolean
multipleApps
;
/**
* AppContext lastLAF came from.
*/
private
static
AppContext
lastContext
;
// Refer to setSelectedUI
static
ComponentUI
selectedUI
;
// Refer to setSelectedUI
static
int
selectedUIState
;
/**
* SynthStyleFactory for the this SynthLookAndFeel.
*/
...
...
@@ -111,6 +109,10 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
private
Handler
_handler
;
static
ComponentUI
getSelectedUI
()
{
return
(
ComponentUI
)
AppContext
.
getAppContext
().
get
(
SELECTED_UI_KEY
);
}
/**
* Used by the renderers. For the most part the renderers are implemented
* as Labels, which is problematic in so far as they are never selected.
...
...
@@ -122,8 +124,8 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
static
void
setSelectedUI
(
ComponentUI
uix
,
boolean
selected
,
boolean
focused
,
boolean
enabled
,
boolean
rollover
)
{
selectedUI
=
uix
;
selectedUIState
=
0
;
int
selectedUIState
=
0
;
if
(
selected
)
{
selectedUIState
=
SynthConstants
.
SELECTED
;
if
(
focused
)
{
...
...
@@ -140,19 +142,32 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
else
{
if
(
enabled
)
{
selectedUIState
|=
SynthConstants
.
ENABLED
;
selectedUIState
=
SynthConstants
.
FOCUSED
;
if
(
focused
)
{
selectedUIState
|=
SynthConstants
.
FOCUSED
;
}
}
else
{
selectedUIState
|=
SynthConstants
.
DISABLED
;
}
}
AppContext
context
=
AppContext
.
getAppContext
();
context
.
put
(
SELECTED_UI_KEY
,
uix
);
context
.
put
(
SELECTED_UI_STATE_KEY
,
Integer
.
valueOf
(
selectedUIState
));
}
static
int
getSelectedUIState
()
{
Integer
result
=
(
Integer
)
AppContext
.
getAppContext
().
get
(
SELECTED_UI_STATE_KEY
);
return
result
==
null
?
0
:
result
.
intValue
();
}
/**
* Clears out the selected UI that was last set in setSelectedUI.
*/
static
void
resetSelectedUI
()
{
selectedUI
=
null
;
AppContext
.
getAppContext
().
remove
(
SELECTED_UI_KEY
)
;
}
...
...
@@ -167,10 +182,6 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
// for a particular AppContext.
synchronized
(
SynthLookAndFeel
.
class
)
{
AppContext
context
=
AppContext
.
getAppContext
();
if
(!
multipleApps
&&
context
!=
lastContext
&&
lastContext
!=
null
)
{
multipleApps
=
true
;
}
lastFactory
=
cache
;
lastContext
=
context
;
context
.
put
(
STYLE_FACTORY_KEY
,
cache
);
...
...
@@ -184,17 +195,13 @@ public class SynthLookAndFeel extends BasicLookAndFeel {
*/
public
static
SynthStyleFactory
getStyleFactory
()
{
synchronized
(
SynthLookAndFeel
.
class
)
{
if
(!
multipleApps
)
{
return
lastFactory
;
}
AppContext
context
=
AppContext
.
getAppContext
();
if
(
lastContext
==
context
)
{
return
lastFactory
;
}
lastContext
=
context
;
lastFactory
=
(
SynthStyleFactory
)
AppContext
.
getAppContext
().
get
(
STYLE_FACTORY_KEY
);
lastFactory
=
(
SynthStyleFactory
)
context
.
get
(
STYLE_FACTORY_KEY
);
return
lastFactory
;
}
}
...
...
jdk/src/share/classes/sun/invoke/util/VerifyAccess.java
浏览文件 @
ff8a8d35
...
...
@@ -37,6 +37,8 @@ public class VerifyAccess {
private
VerifyAccess
()
{
}
// cannot instantiate
private
static
final
int
PACKAGE_ONLY
=
0
;
private
static
final
int
PACKAGE_ALLOWED
=
java
.
lang
.
invoke
.
MethodHandles
.
Lookup
.
PACKAGE
;
private
static
final
int
PROTECTED_OR_PACKAGE_ALLOWED
=
(
PACKAGE_ALLOWED
|
PROTECTED
);
private
static
final
int
ALL_ACCESS_MODES
=
(
PUBLIC
|
PRIVATE
|
PROTECTED
|
PACKAGE_ONLY
);
private
static
final
boolean
ALLOW_NESTMATE_ACCESS
=
false
;
...
...
@@ -82,14 +84,19 @@ public class VerifyAccess {
public
static
boolean
isMemberAccessible
(
Class
<?>
refc
,
// symbolic ref class
Class
<?>
defc
,
// actual def class
int
mods
,
// actual member mods
Class
<?>
lookupClass
)
{
Class
<?>
lookupClass
,
int
allowedModes
)
{
if
(
allowedModes
==
0
)
return
false
;
assert
((
allowedModes
&
PUBLIC
)
!=
0
&&
(
allowedModes
&
~(
ALL_ACCESS_MODES
|
PACKAGE_ALLOWED
))
==
0
);
// Usually refc and defc are the same, but if they differ, verify them both.
if
(
refc
!=
defc
)
{
if
(!
isClassAccessible
(
refc
,
lookupClass
))
{
if
(!
isClassAccessible
(
refc
,
lookupClass
,
allowedModes
))
{
// Note that defc is verified in the switch below.
return
false
;
}
if
((
mods
&
(
ALL_ACCESS_MODES
|
STATIC
))
==
(
PROTECTED
|
STATIC
))
{
if
((
mods
&
(
ALL_ACCESS_MODES
|
STATIC
))
==
(
PROTECTED
|
STATIC
)
&&
(
allowedModes
&
PROTECTED_OR_PACKAGE_ALLOWED
)
!=
0
)
{
// Apply the special rules for refc here.
if
(!
isRelatedClass
(
refc
,
lookupClass
))
return
isSamePackage
(
defc
,
lookupClass
);
...
...
@@ -98,19 +105,28 @@ public class VerifyAccess {
// a superclass of the lookup class.
}
}
if
(
defc
==
lookupClass
)
if
(
defc
==
lookupClass
&&
(
allowedModes
&
PRIVATE
)
!=
0
)
return
true
;
// easy check; all self-access is OK
switch
(
mods
&
ALL_ACCESS_MODES
)
{
case
PUBLIC:
if
(
refc
!=
defc
)
return
true
;
// already checked above
return
isClassAccessible
(
refc
,
lookupClass
);
return
isClassAccessible
(
refc
,
lookupClass
,
allowedModes
);
case
PROTECTED:
return
isSamePackage
(
defc
,
lookupClass
)
||
isPublicSuperClass
(
defc
,
lookupClass
);
case
PACKAGE_ONLY:
return
isSamePackage
(
defc
,
lookupClass
);
if
((
allowedModes
&
PROTECTED_OR_PACKAGE_ALLOWED
)
!=
0
&&
isSamePackage
(
defc
,
lookupClass
))
return
true
;
if
((
allowedModes
&
PROTECTED
)
!=
0
&&
isPublicSuperClass
(
defc
,
lookupClass
))
return
true
;
return
false
;
case
PACKAGE_ONLY:
// That is, zero. Unmarked member is package-only access.
return
((
allowedModes
&
PACKAGE_ALLOWED
)
!=
0
&&
isSamePackage
(
defc
,
lookupClass
));
case
PRIVATE:
// Loosened rules for privates follows access rules for inner classes.
return
(
ALLOW_NESTMATE_ACCESS
&&
(
allowedModes
&
PRIVATE
)
!=
0
&&
isSamePackageMember
(
defc
,
lookupClass
));
default
:
throw
new
IllegalArgumentException
(
"bad modifiers: "
+
Modifier
.
toString
(
mods
));
...
...
@@ -138,11 +154,16 @@ public class VerifyAccess {
* @param refc the symbolic reference class to which access is being checked (C)
* @param lookupClass the class performing the lookup (D)
*/
public
static
boolean
isClassAccessible
(
Class
<?>
refc
,
Class
<?>
lookupClass
)
{
public
static
boolean
isClassAccessible
(
Class
<?>
refc
,
Class
<?>
lookupClass
,
int
allowedModes
)
{
if
(
allowedModes
==
0
)
return
false
;
assert
((
allowedModes
&
PUBLIC
)
!=
0
&&
(
allowedModes
&
~(
ALL_ACCESS_MODES
|
PACKAGE_ALLOWED
))
==
0
);
int
mods
=
refc
.
getModifiers
();
if
(
isPublic
(
mods
))
return
true
;
if
(
isSamePackage
(
lookupClass
,
refc
))
if
((
allowedModes
&
PACKAGE_ALLOWED
)
!=
0
&&
isSamePackage
(
lookupClass
,
refc
))
return
true
;
return
false
;
}
...
...
@@ -157,7 +178,7 @@ public class VerifyAccess {
assert
(!
class1
.
isArray
()
&&
!
class2
.
isArray
());
if
(
class1
==
class2
)
return
true
;
if
(
!
loadersAreRelated
(
class1
.
getClassLoader
(),
class2
.
getClassLoader
(),
false
))
if
(
class1
.
getClassLoader
()
!=
class2
.
getClassLoader
(
))
return
false
;
String
name1
=
class1
.
getName
(),
name2
=
class2
.
getName
();
int
dot
=
name1
.
lastIndexOf
(
'.'
);
...
...
jdk/src/share/classes/sun/print/PSPrinterJob.java
浏览文件 @
ff8a8d35
...
...
@@ -97,6 +97,7 @@ import sun.font.FontUtilities;
import
java.nio.charset.*
;
import
java.nio.CharBuffer
;
import
java.nio.ByteBuffer
;
import
java.nio.file.Files
;
//REMIND: Remove use of this class when IPPPrintService is moved to share directory.
import
java.lang.reflect.Method
;
...
...
@@ -659,7 +660,7 @@ public class PSPrinterJob extends RasterPrinterJob {
* is not removed for some reason, request that it is
* removed when the VM exits.
*/
spoolFile
=
File
.
createTempFile
(
"javaprint"
,
".ps"
,
null
);
spoolFile
=
File
s
.
createTempFile
(
"javaprint"
,
".ps"
).
toFile
(
);
spoolFile
.
deleteOnExit
();
result
=
new
FileOutputStream
(
spoolFile
);
...
...
jdk/src/share/classes/sun/rmi/server/Activation.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 1997, 20
06
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 20
12
, 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
...
...
@@ -43,6 +43,7 @@ import java.net.ServerSocket;
import
java.net.Socket
;
import
java.net.SocketAddress
;
import
java.net.SocketException
;
import
java.nio.file.Files
;
import
java.nio.channels.Channel
;
import
java.nio.channels.ServerSocketChannel
;
import
java.rmi.AccessException
;
...
...
@@ -1940,7 +1941,7 @@ public class Activation implements Serializable {
new
PrivilegedExceptionAction
<
Void
>()
{
public
Void
run
()
throws
IOException
{
File
file
=
File
.
createTempFile
(
"rmid-err"
,
null
,
null
);
File
s
.
createTempFile
(
"rmid-err"
,
null
).
toFile
(
);
PrintStream
errStream
=
new
PrintStream
(
new
FileOutputStream
(
file
));
System
.
setErr
(
errStream
);
...
...
jdk/src/share/classes/sun/security/x509/CRLExtensions.java
浏览文件 @
ff8a8d35
...
...
@@ -32,8 +32,10 @@ import java.lang.reflect.InvocationTargetException;
import
java.security.cert.CRLException
;
import
java.security.cert.CertificateException
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.Enumeration
;
import
java.util.Hashtable
;
import
java.util.Map
;
import
java.util.TreeMap
;
import
sun.security.util.*
;
...
...
@@ -61,7 +63,8 @@ import sun.security.util.*;
*/
public
class
CRLExtensions
{
private
Hashtable
<
String
,
Extension
>
map
=
new
Hashtable
<
String
,
Extension
>();
private
Map
<
String
,
Extension
>
map
=
Collections
.
synchronizedMap
(
new
TreeMap
<
String
,
Extension
>());
private
boolean
unsupportedCritExt
=
false
;
/**
...
...
@@ -214,7 +217,7 @@ public class CRLExtensions {
* @return an enumeration of the extensions in this CRL.
*/
public
Enumeration
<
Extension
>
getElements
()
{
return
map
.
elements
(
);
return
Collections
.
enumeration
(
map
.
values
()
);
}
/**
...
...
jdk/src/share/classes/sun/security/x509/CertificateExtensions.java
浏览文件 @
ff8a8d35
...
...
@@ -57,7 +57,8 @@ public class CertificateExtensions implements CertAttrSet<Extension> {
private
static
final
Debug
debug
=
Debug
.
getInstance
(
"x509"
);
private
Hashtable
<
String
,
Extension
>
map
=
new
Hashtable
<
String
,
Extension
>();
private
Map
<
String
,
Extension
>
map
=
Collections
.
synchronizedMap
(
new
TreeMap
<
String
,
Extension
>());
private
boolean
unsupportedCritExt
=
false
;
private
Map
<
String
,
Extension
>
unparseableExtensions
;
...
...
@@ -118,7 +119,7 @@ public class CertificateExtensions implements CertAttrSet<Extension> {
if
(
ext
.
isCritical
()
==
false
)
{
// ignore errors parsing non-critical extensions
if
(
unparseableExtensions
==
null
)
{
unparseableExtensions
=
new
Hash
Map
<
String
,
Extension
>();
unparseableExtensions
=
new
Tree
Map
<
String
,
Extension
>();
}
unparseableExtensions
.
put
(
ext
.
getExtensionId
().
toString
(),
new
UnparseableExtension
(
ext
,
e
));
...
...
@@ -219,6 +220,12 @@ public class CertificateExtensions implements CertAttrSet<Extension> {
return
(
obj
);
}
// Similar to get(String), but throw no exception, might return null.
// Used in X509CertImpl::getExtension(OID).
Extension
getExtension
(
String
name
)
{
return
map
.
get
(
name
);
}
/**
* Delete the attribute value.
* @param name the extension name used in the lookup.
...
...
@@ -246,7 +253,7 @@ public class CertificateExtensions implements CertAttrSet<Extension> {
* attribute.
*/
public
Enumeration
<
Extension
>
getElements
()
{
return
map
.
elements
(
);
return
Collections
.
enumeration
(
map
.
values
()
);
}
/**
...
...
jdk/src/share/classes/sun/security/x509/X509CRLEntryImpl.java
浏览文件 @
ff8a8d35
...
...
@@ -30,14 +30,7 @@ import java.security.cert.CRLException;
import
java.security.cert.CRLReason
;
import
java.security.cert.X509CRLEntry
;
import
java.math.BigInteger
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.Enumeration
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.HashSet
;
import
java.util.*
;
import
javax.security.auth.x500.X500Principal
;
...
...
@@ -74,7 +67,8 @@ import sun.misc.HexDumpEncoder;
* @author Hemma Prafullchandra
*/
public
class
X509CRLEntryImpl
extends
X509CRLEntry
{
public
class
X509CRLEntryImpl
extends
X509CRLEntry
implements
Comparable
<
X509CRLEntryImpl
>
{
private
SerialNumber
serialNumber
=
null
;
private
Date
revocationDate
=
null
;
...
...
@@ -195,9 +189,14 @@ public class X509CRLEntryImpl extends X509CRLEntry {
* @exception CRLException if an encoding error occurs.
*/
public
byte
[]
getEncoded
()
throws
CRLException
{
return
getEncoded0
().
clone
();
}
// Called internally to avoid clone
private
byte
[]
getEncoded0
()
throws
CRLException
{
if
(
revokedCert
==
null
)
this
.
encode
(
new
DerOutputStream
());
return
revokedCert
.
clone
()
;
return
revokedCert
;
}
@Override
...
...
@@ -351,7 +350,7 @@ public class X509CRLEntryImpl extends X509CRLEntry {
if
(
extensions
==
null
)
{
return
null
;
}
Set
<
String
>
extSet
=
new
HashSet
<
String
>();
Set
<
String
>
extSet
=
new
TreeSet
<
>();
for
(
Extension
ex
:
extensions
.
getAllExtensions
())
{
if
(
ex
.
isCritical
())
{
extSet
.
add
(
ex
.
getExtensionId
().
toString
());
...
...
@@ -372,7 +371,7 @@ public class X509CRLEntryImpl extends X509CRLEntry {
if
(
extensions
==
null
)
{
return
null
;
}
Set
<
String
>
extSet
=
new
HashSet
<
String
>();
Set
<
String
>
extSet
=
new
TreeSet
<
>();
for
(
Extension
ex
:
extensions
.
getAllExtensions
())
{
if
(!
ex
.
isCritical
())
{
extSet
.
add
(
ex
.
getExtensionId
().
toString
());
...
...
@@ -500,16 +499,39 @@ public class X509CRLEntryImpl extends X509CRLEntry {
getExtension
(
PKIXExtensions
.
CertificateIssuer_Id
);
}
/**
* Returns all extensions for this entry in a map
* @return the extension map, can be empty, but not null
*/
public
Map
<
String
,
java
.
security
.
cert
.
Extension
>
getExtensions
()
{
if
(
extensions
==
null
)
{
return
Collections
.
emptyMap
();
}
Collection
<
Extension
>
exts
=
extensions
.
getAllExtensions
();
HashMap
<
String
,
java
.
security
.
cert
.
Extension
>
map
=
new
HashMap
<
String
,
java
.
security
.
cert
.
Extension
>(
exts
.
size
());
Map
<
String
,
java
.
security
.
cert
.
Extension
>
map
=
new
TreeMap
<>();
for
(
Extension
ext
:
exts
)
{
map
.
put
(
ext
.
getId
(),
ext
);
}
return
map
;
}
@Override
public
int
compareTo
(
X509CRLEntryImpl
that
)
{
int
compSerial
=
getSerialNumber
().
compareTo
(
that
.
getSerialNumber
());
if
(
compSerial
!=
0
)
{
return
compSerial
;
}
try
{
byte
[]
thisEncoded
=
this
.
getEncoded0
();
byte
[]
thatEncoded
=
that
.
getEncoded0
();
for
(
int
i
=
0
;
i
<
thisEncoded
.
length
&&
i
<
thatEncoded
.
length
;
i
++)
{
int
a
=
thisEncoded
[
i
]
&
0xff
;
int
b
=
thatEncoded
[
i
]
&
0xff
;
if
(
a
!=
b
)
return
a
-
b
;
}
return
thisEncoded
.
length
-
thatEncoded
.
length
;
}
catch
(
CRLException
ce
)
{
return
-
1
;
}
}
}
jdk/src/share/classes/sun/security/x509/X509CRLImpl.java
浏览文件 @
ff8a8d35
...
...
@@ -52,7 +52,7 @@ import sun.misc.HexDumpEncoder;
/**
* <p>
* An implmentation for X509 CRL (Certificate Revocation List).
* An impl
e
mentation for X509 CRL (Certificate Revocation List).
* <p>
* The X.509 v2 CRL format is described below in ASN.1:
* <pre>
...
...
@@ -103,7 +103,8 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
private
X500Principal
issuerPrincipal
=
null
;
private
Date
thisUpdate
=
null
;
private
Date
nextUpdate
=
null
;
private
Map
<
X509IssuerSerial
,
X509CRLEntry
>
revokedCerts
=
new
LinkedHashMap
<
X509IssuerSerial
,
X509CRLEntry
>();
private
Map
<
X509IssuerSerial
,
X509CRLEntry
>
revokedMap
=
new
TreeMap
<>();
private
List
<
X509CRLEntry
>
revokedList
=
new
LinkedList
<>();
private
CRLExtensions
extensions
=
null
;
private
final
static
boolean
isExplicit
=
true
;
private
static
final
long
YR_2050
=
2524636800000L
;
...
...
@@ -222,7 +223,8 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
badCert
.
setCertificateIssuer
(
crlIssuer
,
badCertIssuer
);
X509IssuerSerial
issuerSerial
=
new
X509IssuerSerial
(
badCertIssuer
,
badCert
.
getSerialNumber
());
this
.
revokedCerts
.
put
(
issuerSerial
,
badCert
);
this
.
revokedMap
.
put
(
issuerSerial
,
badCert
);
this
.
revokedList
.
add
(
badCert
);
if
(
badCert
.
hasExtensions
())
{
this
.
version
=
1
;
}
...
...
@@ -304,8 +306,8 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
tmp
.
putGeneralizedTime
(
nextUpdate
);
}
if
(!
revoked
Certs
.
isEmpty
())
{
for
(
X509CRLEntry
entry
:
revoked
Certs
.
values
()
)
{
if
(!
revoked
List
.
isEmpty
())
{
for
(
X509CRLEntry
entry
:
revoked
List
)
{
((
X509CRLEntryImpl
)
entry
).
encode
(
rCerts
);
}
tmp
.
write
(
DerValue
.
tag_Sequence
,
rCerts
);
...
...
@@ -489,14 +491,14 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
sb
.
append
(
"\nThis Update: "
+
thisUpdate
.
toString
()
+
"\n"
);
if
(
nextUpdate
!=
null
)
sb
.
append
(
"Next Update: "
+
nextUpdate
.
toString
()
+
"\n"
);
if
(
revoked
Certs
.
isEmpty
())
if
(
revoked
List
.
isEmpty
())
sb
.
append
(
"\nNO certificates have been revoked\n"
);
else
{
sb
.
append
(
"\nRevoked Certificates: "
+
revoked
Certs
.
size
());
sb
.
append
(
"\nRevoked Certificates: "
+
revoked
List
.
size
());
int
i
=
1
;
for
(
Iterator
<
X509CRLEntry
>
iter
=
revokedCerts
.
values
().
iterator
();
iter
.
hasNext
();
i
++)
sb
.
append
(
"\n["
+
i
+
"] "
+
iter
.
next
().
toString
());
for
(
X509CRLEntry
entry:
revokedList
)
{
sb
.
append
(
"\n["
+
i
++
+
"] "
+
entry
.
toString
());
}
}
if
(
extensions
!=
null
)
{
Collection
<
Extension
>
allExts
=
extensions
.
getAllExtensions
();
...
...
@@ -542,12 +544,12 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
* false otherwise.
*/
public
boolean
isRevoked
(
Certificate
cert
)
{
if
(
revoked
Certs
.
isEmpty
()
||
(!(
cert
instanceof
X509Certificate
)))
{
if
(
revoked
Map
.
isEmpty
()
||
(!(
cert
instanceof
X509Certificate
)))
{
return
false
;
}
X509Certificate
xcert
=
(
X509Certificate
)
cert
;
X509IssuerSerial
issuerSerial
=
new
X509IssuerSerial
(
xcert
);
return
revoked
Certs
.
containsKey
(
issuerSerial
);
return
revoked
Map
.
containsKey
(
issuerSerial
);
}
/**
...
...
@@ -637,24 +639,24 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
* @see X509CRLEntry
*/
public
X509CRLEntry
getRevokedCertificate
(
BigInteger
serialNumber
)
{
if
(
revoked
Certs
.
isEmpty
())
{
if
(
revoked
Map
.
isEmpty
())
{
return
null
;
}
// assume this is a direct CRL entry (cert and CRL issuer are the same)
X509IssuerSerial
issuerSerial
=
new
X509IssuerSerial
(
getIssuerX500Principal
(),
serialNumber
);
return
revoked
Certs
.
get
(
issuerSerial
);
return
revoked
Map
.
get
(
issuerSerial
);
}
/**
* Gets the CRL entry for the given certificate.
*/
public
X509CRLEntry
getRevokedCertificate
(
X509Certificate
cert
)
{
if
(
revoked
Certs
.
isEmpty
())
{
if
(
revoked
Map
.
isEmpty
())
{
return
null
;
}
X509IssuerSerial
issuerSerial
=
new
X509IssuerSerial
(
cert
);
return
revoked
Certs
.
get
(
issuerSerial
);
return
revoked
Map
.
get
(
issuerSerial
);
}
/**
...
...
@@ -666,10 +668,10 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
* @see X509CRLEntry
*/
public
Set
<
X509CRLEntry
>
getRevokedCertificates
()
{
if
(
revoked
Certs
.
isEmpty
())
{
if
(
revoked
List
.
isEmpty
())
{
return
null
;
}
else
{
return
new
HashSet
<
X509CRLEntry
>(
revokedCerts
.
values
()
);
return
new
TreeSet
<
X509CRLEntry
>(
revokedList
);
}
}
...
...
@@ -905,7 +907,7 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
if
(
extensions
==
null
)
{
return
null
;
}
Set
<
String
>
extSet
=
new
HashSet
<
String
>();
Set
<
String
>
extSet
=
new
TreeSet
<
>();
for
(
Extension
ex
:
extensions
.
getAllExtensions
())
{
if
(
ex
.
isCritical
())
{
extSet
.
add
(
ex
.
getExtensionId
().
toString
());
...
...
@@ -926,7 +928,7 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
if
(
extensions
==
null
)
{
return
null
;
}
Set
<
String
>
extSet
=
new
HashSet
<
String
>();
Set
<
String
>
extSet
=
new
TreeSet
<
>();
for
(
Extension
ex
:
extensions
.
getAllExtensions
())
{
if
(!
ex
.
isCritical
())
{
extSet
.
add
(
ex
.
getExtensionId
().
toString
());
...
...
@@ -1103,7 +1105,8 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
entry
.
setCertificateIssuer
(
crlIssuer
,
badCertIssuer
);
X509IssuerSerial
issuerSerial
=
new
X509IssuerSerial
(
badCertIssuer
,
entry
.
getSerialNumber
());
revokedCerts
.
put
(
issuerSerial
,
entry
);
revokedMap
.
put
(
issuerSerial
,
entry
);
revokedList
.
add
(
entry
);
}
}
...
...
@@ -1207,7 +1210,8 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
/**
* Immutable X.509 Certificate Issuer DN and serial number pair
*/
private
final
static
class
X509IssuerSerial
{
private
final
static
class
X509IssuerSerial
implements
Comparable
<
X509IssuerSerial
>
{
final
X500Principal
issuer
;
final
BigInteger
serial
;
volatile
int
hashcode
=
0
;
...
...
@@ -1286,5 +1290,13 @@ public class X509CRLImpl extends X509CRL implements DerEncoder {
}
return
hashcode
;
}
@Override
public
int
compareTo
(
X509IssuerSerial
another
)
{
int
cissuer
=
issuer
.
toString
()
.
compareTo
(
another
.
issuer
.
toString
());
if
(
cissuer
!=
0
)
return
cissuer
;
return
this
.
serial
.
compareTo
(
another
.
serial
);
}
}
}
jdk/src/share/classes/sun/security/x509/X509CertImpl.java
浏览文件 @
ff8a8d35
...
...
@@ -1202,7 +1202,7 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
if
(
exts
==
null
)
{
return
null
;
}
Set
<
String
>
extSet
=
new
HashSet
<
String
>();
Set
<
String
>
extSet
=
new
TreeSet
<
>();
for
(
Extension
ex
:
exts
.
getAllExtensions
())
{
if
(
ex
.
isCritical
())
{
extSet
.
add
(
ex
.
getExtensionId
().
toString
());
...
...
@@ -1232,7 +1232,7 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
if
(
exts
==
null
)
{
return
null
;
}
Set
<
String
>
extSet
=
new
HashSet
<
String
>();
Set
<
String
>
extSet
=
new
TreeSet
<
>();
for
(
Extension
ex
:
exts
.
getAllExtensions
())
{
if
(!
ex
.
isCritical
())
{
extSet
.
add
(
ex
.
getExtensionId
().
toString
());
...
...
@@ -1266,10 +1266,14 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
if
(
extensions
==
null
)
{
return
null
;
}
else
{
for
(
Extension
ex
:
extensions
.
getAllExtensions
())
{
if
(
ex
.
getExtensionId
().
equals
((
Object
)
oid
))
{
Extension
ex
=
extensions
.
getExtension
(
oid
.
toString
());
if
(
ex
!=
null
)
{
return
ex
;
}
for
(
Extension
ex2:
extensions
.
getAllExtensions
())
{
if
(
ex2
.
getExtensionId
().
equals
((
Object
)
oid
))
{
//XXXX May want to consider cloning this
return
ex
;
return
ex
2
;
}
}
/* no such extension in this certificate */
...
...
@@ -1465,10 +1469,10 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
if
(
names
.
isEmpty
())
{
return
Collections
.<
List
<?>>
emptySet
();
}
Set
<
List
<?>>
newNames
=
new
HashSet
<
List
<?>
>();
List
<
List
<?>>
newNames
=
new
ArrayList
<
>();
for
(
GeneralName
gname
:
names
.
names
())
{
GeneralNameInterface
name
=
gname
.
getName
();
List
<
Object
>
nameEntry
=
new
ArrayList
<
Object
>(
2
);
List
<
Object
>
nameEntry
=
new
ArrayList
<>(
2
);
nameEntry
.
add
(
Integer
.
valueOf
(
name
.
getType
()));
switch
(
name
.
getType
())
{
case
GeneralNameInterface
.
NAME_RFC822
:
...
...
@@ -1526,12 +1530,12 @@ public class X509CertImpl extends X509Certificate implements DerEncoder {
}
}
if
(
mustClone
)
{
Set
<
List
<?>>
namesCopy
=
new
HashSet
<
List
<?>
>();
List
<
List
<?>>
namesCopy
=
new
ArrayList
<
>();
for
(
List
<?>
nameEntry
:
altNames
)
{
Object
nameObject
=
nameEntry
.
get
(
1
);
if
(
nameObject
instanceof
byte
[])
{
List
<
Object
>
nameEntryCopy
=
new
ArrayList
<
Object
>(
nameEntry
);
new
ArrayList
<>(
nameEntry
);
nameEntryCopy
.
set
(
1
,
((
byte
[])
nameObject
).
clone
());
namesCopy
.
add
(
Collections
.
unmodifiableList
(
nameEntryCopy
));
}
else
{
...
...
jdk/src/share/classes/sun/tools/jar/Main.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 1996, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
2
, 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
...
...
@@ -137,7 +137,7 @@ class Main {
File
dir
=
file
.
getParentFile
();
if
(
dir
==
null
)
dir
=
new
File
(
"."
);
return
File
.
createTempFile
(
"jartmp"
,
null
,
dir
);
return
File
s
.
createTempFile
(
dir
.
toPath
(),
"jartmp"
,
null
).
toFile
(
);
}
private
boolean
ok
;
...
...
jdk/src/share/classes/sun/tools/native2ascii/Main.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 1996, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 201
2
, 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
...
...
@@ -71,6 +71,7 @@ import java.text.MessageFormat;
import
java.nio.charset.CharsetEncoder
;
import
java.nio.charset.Charset
;
import
java.nio.charset.IllegalCharsetNameException
;
import
java.nio.file.Files
;
import
java.io.UnsupportedEncodingException
;
import
java.nio.charset.UnsupportedCharsetException
;
import
sun.tools.native2ascii.A2NFilter
;
...
...
@@ -240,9 +241,7 @@ public class Main {
if
(
tempDir
==
null
)
tempDir
=
new
File
(
System
.
getProperty
(
"user.dir"
));
tempFile
=
File
.
createTempFile
(
"_N2A"
,
".TMP"
,
tempDir
);
tempFile
=
Files
.
createTempFile
(
tempDir
.
toPath
(),
"_N2A"
,
".TMP"
).
toFile
();
tempFile
.
deleteOnExit
();
try
{
...
...
@@ -292,9 +291,7 @@ public class Main {
File
tempDir
=
f
.
getParentFile
();
if
(
tempDir
==
null
)
tempDir
=
new
File
(
System
.
getProperty
(
"user.dir"
));
tempFile
=
File
.
createTempFile
(
"_N2A"
,
".TMP"
,
tempDir
);
tempFile
=
Files
.
createTempFile
(
tempDir
.
toPath
(),
"_N2A"
,
".TMP"
).
toFile
();
tempFile
.
deleteOnExit
();
try
{
...
...
jdk/src/share/lib/security/java.security
浏览文件 @
ff8a8d35
...
...
@@ -132,10 +132,10 @@ package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.
# corresponding RuntimePermission ("defineClassInPackage."+package) has
# been granted.
#
# by default, no
packages are restricted for definition, and none of
#
the class loaders supplied with the JDK call
checkPackageDefinition.
# by default, no
ne of the class loaders supplied with the JDK call
# checkPackageDefinition.
#
#package.definition=
package.definition=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.
#
# Determines whether this properties file can be appended to
...
...
jdk/src/share/lib/security/java.security-macosx
浏览文件 @
ff8a8d35
...
...
@@ -133,10 +133,10 @@ package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.
# corresponding RuntimePermission ("defineClassInPackage."+package) has
# been granted.
#
# by default, no
packages are restricted for definition, and none of
#
the class loaders supplied with the JDK call
checkPackageDefinition.
# by default, no
ne of the class loaders supplied with the JDK call
# checkPackageDefinition.
#
#package.definition=
package.definition=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,apple.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.
#
# Determines whether this properties file can be appended to
...
...
jdk/src/share/lib/security/java.security-solaris
浏览文件 @
ff8a8d35
...
...
@@ -134,10 +134,10 @@ package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.
# corresponding RuntimePermission ("defineClassInPackage."+package) has
# been granted.
#
# by default, no
packages are restricted for definition, and none of
#
the class loaders supplied with the JDK call
checkPackageDefinition.
# by default, no
ne of the class loaders supplied with the JDK call
# checkPackageDefinition.
#
#package.definition=
package.definition=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.
#
# Determines whether this properties file can be appended to
...
...
jdk/src/share/lib/security/java.security-windows
浏览文件 @
ff8a8d35
...
...
@@ -133,10 +133,10 @@ package.access=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.
# corresponding RuntimePermission ("defineClassInPackage."+package) has
# been granted.
#
# by default, no
packages are restricted for definition, and none of
#
the class loaders supplied with the JDK call
checkPackageDefinition.
# by default, no
ne of the class loaders supplied with the JDK call
# checkPackageDefinition.
#
#package.definition=
package.definition=sun.,com.sun.xml.internal.ws.,com.sun.xml.internal.bind.,com.sun.imageio.,com.sun.org.apache.xerces.internal.utils.,com.sun.org.apache.xalan.internal.utils.
#
# Determines whether this properties file can be appended to
...
...
jdk/src/share/native/java/net/net_util.c
浏览文件 @
ff8a8d35
/*
* Copyright (c) 1998, 201
0
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 201
2
, 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
...
...
@@ -68,6 +68,8 @@ JNI_OnLoad(JavaVM *vm, void *reserved)
*/
IPv6_available
=
IPv6_supported
()
&
(
!
preferIPv4Stack
);
initLocalAddrTable
();
parseExclusiveBindProperty
(
env
);
return
JNI_VERSION_1_2
;
}
...
...
jdk/src/share/native/java/net/net_util.h
浏览文件 @
ff8a8d35
/*
* Copyright (c) 1997, 20
08
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 20
12
, 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
...
...
@@ -120,6 +120,7 @@ JNIEXPORT jobject JNICALL
NET_SockaddrToInetAddress
(
JNIEnv
*
env
,
struct
sockaddr
*
him
,
int
*
port
);
void
initLocalAddrTable
();
void
parseExclusiveBindProperty
(
JNIEnv
*
env
);
void
NET_SetTrafficClass
(
struct
sockaddr
*
him
,
int
trafficClass
);
...
...
jdk/src/share/native/sun/font/layout/LookupProcessor.cpp
浏览文件 @
ff8a8d35
...
...
@@ -95,6 +95,10 @@ le_int32 LookupProcessor::process(LEGlyphStorage &glyphStorage, GlyphPositionAdj
if
(
selectMask
!=
0
)
{
const
LookupTable
*
lookupTable
=
lookupListTable
->
getLookupTable
(
lookup
);
if
(
!
lookupTable
)
continue
;
le_uint16
lookupFlags
=
SWAPW
(
lookupTable
->
lookupFlags
);
glyphIterator
.
reset
(
lookupFlags
,
selectMask
);
...
...
@@ -136,6 +140,9 @@ le_int32 LookupProcessor::selectLookups(const FeatureTable *featureTable, Featur
for
(
le_uint16
lookup
=
0
;
lookup
<
lookupCount
;
lookup
+=
1
)
{
le_uint16
lookupListIndex
=
SWAPW
(
featureTable
->
lookupListIndexArray
[
lookup
]);
if
(
lookupListIndex
>=
lookupSelectCount
)
continue
;
lookupSelectArray
[
lookupListIndex
]
|=
featureMask
;
lookupOrderArray
[
store
++
]
=
lookupListIndex
;
}
...
...
@@ -147,7 +154,7 @@ LookupProcessor::LookupProcessor(const char *baseAddress,
Offset
scriptListOffset
,
Offset
featureListOffset
,
Offset
lookupListOffset
,
LETag
scriptTag
,
LETag
languageTag
,
const
FeatureMap
*
featureMap
,
le_int32
featureMapCount
,
le_bool
orderFeatures
,
LEErrorCode
&
success
)
:
lookupListTable
(
NULL
),
featureListTable
(
NULL
),
lookupSelectArray
(
NULL
),
:
lookupListTable
(
NULL
),
featureListTable
(
NULL
),
lookupSelectArray
(
NULL
),
lookupSelectCount
(
0
),
lookupOrderArray
(
NULL
),
lookupOrderCount
(
0
)
{
const
ScriptListTable
*
scriptListTable
=
NULL
;
...
...
@@ -195,6 +202,8 @@ LookupProcessor::LookupProcessor(const char *baseAddress,
lookupSelectArray
[
i
]
=
0
;
}
lookupSelectCount
=
lookupListCount
;
le_int32
count
,
order
=
0
;
le_int32
featureReferences
=
0
;
const
FeatureTable
*
featureTable
=
NULL
;
...
...
@@ -211,6 +220,10 @@ LookupProcessor::LookupProcessor(const char *baseAddress,
le_uint16
featureIndex
=
SWAPW
(
langSysTable
->
featureIndexArray
[
feature
]);
featureTable
=
featureListTable
->
getFeatureTable
(
featureIndex
,
&
featureTag
);
if
(
!
featureTable
)
continue
;
featureReferences
+=
SWAPW
(
featureTable
->
lookupCount
);
}
...
...
jdk/src/share/native/sun/font/layout/LookupProcessor.h
浏览文件 @
ff8a8d35
...
...
@@ -90,6 +90,7 @@ protected:
const
FeatureListTable
*
featureListTable
;
FeatureMask
*
lookupSelectArray
;
le_uint32
lookupSelectCount
;
le_uint16
*
lookupOrderArray
;
le_uint32
lookupOrderCount
;
...
...
jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 2008, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008, 201
2
, 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
...
...
@@ -33,6 +33,7 @@ import java.io.IOException;
import
java.net.InetAddress
;
import
java.net.UnknownHostException
;
import
java.nio.charset.Charset
;
import
java.nio.file.Files
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.Properties
;
...
...
@@ -387,7 +388,7 @@ public class FcFontConfiguration extends FontConfiguration {
File
fcInfoFile
=
getFcInfoFile
();
File
dir
=
fcInfoFile
.
getParentFile
();
dir
.
mkdirs
();
File
tempFile
=
File
.
createTempFile
(
"fcinfo"
,
null
,
dir
);
File
tempFile
=
File
s
.
createTempFile
(
dir
.
toPath
(),
"fcinfo"
,
null
).
toFile
(
);
FileOutputStream
fos
=
new
FileOutputStream
(
tempFile
);
props
.
store
(
fos
,
"JDK Font Configuration Generated File: *Do Not Edit*"
);
...
...
jdk/src/solaris/classes/sun/print/UnixPrintJob.java
浏览文件 @
ff8a8d35
/*
* Copyright (c) 2000, 20
08
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 20
12
, 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
...
...
@@ -42,6 +42,7 @@ import java.io.PrintWriter;
import
java.io.Reader
;
import
java.io.StringWriter
;
import
java.io.UnsupportedEncodingException
;
import
java.nio.file.Files
;
import
java.util.Vector
;
import
javax.print.CancelablePrintJob
;
...
...
@@ -938,7 +939,7 @@ public class UnixPrintJob implements CancelablePrintJob {
* is not removed for some reason, request that it is
* removed when the VM exits.
*/
spoolFile
=
File
.
createTempFile
(
"javaprint"
,
".ps"
,
null
);
spoolFile
=
File
s
.
createTempFile
(
"javaprint"
,
".ps"
).
toFile
(
);
spoolFile
.
deleteOnExit
();
}
result
=
new
FileOutputStream
(
spoolFile
);
...
...
jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java
浏览文件 @
ff8a8d35
...
...
@@ -51,6 +51,7 @@ import javax.print.attribute.standard.PrinterName;
import
java.io.File
;
import
java.io.FileReader
;
import
java.net.URL
;
import
java.nio.file.Files
;
/*
* Remind: This class uses solaris commands. We also need a linux
...
...
@@ -718,7 +719,7 @@ public class UnixPrintServiceLookup extends PrintServiceLookup
Process
proc
;
BufferedReader
bufferedReader
=
null
;
File
f
=
File
.
createTempFile
(
"prn"
,
"xc"
);
File
f
=
File
s
.
createTempFile
(
"prn"
,
"xc"
).
toFile
(
);
cmd
[
2
]
=
cmd
[
2
]+
">"
+
f
.
getAbsolutePath
();
proc
=
Runtime
.
getRuntime
().
exec
(
cmd
);
...
...
jdk/src/solaris/native/java/net/net_util_md.c
浏览文件 @
ff8a8d35
/*
* Copyright (c) 1997, 201
1
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
2
, 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
...
...
@@ -76,7 +76,7 @@ gai_strerror_f gai_strerror_ptr = NULL;
getnameinfo_f
getnameinfo_ptr
=
NULL
;
/*
* EXCLBIND socket options only on Solaris
8 & 9.
* EXCLBIND socket options only on Solaris
*/
#if defined(__solaris__) && !defined(TCP_EXCLBIND)
#define TCP_EXCLBIND 0x21
...
...
@@ -131,6 +131,7 @@ int getDefaultScopeID(JNIEnv *env) {
static
int
init_tcp_max_buf
,
init_udp_max_buf
;
static
int
tcp_max_buf
;
static
int
udp_max_buf
;
static
int
useExclBind
=
0
;
/*
* Get the specified parameter from the specified driver. The value
...
...
@@ -765,6 +766,26 @@ void initLocalAddrTable () {}
#endif
void
parseExclusiveBindProperty
(
JNIEnv
*
env
)
{
#ifdef __solaris__
jstring
s
,
flagSet
;
jclass
iCls
;
jmethodID
mid
;
s
=
(
*
env
)
->
NewStringUTF
(
env
,
"sun.net.useExclusiveBind"
);
CHECK_NULL
(
s
);
iCls
=
(
*
env
)
->
FindClass
(
env
,
"java/lang/System"
);
CHECK_NULL
(
iCls
);
mid
=
(
*
env
)
->
GetStaticMethodID
(
env
,
iCls
,
"getProperty"
,
"(Ljava/lang/String;)Ljava/lang/String;"
);
CHECK_NULL
(
mid
);
flagSet
=
(
*
env
)
->
CallStaticObjectMethod
(
env
,
iCls
,
mid
,
s
);
if
(
flagSet
!=
NULL
)
{
useExclBind
=
1
;
}
#endif
}
/* In the case of an IPv4 Inetaddress this method will return an
* IPv4 mapped address where IPv6 is available and v4MappedAddress is TRUE.
* Otherwise it will return a sockaddr_in structure for an IPv4 InetAddress.
...
...
@@ -1478,8 +1499,8 @@ NET_SetSockOpt(int fd, int level, int opt, const void *arg,
* Linux allows a socket to bind to 127.0.0.255 which must be
* caught.
*
* On Solaris
8/9
with IPv6 enabled we must use an exclusive
* bind to guarantee
d
a unique port number across the IPv4 and
* On Solaris with IPv6 enabled we must use an exclusive
* bind to guarantee a unique port number across the IPv4 and
* IPv6 port spaces.
*
*/
...
...
@@ -1509,10 +1530,10 @@ NET_Bind(int fd, struct sockaddr *him, int len)
#if defined(__solaris__) && defined(AF_INET6)
/*
* Solaris
8/9 have sepe
rate IPv4 and IPv6 port spaces so we
* Solaris
has sepa
rate IPv4 and IPv6 port spaces so we
* use an exclusive bind when SO_REUSEADDR is not used to
* give the illusion of a unified port space.
* This also avoid problems with IPv6 sockets connecting
* This also avoid
s
problems with IPv6 sockets connecting
* to IPv4 mapped addresses whereby the socket conversion
* results in a late bind that fails because the
* corresponding IPv4 port is in use.
...
...
@@ -1521,11 +1542,12 @@ NET_Bind(int fd, struct sockaddr *him, int len)
int
arg
,
len
;
len
=
sizeof
(
arg
);
if
(
getsockopt
(
fd
,
SOL_SOCKET
,
SO_REUSEADDR
,
(
char
*
)
&
arg
,
&
len
)
==
0
)
{
if
(
arg
==
0
)
{
if
(
useExclBind
||
getsockopt
(
fd
,
SOL_SOCKET
,
SO_REUSEADDR
,
(
char
*
)
&
arg
,
&
len
)
==
0
)
{
if
(
useExclBind
||
arg
==
0
)
{
/*
* SO_REUSEADDR is disabled so enable TCP_EXCLBIND or
* SO_REUSEADDR is disabled or sun.net.useExclusiveBind
* property is true so enable TCP_EXCLBIND or
* UDP_EXCLBIND
*/
len
=
sizeof
(
arg
);
...
...
jdk/src/windows/native/java/net/net_util_md.c
浏览文件 @
ff8a8d35
...
...
@@ -126,6 +126,7 @@ DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved)
}
void
initLocalAddrTable
()
{}
void
parseExclusiveBindProperty
(
JNIEnv
*
env
)
{}
/*
* Since winsock doesn't have the equivalent of strerror(errno)
...
...
jdk/test/java/lang/invoke/AccessControlTest.java
0 → 100644
浏览文件 @
ff8a8d35
此差异已折叠。
点击以展开。
jdk/test/java/lang/invoke/AccessControlTest_subpkg/Acquaintance_remote.java
0 → 100644
浏览文件 @
ff8a8d35
package
test.java.lang.invoke.AccessControlTest_subpkg
;
import
test.java.lang.invoke.AccessControlTest
;
import
java.lang.invoke.*
;
import
static
java
.
lang
.
invoke
.
MethodHandles
.*;
// This guy tests access from outside the package test.java.lang.invoke:
public
class
Acquaintance_remote
{
public
static
Lookup
[]
lookups
()
{
return
new
Lookup
[]
{
Acquaintance_remote
.
lookup_in_remote
(),
Remote_subclass
.
lookup_in_subclass
(),
Remote_hidden
.
lookup_in_hidden
()
};
}
public
static
Lookup
lookup_in_remote
()
{
return
MethodHandles
.
lookup
();
}
static
public
void
pub_in_remote
()
{
}
static
protected
void
pro_in_remote
()
{
}
static
/*package*/
void
pkg_in_remote
()
{
}
static
private
void
pri_in_remote
()
{
}
static
public
class
Remote_subclass
extends
AccessControlTest
{
static
Lookup
lookup_in_subclass
()
{
return
MethodHandles
.
lookup
();
}
static
public
void
pub_in_subclass
()
{
}
static
protected
void
pro_in_subclass
()
{
}
static
/*package*/
void
pkg_in_subclass
()
{
}
static
private
void
pri_in_subclass
()
{
}
}
static
/*package*/
class
Remote_hidden
{
static
Lookup
lookup_in_hidden
()
{
return
MethodHandles
.
lookup
();
}
static
public
void
pub_in_hidden
()
{
}
static
protected
void
pro_in_hidden
()
{
}
static
/*package*/
void
pkg_in_hidden
()
{
}
static
private
void
pri_in_hidden
()
{
}
}
}
jdk/test/java/net/Socket/setReuseAddress/Basic.java
浏览文件 @
ff8a8d35
...
...
@@ -26,6 +26,8 @@
* @bug 4476378
* @summary Check the specific behaviour of the setReuseAddress(boolean)
* method.
* @run main Basic
* @run main/othervm -Dsun.net.useExclusiveBind Basic
*/
import
java.net.*
;
...
...
@@ -170,7 +172,12 @@ public class Basic {
s2
.
bind
(
new
InetSocketAddress
(
s1
.
getLocalPort
())
);
passed
();
}
catch
(
BindException
e
)
{
failed
();
if
(
System
.
getProperty
(
"sun.net.useExclusiveBind"
)
!=
null
)
{
// exclusive bind enabled - expected result
passed
();
}
else
{
failed
();
}
}
s2
.
close
();
...
...
jdk/test/java/net/Socket/setReuseAddress/Restart.java
浏览文件 @
ff8a8d35
...
...
@@ -26,6 +26,8 @@
* @bug 4476378
* @summary Check that SO_REUSEADDR allows a server to restart
* after a crash.
* @run main Restart
* @run main/othervm -Dsun.net.useExclusiveBind Restart
*/
import
java.net.*
;
...
...
@@ -57,6 +59,12 @@ public class Restart {
// close the client socket
s1
.
close
();
}
catch
(
BindException
be
)
{
if
(
System
.
getProperty
(
"sun.net.useExclusiveBind"
)
!=
null
)
{
// exclusive bind, expected exception
}
else
{
throw
be
;
}
}
finally
{
if
(
ss
!=
null
)
ss
.
close
();
if
(
s1
!=
null
)
s1
.
close
();
...
...
jdk/test/javax/swing/plaf/synth/7143614/bug7143614.java
0 → 100644
浏览文件 @
ff8a8d35
/*
* 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 7143614
* @summary Issues with Synth Look&Feel
* @author Pavel Porvatov
*/
import
sun.awt.SunToolkit
;
import
javax.swing.plaf.ComponentUI
;
import
javax.swing.plaf.basic.BasicButtonUI
;
import
javax.swing.plaf.synth.SynthConstants
;
import
javax.swing.plaf.synth.SynthLookAndFeel
;
import
java.lang.reflect.Method
;
public
class
bug7143614
{
private
static
Method
setSelectedUIMethod
;
private
static
ComponentUI
componentUI
=
new
BasicButtonUI
();
public
static
void
main
(
String
[]
args
)
throws
Exception
{
setSelectedUIMethod
=
SynthLookAndFeel
.
class
.
getDeclaredMethod
(
"setSelectedUI"
,
ComponentUI
.
class
,
boolean
.
class
,
boolean
.
class
,
boolean
.
class
,
boolean
.
class
);
setSelectedUIMethod
.
setAccessible
(
true
);
setSelectedUIMethod
.
invoke
(
null
,
componentUI
,
true
,
true
,
true
,
true
);
validate
();
Thread
thread
=
new
ThreadInAnotherAppContext
();
thread
.
start
();
thread
.
join
();
validate
();
System
.
out
.
println
(
"Test bug7143614 passed."
);
}
private
static
void
validate
()
throws
Exception
{
Method
getSelectedUIMethod
=
SynthLookAndFeel
.
class
.
getDeclaredMethod
(
"getSelectedUI"
);
getSelectedUIMethod
.
setAccessible
(
true
);
Method
getSelectedUIStateMethod
=
SynthLookAndFeel
.
class
.
getDeclaredMethod
(
"getSelectedUIState"
);
getSelectedUIStateMethod
.
setAccessible
(
true
);
if
(
getSelectedUIMethod
.
invoke
(
null
)
!=
componentUI
)
{
throw
new
RuntimeException
(
"getSelectedUI returns invalid value"
);
}
if
(((
Integer
)
getSelectedUIStateMethod
.
invoke
(
null
)).
intValue
()
!=
(
SynthConstants
.
SELECTED
|
SynthConstants
.
FOCUSED
))
{
throw
new
RuntimeException
(
"getSelectedUIState returns invalid value"
);
}
}
private
static
class
ThreadInAnotherAppContext
extends
Thread
{
public
ThreadInAnotherAppContext
()
{
super
(
new
ThreadGroup
(
"7143614"
),
"ThreadInAnotherAppContext"
);
}
public
void
run
()
{
SunToolkit
.
createNewAppContext
();
try
{
setSelectedUIMethod
.
invoke
(
null
,
null
,
false
,
false
,
false
,
false
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
}
jdk/test/sun/security/x509/X509CRLImpl/OrderAndDup.java
0 → 100644
浏览文件 @
ff8a8d35
/*
* 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 7143872
* @summary Improve certificate extension processing
*/
import
java.io.ByteArrayInputStream
;
import
java.math.BigInteger
;
import
java.security.KeyPairGenerator
;
import
java.security.cert.CertificateFactory
;
import
java.security.cert.X509CRLEntry
;
import
java.util.Date
;
import
sun.security.util.DerInputStream
;
import
sun.security.util.DerValue
;
import
sun.security.x509.*
;
public
class
OrderAndDup
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
// Generate 20 serial numbers with dup and a special order
int
count
=
20
;
BigInteger
[]
serials
=
new
BigInteger
[
count
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
serials
[
i
]
=
BigInteger
.
valueOf
(
i
*
7
%
10
);
}
// Generates a CRL
X509CRLEntry
[]
badCerts
=
new
X509CRLEntry
[
count
];
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
badCerts
[
i
]
=
new
X509CRLEntryImpl
(
serials
[
i
],
new
Date
(
System
.
currentTimeMillis
()+
i
*
1000
));
}
X500Name
owner
=
new
X500Name
(
"CN=CA"
);
X509CRLImpl
crl
=
new
X509CRLImpl
(
owner
,
new
Date
(),
new
Date
(),
badCerts
);
KeyPairGenerator
kpg
=
KeyPairGenerator
.
getInstance
(
"RSA"
);
crl
.
sign
(
kpg
.
genKeyPair
().
getPrivate
(),
"SHA1withRSA"
);
byte
[]
data
=
crl
.
getEncodedInternal
();
// Check the encoding
checkData
(
crl
,
data
,
serials
);
// Load a CRL from raw data
CertificateFactory
cf
=
CertificateFactory
.
getInstance
(
"X.509"
);
X509CRLImpl
crl2
=
(
X509CRLImpl
)
cf
.
generateCRL
(
new
ByteArrayInputStream
(
data
));
// Check the encoding again
data
=
crl2
.
getEncodedInternal
();
checkData
(
crl2
,
data
,
serials
);
}
// Check the raw data's ASN.1 structure to see if the revoked certs
// have the same number and correct order as inserted
static
void
checkData
(
X509CRLImpl
c
,
byte
[]
data
,
BigInteger
[]
expected
)
throws
Exception
{
if
(
c
.
getRevokedCertificates
().
size
()
!=
expected
.
length
)
{
throw
new
Exception
(
"Wrong count in CRL object, now "
+
c
.
getRevokedCertificates
().
size
());
}
DerValue
d1
=
new
DerValue
(
data
);
// revokedCertificates at 5th place of TBSCertList
DerValue
[]
d2
=
new
DerInputStream
(
d1
.
data
.
getSequence
(
0
)[
4
].
toByteArray
())
.
getSequence
(
0
);
if
(
d2
.
length
!=
expected
.
length
)
{
throw
new
Exception
(
"Wrong count in raw data, now "
+
d2
.
length
);
}
for
(
int
i
=
0
;
i
<
d2
.
length
;
i
++)
{
// Serial is first in revokedCertificates entry
BigInteger
bi
=
d2
[
i
].
data
.
getBigInteger
();
if
(!
bi
.
equals
(
expected
[
i
]))
{
throw
new
Exception
(
"Entry at #"
+
i
+
" is "
+
bi
+
", should be "
+
expected
[
i
]);
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录