提交 bf07eab2 编写于 作者: A asaha

Merge

......@@ -701,6 +701,8 @@ be34a52805408eb5edaf3d8de4fae47632a757c5 jdk8u112-b12
30f83ac389f06c38dc0b6f71b1d8344c01436a16 jdk8u112-b15
8ef3cc2bbc7dc687e9502ae957337b1ded1b32d4 jdk8u112-b16
7d4291146927c3430652a07f506d530c2eff7eb9 jdk8u112-b31
46db19bfd51b4039cff4dae563c3b5d3f70d64da jdk8u112-b32
d52e17760c1dafa4fa17ec388aeaaf8fcacb444b jdk8u112-b33
3a25f8a752524bad7e78800158c485b890be3982 jdk8u121-b00
1ebd97292358cd158b6f7d5884526207fbfe796e jdk8u121-b01
349d130d7a7f2bcaaed8dd2696030022eb4e7b75 jdk8u121-b02
......@@ -715,6 +717,12 @@ e24a55876a79b630e8cfca7a1b38a0ee372f8533 jdk8u121-b10
acbfa2934b2411dd20aacb42d1c8dd198fe9f8e9 jdk8u121-b11
cc9a5d631b77582d52aceaf6d6066e99533d1756 jdk8u121-b12
386e9b79fcf5bfad5ff7b0fc991a7c6c5cbfed17 jdk8u121-b13
61eb6e79aabe13253306d6e614a21619dacfa2cc jdk8u121-b31
d28f2fc91487a86a7deffe71e38179067807c60b jdk8u121-b32
58f874750c2823443a8712f3728e6aa91d45bb5b jdk8u121-b33
3f0f5fc9e9a8c487dee66d7b300e265a10fd1355 jdk8u121-b34
345b15579d5e3563e818d95ff9c47cabea1c5771 jdk8u121-b35
1c16b68906a0bf305f1e23072bfd6cb3f3fc84be jdk8u121-b36
e30c16839f2225d2fff653088636dafcb812cd4d jdk8u131-b00
464cf9d3b00291fcf879ceca1b66bc7588093c47 jdk8u131-b01
1656050026687c96900eed3b415d0ca1a0dc55b3 jdk8u131-b02
......@@ -727,6 +735,10 @@ e77b6e1ec15770c4d92be14074af849323f91bf1 jdk8u131-b05
c5fd9c3a2eb12d366d59195dbea54c60db2a1df3 jdk8u131-b09
de3c63a8b2e52d47554c999a65dbcec7f6d9c1be jdk8u131-b10
2b88cb53e31fb637d7c37cc3414bb3eb3e9d1f0d jdk8u131-b11
4db7f76e9f3266c8ba5c801996b27009bb17b335 jdk8u131-b31
d81babb8888496371bb80757f2650dec9ff95175 jdk8u131-b32
6184f10981e7a321b52c13c609bb41f289d85270 jdk8u131-b33
2cb574e6eca33fad6858dcfc9c6c7b45a112e965 jdk8u131-b34
7056e474d6e3b7b3bac76bc35f8c4c321bf9abe9 jdk8u141-b00
0f825574a7c8742494810d1f29193bfc3f1d370c jdk8u141-b01
66d2dbe82668e425317ec0c421f5384399b220c9 jdk8u141-b02
......@@ -745,6 +757,14 @@ ad04b672d6f92dcfbe9e72de041bd05d26a31fde jdk8u141-b13
4f242f33e89a7900f2fcdcd9402058b6d01f340c jdk8u141-b15
77461a27d91fcb53106e6b3234468bff4d0eec9e jdk8u144-b00
0d5d2e29f93b01ffa4998c2e3a61d2e6eaa96b1b jdk8u144-b01
e03501807899791ff7888884bcf47eb39be594bb jdk8u141-b31
1bbe5d997ab4e030dd961ab78e11ddae1bc6786c jdk8u141-b32
77461a27d91fcb53106e6b3234468bff4d0eec9e jdk8u144-b00
0d5d2e29f93b01ffa4998c2e3a61d2e6eaa96b1b jdk8u144-b01
d3a4dd903475fd77fae2f6f87deb9219f455dcff jdk8u144-b31
5d81bcd53ba0d79ab2843891759b31e4ef497fad jdk8u144-b32
b7f3faccefc33fc76d7c5c1c4d4cf6c85d0dad61 jdk8u144-b33
ecfa8b7c2c1f71a3f9240ad0c6a5e3f7104a9cce jdk8u144-b34
2dbdceff6ade82aa9942cdea6b62d5655d65183c jdk8u151-b00
4449c73dbfdf2e32889e3ce769bd4160daa48b71 jdk8u151-b01
ffa099d5b88ff14cea677d2afa4229354e9404d0 jdk8u151-b02
......@@ -785,10 +805,60 @@ f33390314a7d9311dc9474106ad6e66d71751e6d jdk8u152-b13
2b4802994bf5a4a634258c9ff06d3da474130f8b jdk8u152-b14
f89071fbde60b327d6940a34fcdeed96b6440dd2 jdk8u152-b15
674aecf3d87ae774e2026a1cb2a60eaa651bc7c2 jdk8u152-b16
2dbdceff6ade82aa9942cdea6b62d5655d65183c jdk8u151-b00
4449c73dbfdf2e32889e3ce769bd4160daa48b71 jdk8u151-b01
ffa099d5b88ff14cea677d2afa4229354e9404d0 jdk8u151-b02
a6814326f989837019ff7dd0d9b0e57065499bc5 jdk8u151-b03
cefb3694f8565e1f23ff3231fd21523f52161a95 jdk8u151-b04
8977426affc02fdf74b1163865059ec86ddccb61 jdk8u151-b05
3289ad7e88f3aa38fdaa4910e9eeed5e1e5430b1 jdk8u151-b06
58d0ffe75dc5597310d422e214dc077476bd2338 jdk8u122-b00
a87b06da783bb5a11f7857220789979129e39e7c jdk8u122-b01
8684348ae5eb6f895d19e4752dea567642dbcec4 jdk8u122-b02
117a593d021502529821afbd7e0d695c170449f8 jdk8u122-b03
117a593d021502529821afbd7e0d695c170449f8 jdk8u122-b03
0000000000000000000000000000000000000000 jdk8u122-b03
0000000000000000000000000000000000000000 jdk8u122-b03
f8661a76fe475b1d7653493e407086830fde81f8 jdk8u122-b03
7bd4195b17aa0a268eee4bc4b89f30ed3b096898 jdk8u122-b04
f86d6064d7cfa022425c3df03d4335511ab33ecb jdk8u132-b00
ea3d3c26102dcb82d9b140f729308395310dae7a jdk8u152-b00
1819d008129b31df8c74b5d16e9daabc2bdcc10c jdk8u152-b01
06f411ed0014d88050d9bd1e74c208a9fa3cfb6e jdk8u152-b02
d36e9c6f195c5604626f7c836c17826960ca2a11 jdk8u152-b03
4f94cc55256028ab54390abe212959c241b0670f jdk8u152-b04
2917e61cfadab474625d19fb7775ccdec5584738 jdk8u152-b05
bc6e4d3f7a20c34dcdccc1be17792188ccdcb917 jdk8u152-b06
87992ac3484c6c2ae5cad4ad14701a03a9ec963c jdk8u152-b07
1f7bbfb8b2632ac610c3a0d7d944ff0a3967469a jdk8u152-b08
a9e83644bd11b5da49bb4424eed9c5a34003085c jdk8u152-b09
2dbdceff6ade82aa9942cdea6b62d5655d65183c jdk8u151-b00
aed470d361fe9b3a6714e6c9942923c188dcc050 jdk8u161-b00
968a7e1a6e6c5e79237b796e562f149214e2ae9b jdk8u161-b01
bb767c7211eace9df83649ba937d2ce507223e4d jdk8u161-b02
b50b596df2a1b4ad86e73d0d309c27c7ba1ad0c0 jdk8u161-b03
ea5791706d0992acb1f74129128ba5f60dcfff6e jdk8u161-b04
897b749544e9803038c9696e145959bdc9eb5008 jdk8u161-b05
bbdd5e2c46e87bafe419a82309ddbb1ffc8f6215 jdk8u161-b06
b1a36f62733a920e04d9eed825264dbe12d91ef4 jdk8u161-b07
49b9defc1bfc0507f87e05bba4de4d8b3cca1996 jdk8u161-b08
2b03640b61bda0a4d8e89c57d919bf1742aeeb8f jdk8u161-b09
1a3e06fc462b39d065e9fc78191cc6d8a9c33fc0 jdk8u161-b10
104006ed6c31ed1fe46cbee9d665e0dbc6bcac13 jdk8u161-b11
b49016a1d704c25d6e66f3d6eb614b70f8a931eb jdk8u161-b12
1160ad38fc7495c01c25421ae89689232481eb6b jdk8u162-b00
86b1cd17fde74427ac4b9312cc56bafc57b32fb4 jdk8u162-b01
1b40ae740b78de002d4096feee0407a4ce0e1608 jdk8u162-b02
b28af4ff80a964defc89cc9c7084f8f6e82a52ba jdk8u162-b03
8cfa77f0651d850cfd3c8e8eea8272d6ccefa86f jdk8u162-b04
6f3097ab2b1bfc00f8efc895369faf2228422526 jdk8u162-b05
59f9887ee15eefabe300dedf835abd1c0aec40df jdk8u162-b06
5066fa48df81b06eeffebc10e13308b68cd59e89 jdk8u162-b07
7279642d20886178bd18a713a309619e3298935c jdk8u162-b08
59171db1d423142a596dcde1f353d4277f016b98 jdk8u162-b09
2c68567bdcf2bb465d38c9783c0886df98fc496e jdk8u162-b10
6029daad75bf459b330fc79ebf208dc35dc682d5 jdk8u162-b11
ace99846c1fd92e8bec4cbe912ec3fc8a74fbf0c jdk8u162-b12
72dbc8d63308f5b04b9fd3e06d139d673f992212 jdk8u172-b00
fbb7c1e76e59aabb85a70c81301f47b980f83225 jdk8u172-b01
56874ff37e89559692d1314d48cbab574544b677 jdk8u172-b02
......@@ -7,7 +7,7 @@ OpenJDK 8.
--- begin of LICENSE ---
Copyright (c) 2000-2011 France Télécom
Copyright (c) 2000-2011 France T??l??com
All rights reserved.
Redistribution and use in source and binary forms, with or without
......@@ -849,7 +849,7 @@ JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
Copyright notice
Copyright © 2011 Ecma International
Copyright ?? 2011 Ecma International
Ecma International
Rue du Rhone 114
CH-1204 Geneva
......@@ -916,7 +916,7 @@ Linux and Solaris.
--- begin of LICENSE ---
Copyright © 2001,2003 Keith Packard
Copyright ?? 2001,2003 Keith Packard
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that the
......@@ -2212,16 +2212,16 @@ which may be included with JRE 8, JDK 8, and OpenJDK 8.
Unicode Terms of Use
For the general privacy policy governing access to this site, see the Unicode
Privacy Policy. For trademark usage, see the Unicode® Consortium Name and
Privacy Policy. For trademark usage, see the Unicode?? Consortium Name and
Trademark Usage Policy.
A. Unicode Copyright.
1. Copyright © 1991-2013 Unicode, Inc. All rights reserved.
1. Copyright ?? 1991-2013 Unicode, Inc. All rights reserved.
2. Certain documents and files on this website contain a legend indicating
that "Modification is permitted." Any person is hereby authorized,
without fee, to modify such documents and files to create derivative
works conforming to the Unicode® Standard, subject to Terms and
works conforming to the Unicode?? Standard, subject to Terms and
Conditions herein.
3. Any person is hereby authorized, without fee, to view, use, reproduce,
......@@ -2287,14 +2287,14 @@ D. Waiver of Damages. In no event shall Unicode or its licensors be liable for
E.Trademarks & Logos.
1. The Unicode Word Mark and the Unicode Logo are trademarks of Unicode,
Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of
Inc. ???The Unicode Consortium??? and ???Unicode, Inc.??? are trade names of
Unicode, Inc. Use of the information and materials found on this
website indicates your acknowledgement of Unicode, Inc.s exclusive
website indicates your acknowledgement of Unicode, Inc.???s exclusive
worldwide rights in the Unicode Word Mark, the Unicode Logo, and the
Unicode trade names.
2. The Unicode Consortium Name and Trademark Usage Policy (Trademark
Policy) are incorporated herein by reference and you agree to abide by
2. The Unicode Consortium Name and Trademark Usage Policy (???Trademark
Policy???) are incorporated herein by reference and you agree to abide by
the provisions of the Trademark Policy, which may be changed from time
to time in the sole discretion of Unicode, Inc.
......@@ -2317,12 +2317,12 @@ Miscellaneous.
2. Modification by Unicode. Unicode shall have the right to modify this
Agreement at any time by posting it to this site. The user may not
assign any part of this Agreement without Unicodes prior written
assign any part of this Agreement without Unicode???s prior written
consent.
3. Taxes. The user agrees to pay any taxes arising from access to this
website or use of the information herein, except for those based on
Unicodes net income.
Unicode???s net income.
4. Severability. If any provision of this Agreement is declared invalid or
unenforceable, the remaining provisions of this Agreement shall remain
......@@ -2351,7 +2351,7 @@ SOFTWARE.
COPYRIGHT AND PERMISSION NOTICE
Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the
Copyright ?? 1991-2012 Unicode, Inc. All rights reserved. Distributed under the
Terms of Use in http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining a copy
......
/*
* Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2000, 2017, 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,11 +26,13 @@
package com.sun.corba.se.impl.encoding;
import com.sun.corba.se.impl.orbutil.ORBConstants;
import com.sun.corba.se.impl.orbutil.ORBUtility;
import com.sun.corba.se.impl.encoding.ByteBufferWithInfo;
import com.sun.corba.se.impl.encoding.BufferManagerWrite;
import com.sun.corba.se.pept.encoding.OutputObject;
import com.sun.corba.se.pept.transport.Connection;
import com.sun.corba.se.spi.orb.ORB;
import com.sun.corba.se.spi.orb.ORBData;
public class BufferManagerWriteGrow extends BufferManagerWrite
{
......@@ -48,7 +50,20 @@ public class BufferManagerWriteGrow extends BufferManagerWrite
* buffer manager as set in the ORB.
*/
public int getBufferSize() {
return orb.getORBData().getGIOPBufferSize();
ORBData orbData = null;
int bufferSize = ORBConstants.GIOP_DEFAULT_BUFFER_SIZE;
if (orb != null) {
orbData = orb.getORBData();
if (orbData != null) {
bufferSize = orbData.getGIOPBufferSize();
dprint("BufferManagerWriteGrow.getBufferSize: bufferSize == " + bufferSize);
} else {
dprint("BufferManagerWriteGrow.getBufferSize: orbData reference is NULL");
}
} else {
dprint("BufferManagerWriteGrow.getBufferSize: orb reference is NULL");
}
return bufferSize;
}
public void overflow (ByteBufferWithInfo bbwi)
......@@ -89,4 +104,9 @@ public class BufferManagerWriteGrow extends BufferManagerWrite
*/
public void close() {}
private void dprint(String msg) {
if (orb.transportDebugFlag) {
ORBUtility.dprint(this, msg);
}
}
}
/*
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2017, 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
......@@ -32,18 +32,9 @@
package com.sun.corba.se.impl.encoding;
import java.io.IOException;
import java.io.Serializable;
import java.io.ByteArrayInputStream;
import java.io.ObjectInputStream;
import java.io.IOException;
import java.io.StreamCorruptedException;
import java.io.OptionalDataException;
import java.io.IOException;
import java.util.Stack;
import java.net.URL;
import java.net.MalformedURLException;
import java.nio.ByteBuffer;
......@@ -53,19 +44,11 @@ import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.rmi.Remote;
import java.rmi.StubNotFoundException;
import java.security.AccessController;
import java.security.PrivilegedExceptionAction;
import java.security.PrivilegedActionException;
import org.omg.CORBA.SystemException;
import org.omg.CORBA.Object;
import org.omg.CORBA.Principal;
import org.omg.CORBA.TypeCode;
import org.omg.CORBA.Any;
import org.omg.CORBA.portable.Delegate;
import org.omg.CORBA.portable.ValueBase;
import org.omg.CORBA.portable.IndirectionException;
import org.omg.CORBA.CompletionStatus;
......@@ -82,15 +65,12 @@ import org.omg.CORBA.portable.StreamableValue;
import org.omg.CORBA.MARSHAL;
import org.omg.CORBA.portable.IDLEntity;
import javax.rmi.PortableRemoteObject;
import javax.rmi.CORBA.Tie;
import javax.rmi.CORBA.Util;
import javax.rmi.CORBA.ValueHandler;
import com.sun.corba.se.pept.protocol.MessageMediator;
import com.sun.corba.se.pept.transport.ByteBufferPool;
import com.sun.corba.se.spi.protocol.RequestDispatcherRegistry;
import com.sun.corba.se.spi.protocol.CorbaClientDelegate;
import com.sun.corba.se.spi.ior.IOR;
......@@ -99,9 +79,6 @@ import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
import com.sun.corba.se.spi.orb.ORB;
import com.sun.corba.se.spi.orb.ORBVersionFactory;
import com.sun.corba.se.spi.orb.ORBVersion;
import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
import com.sun.corba.se.spi.logging.CORBALogDomains;
import com.sun.corba.se.spi.presentation.rmi.PresentationManager;
......@@ -725,12 +702,14 @@ public class CDRInputStream_1_0 extends CDRInputStreamBase
// IDLEntity.class.isAssignableFrom( clz ).
// 3. If clz is an interface, use it to create the appropriate
// stub factory.
public org.omg.CORBA.Object read_Object(Class clz)
{
// In any case, we must first read the IOR.
IOR ior = IORFactories.makeIOR(parent) ;
if (ior.isNil())
if (ior.isNil()) {
return null ;
}
PresentationManager.StubFactoryFactory sff = ORB.getStubFactoryFactory() ;
String codeBase = ior.getProfile().getCodebase() ;
......@@ -739,6 +718,7 @@ public class CDRInputStream_1_0 extends CDRInputStreamBase
if (clz == null) {
RepositoryId rid = RepositoryId.cache.getId( ior.getTypeId() ) ;
String className = rid.getClassName() ;
orb.validateIORClass(className);
boolean isIDLInterface = rid.isIDLType() ;
if (className == null || className.equals( "" ))
......@@ -761,11 +741,9 @@ public class CDRInputStream_1_0 extends CDRInputStreamBase
} else {
// clz is an interface class
boolean isIDL = IDLEntity.class.isAssignableFrom( clz ) ;
stubFactory = sff.createStubFactory( clz.getName(),
isIDL, codeBase, clz, clz.getClassLoader() ) ;
}
return internalIORToObject( ior, stubFactory, orb ) ;
}
......
/*
* Copyright (c) 2017, 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* 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 com.sun.corba.se.impl.ior;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import com.sun.corba.se.impl.orbutil.ORBUtility;
import com.sun.corba.se.spi.ior.IORTypeCheckRegistry;
import com.sun.corba.se.spi.orb.ORB;
public class IORTypeCheckRegistryImpl implements IORTypeCheckRegistry {
private final Set<String> iorTypeNames;
private static final Set<String> builtinIorTypeNames;
private ORB theOrb;
static {
builtinIorTypeNames = initBuiltinIorTypeNames();
}
public IORTypeCheckRegistryImpl(String filterProperties, ORB orb) {
theOrb = orb;
iorTypeNames = parseIorClassNameList(filterProperties);
}
/*
*
* A note on the validation flow:
* 1. against the filter class name list
* 2. against the builtin class name list
*/
@Override
public boolean isValidIORType(String iorClassName) {
dprintTransport(".isValidIORType : iorClassName == " + iorClassName);
return validateIorTypeByName(iorClassName);
}
private boolean validateIorTypeByName(String iorClassName) {
dprintTransport(".validateIorTypeByName : iorClassName == " + iorClassName);
boolean isValidType;
isValidType = checkIorTypeNames(iorClassName);
if (!isValidType) {
isValidType = checkBuiltinClassNames(iorClassName);
}
dprintTransport(".validateIorTypeByName : isValidType == " + isValidType);
return isValidType;
}
/*
* check if the class name corresponding to an IOR Type name
* is in the ior class name list as generated from the filter property.
* So if the IOR type is recorded in the registry then allow the creation of the
* stub factory and let it resolve and load the class. That is if current
* type check deliberation permits.
* IOR Type names are configured by the filter property
*/
private boolean checkIorTypeNames(
String theIorClassName) {
return (iorTypeNames != null) && (iorTypeNames.contains(theIorClassName));
}
/*
* Check the IOR interface class name against the set of
* class names that correspond to the builtin JDK IDL stub classes.
*/
private boolean checkBuiltinClassNames(
String theIorClassName) {
return builtinIorTypeNames.contains(theIorClassName);
}
private Set<String> parseIorClassNameList(String filterProperty) {
Set<String> _iorTypeNames = null;
if (filterProperty != null) {
String[] tempIorClassNames = filterProperty.split(";");
_iorTypeNames = Collections.unmodifiableSet(new HashSet<>(Arrays
.asList(tempIorClassNames)));
if (theOrb.orbInitDebugFlag) {
dprintConfiguredIorTypeNames();
}
}
return _iorTypeNames;
}
private static Set<String> initBuiltinIorTypeNames() {
Set<Class<?>> builtInCorbaStubTypes = initBuiltInCorbaStubTypes();
String[] tempBuiltinIorTypeNames = new String[builtInCorbaStubTypes.size()];
int i = 0;
for (Class<?> _stubClass : builtInCorbaStubTypes) {
tempBuiltinIorTypeNames[i++] = _stubClass.getName();
}
return Collections.unmodifiableSet(new HashSet<>(Arrays
.asList(tempBuiltinIorTypeNames)));
}
private static Set<Class<?>> initBuiltInCorbaStubTypes() {
Class<?> tempBuiltinCorbaStubTypes[] = {
com.sun.corba.se.spi.activation.Activator.class,
com.sun.corba.se.spi.activation._ActivatorStub.class,
com.sun.corba.se.spi.activation._InitialNameServiceStub.class,
com.sun.corba.se.spi.activation._LocatorStub.class,
com.sun.corba.se.spi.activation._RepositoryStub.class,
com.sun.corba.se.spi.activation._ServerManagerStub.class,
com.sun.corba.se.spi.activation._ServerStub.class,
org.omg.CosNaming.BindingIterator.class,
org.omg.CosNaming._BindingIteratorStub.class,
org.omg.CosNaming.NamingContextExt.class,
org.omg.CosNaming._NamingContextExtStub.class,
org.omg.CosNaming.NamingContext.class,
org.omg.CosNaming._NamingContextStub.class,
org.omg.DynamicAny.DynAnyFactory.class,
org.omg.DynamicAny._DynAnyFactoryStub.class,
org.omg.DynamicAny.DynAny.class,
org.omg.DynamicAny._DynAnyStub.class,
org.omg.DynamicAny.DynArray.class,
org.omg.DynamicAny._DynArrayStub.class,
org.omg.DynamicAny.DynEnum.class,
org.omg.DynamicAny._DynEnumStub.class,
org.omg.DynamicAny.DynFixed.class,
org.omg.DynamicAny._DynFixedStub.class,
org.omg.DynamicAny.DynSequence.class,
org.omg.DynamicAny._DynSequenceStub.class,
org.omg.DynamicAny.DynStruct.class,
org.omg.DynamicAny._DynStructStub.class,
org.omg.DynamicAny.DynUnion.class,
org.omg.DynamicAny._DynUnionStub.class,
org.omg.DynamicAny._DynValueStub.class,
org.omg.DynamicAny.DynValue.class,
org.omg.PortableServer.ServantActivator.class,
org.omg.PortableServer._ServantActivatorStub.class,
org.omg.PortableServer.ServantLocator.class,
org.omg.PortableServer._ServantLocatorStub.class};
return new HashSet<>(
Arrays.asList(tempBuiltinCorbaStubTypes));
}
private void dprintConfiguredIorTypeNames() {
if (iorTypeNames != null) {
for (String iorTypeName : iorTypeNames) {
ORBUtility.dprint(this, ".dprintConfiguredIorTypeNames: " + iorTypeName);
}
}
}
private void dprintTransport(String msg) {
if (theOrb.transportDebugFlag) {
ORBUtility.dprint(this, msg);
}
}
}
/*
* Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2017, 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
......@@ -32,37 +32,25 @@ import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.lang.reflect.InvocationTargetException;
import java.util.Set;
import java.util.HashSet;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Properties;
import java.util.Vector;
import java.util.Hashtable;
import java.util.Map;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Collection;
import java.util.Collections;
import java.util.StringTokenizer;
import java.util.Enumeration;
import java.util.WeakHashMap;
import java.net.InetAddress;
import java.security.PrivilegedAction;
import java.security.Security;
import java.security.AccessController;
import javax.rmi.CORBA.Util;
import javax.rmi.CORBA.ValueHandler;
import org.omg.CORBA.Context;
import org.omg.CORBA.ContextList;
import org.omg.CORBA.Environment;
import org.omg.CORBA.ExceptionList;
import org.omg.CORBA.ORBPackage.InvalidName;
import org.omg.CORBA.NVList;
import org.omg.CORBA.TCKind;
import org.omg.CORBA.NamedValue;
......@@ -75,7 +63,6 @@ import org.omg.CORBA.StructMember;
import org.omg.CORBA.UnionMember;
import org.omg.CORBA.ValueMember;
import org.omg.CORBA.BAD_PARAM;
import org.omg.CORBA.MARSHAL;
import org.omg.CORBA.portable.ValueFactory;
......@@ -83,10 +70,7 @@ import org.omg.CORBA.ORBPackage.InvalidName;
import com.sun.org.omg.SendingContext.CodeBase;
import com.sun.corba.se.pept.broker.Broker;
import com.sun.corba.se.pept.protocol.ClientInvocationInfo;
import com.sun.corba.se.pept.transport.ContactInfo;
import com.sun.corba.se.pept.transport.ConnectionCache;
import com.sun.corba.se.pept.transport.TransportManager;
import com.sun.corba.se.spi.ior.IOR;
......@@ -95,8 +79,6 @@ import com.sun.corba.se.spi.ior.TaggedComponentFactoryFinder;
import com.sun.corba.se.spi.ior.IORFactories;
import com.sun.corba.se.spi.ior.ObjectKey;
import com.sun.corba.se.spi.ior.ObjectKeyFactory;
import com.sun.corba.se.spi.ior.iiop.IIOPFactories;
import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
import com.sun.corba.se.spi.oa.OAInvocationInfo;
import com.sun.corba.se.spi.oa.ObjectAdapterFactory;
import com.sun.corba.se.spi.orb.DataCollector;
......@@ -113,24 +95,18 @@ import com.sun.corba.se.spi.orbutil.threadpool.ThreadPoolManager;
import com.sun.corba.se.spi.protocol.ClientDelegateFactory;
import com.sun.corba.se.spi.protocol.RequestDispatcherRegistry;
import com.sun.corba.se.spi.protocol.CorbaServerRequestDispatcher;
import com.sun.corba.se.spi.protocol.RequestDispatcherDefault;
import com.sun.corba.se.spi.protocol.PIHandler;
import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
import com.sun.corba.se.spi.protocol.ForwardException;
import com.sun.corba.se.spi.resolver.Resolver;
import com.sun.corba.se.spi.resolver.LocalResolver;
import com.sun.corba.se.spi.orb.StringPair;
import com.sun.corba.se.spi.orb.StringPair;
import com.sun.corba.se.spi.transport.CorbaContactInfoListFactory;
import com.sun.corba.se.spi.transport.CorbaTransportManager;
import com.sun.corba.se.spi.ior.IORTypeCheckRegistry;
import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketManager;
import com.sun.corba.se.spi.logging.CORBALogDomains;
import com.sun.corba.se.spi.copyobject.CopierManager;
import com.sun.corba.se.spi.presentation.rmi.PresentationDefaults;
import com.sun.corba.se.spi.presentation.rmi.PresentationManager;
import com.sun.corba.se.spi.presentation.rmi.StubAdapter;
import com.sun.corba.se.spi.servicecontext.ServiceContextRegistry;
import com.sun.corba.se.impl.corba.TypeCodeFactory;
import com.sun.corba.se.impl.corba.TypeCodeImpl;
import com.sun.corba.se.impl.corba.NVListImpl;
import com.sun.corba.se.impl.corba.ExceptionListImpl;
......@@ -139,9 +115,6 @@ import com.sun.corba.se.impl.corba.NamedValueImpl;
import com.sun.corba.se.impl.corba.EnvironmentImpl;
import com.sun.corba.se.impl.corba.AsynchInvoke;
import com.sun.corba.se.impl.corba.AnyImpl;
import com.sun.corba.se.impl.corba.RequestImpl;
import com.sun.corba.se.impl.dynamicany.DynAnyFactoryImpl;
import com.sun.corba.se.impl.encoding.EncapsOutputStream;
import com.sun.corba.se.impl.encoding.CachedCodeBase;
import com.sun.corba.se.impl.interceptors.PIHandlerImpl;
import com.sun.corba.se.impl.interceptors.PINoOpHandlerImpl;
......@@ -150,12 +123,10 @@ import com.sun.corba.se.impl.ior.TaggedProfileFactoryFinderImpl;
import com.sun.corba.se.impl.ior.TaggedProfileTemplateFactoryFinderImpl;
import com.sun.corba.se.impl.oa.toa.TOAFactory;
import com.sun.corba.se.impl.oa.poa.BadServerIdHandler;
import com.sun.corba.se.impl.oa.poa.DelegateImpl;
import com.sun.corba.se.impl.oa.poa.POAFactory;
import com.sun.corba.se.impl.orbutil.ORBConstants;
import com.sun.corba.se.impl.orbutil.ORBUtility;
import com.sun.corba.se.impl.orbutil.StackImpl;
import com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolImpl;
import com.sun.corba.se.impl.orbutil.threadpool.ThreadPoolManagerImpl;
import com.sun.corba.se.impl.protocol.RequestDispatcherRegistryImpl;
import com.sun.corba.se.impl.protocol.CorbaInvocationInfo;
......@@ -164,7 +135,7 @@ import com.sun.corba.se.impl.legacy.connection.LegacyServerSocketManagerImpl;
import com.sun.corba.se.impl.util.Utility;
import com.sun.corba.se.impl.logging.ORBUtilSystemException;
import com.sun.corba.se.impl.copyobject.CopierManagerImpl;
import com.sun.corba.se.impl.presentation.rmi.PresentationManagerImpl;
import com.sun.corba.se.impl.ior.IORTypeCheckRegistryImpl;
/**
* The JavaIDL ORB implementation.
......@@ -226,6 +197,8 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
private ServiceContextRegistry serviceContextRegistry ;
private IORTypeCheckRegistry iorTypeCheckRegistry;
// Needed here to implement connect/disconnect
private TOAFactory toaFactory ;
......@@ -274,6 +247,8 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
// insNamingDelegate.
private final Object resolverLock = new Object() ;
private static final String IORTYPECHECKREGISTRY_FILTER_PROPNAME = "com.sun.CORBA.ORBIorTypeCheckRegistryFilter";
private TaggedComponentFactoryFinder taggedComponentFactoryFinder ;
private IdentifiableFactoryFinder taggedProfileFactoryFinder ;
......@@ -413,6 +388,37 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
serviceContextRegistry = new ServiceContextRegistry( this ) ;
}
private void initIORTypeCheckRegistry() {
String filterProps = AccessController
.doPrivileged(new PrivilegedAction<String>() {
public String run() {
String props = System
.getProperty(IORTYPECHECKREGISTRY_FILTER_PROPNAME);
if (props == null) {
props = Security
.getProperty(IORTYPECHECKREGISTRY_FILTER_PROPNAME);
}
return props;
}
});
if (filterProps != null) {
try {
iorTypeCheckRegistry = new IORTypeCheckRegistryImpl(filterProps, this);
} catch (Exception ex) {
throw wrapper.bootstrapException(ex);
}
if (this.orbInitDebugFlag) {
dprint(".initIORTypeCheckRegistry, IORTypeCheckRegistryImpl created for properties == "
+ filterProps);
}
} else {
if (this.orbInitDebugFlag) {
dprint(".initIORTypeCheckRegistry, IORTypeCheckRegistryImpl NOT created for properties == ");
}
}
}
protected void setDebugFlags( String[] args )
{
for (int ctr=0; ctr<args.length; ctr++ ) {
......@@ -494,6 +500,8 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
getThreadPoolManager();
super.getByteBufferPool();
initIORTypeCheckRegistry();
}
private synchronized POAFactory getPOAFactory()
......@@ -2089,6 +2097,17 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB
}
return copierManager ;
}
@Override
public void validateIORClass(String iorClassName) {
if (iorTypeCheckRegistry != null) {
if (!iorTypeCheckRegistry.isValidIORType(iorClassName)) {
throw ORBUtilSystemException.get( this,
CORBALogDomains.OA_IOR ).badStringifiedIor();
}
}
}
} // Class ORBImpl
////////////////////////////////////////////////////////////////////////
......
/*
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2017, 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
......@@ -31,28 +31,16 @@
package com.sun.corba.se.impl.orb;
import java.util.Collection;
import java.util.Properties;
import java.util.Hashtable;
import java.applet.Applet;
import java.net.URL;
import java.io.IOException ;
import java.util.logging.Logger ;
import org.omg.CORBA.Context;
import org.omg.CORBA.ContextList;
import org.omg.CORBA.Environment;
import org.omg.CORBA.ExceptionList;
import org.omg.CORBA.ORBPackage.InvalidName;
import org.omg.CORBA.NVList;
import org.omg.CORBA.TCKind;
import org.omg.CORBA.NamedValue;
import org.omg.CORBA.NO_IMPLEMENT;
import org.omg.CORBA.Object;
import org.omg.CORBA.Request;
import org.omg.CORBA.TypeCode;
import org.omg.CORBA.Any;
......@@ -63,7 +51,6 @@ import org.omg.CORBA.Policy;
import org.omg.CORBA.PolicyError;
import org.omg.CORBA.portable.OutputStream;
import org.omg.CORBA.portable.RemarshalException;
import com.sun.corba.se.pept.protocol.ClientInvocationInfo ;
import com.sun.corba.se.pept.transport.ContactInfo;
......@@ -71,15 +58,12 @@ import com.sun.corba.se.pept.transport.ConnectionCache;
import com.sun.corba.se.pept.transport.Selector ;
import com.sun.corba.se.pept.transport.TransportManager;
import com.sun.corba.se.spi.legacy.connection.ORBSocketFactory;
import com.sun.corba.se.spi.orb.ORBData;
import com.sun.corba.se.spi.orb.Operation;
import com.sun.corba.se.spi.orb.ORB;
import com.sun.corba.se.spi.orb.ORBVersion;
import com.sun.corba.se.spi.orb.ORBVersionFactory;
import com.sun.corba.se.spi.oa.OAInvocationInfo;
import com.sun.corba.se.spi.oa.ObjectAdapter;
import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
import com.sun.corba.se.spi.protocol.ClientDelegateFactory;
import com.sun.corba.se.spi.protocol.RequestDispatcherRegistry;
import com.sun.corba.se.spi.protocol.CorbaServerRequestDispatcher;
......@@ -92,22 +76,17 @@ import com.sun.corba.se.spi.ior.TaggedComponentFactoryFinder;
import com.sun.corba.se.spi.ior.ObjectKey;
import com.sun.corba.se.spi.ior.ObjectKeyFactory;
import com.sun.corba.se.spi.ior.iiop.GIOPVersion;
import com.sun.corba.se.pept.transport.ByteBufferPool ;
import com.sun.corba.se.spi.transport.CorbaContactInfoListFactory ;
import com.sun.corba.se.spi.transport.CorbaTransportManager;
import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketManager;
import com.sun.corba.se.spi.orbutil.closure.Closure;
import com.sun.corba.se.spi.orbutil.threadpool.ThreadPoolManager;
import com.sun.corba.se.spi.logging.LogWrapperFactory;
import com.sun.corba.se.spi.logging.LogWrapperBase;
import com.sun.corba.se.spi.copyobject.CopierManager;
import com.sun.corba.se.spi.presentation.rmi.PresentationManager;
import com.sun.corba.se.spi.presentation.rmi.PresentationDefaults;
import com.sun.corba.se.spi.servicecontext.ServiceContextRegistry;
import com.sun.corba.se.spi.servicecontext.ServiceContexts;
import com.sun.corba.se.impl.corba.TypeCodeFactory;
import com.sun.corba.se.impl.corba.TypeCodeImpl;
import com.sun.corba.se.impl.corba.NVListImpl;
import com.sun.corba.se.impl.corba.NamedValueImpl;
......@@ -117,9 +96,6 @@ import com.sun.corba.se.impl.corba.EnvironmentImpl;
import com.sun.corba.se.impl.corba.AnyImpl;
import com.sun.corba.se.impl.encoding.BufferManagerFactory;
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo;
import com.sun.corba.se.impl.encoding.MarshalInputStream;
import com.sun.corba.se.impl.encoding.EncapsOutputStream;
import com.sun.corba.se.impl.encoding.MarshalOutputStream;
import com.sun.corba.se.impl.oa.poa.BadServerIdHandler;
import com.sun.corba.se.impl.orbutil.ORBConstants;
import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketEndPointInfo;
......@@ -768,6 +744,12 @@ public class ORBSingleton extends ORB
public CopierManager getCopierManager() {
return null ;
}
@Override
public void validateIORClass(String iorClassName) {
getFullORB().validateIORClass(iorClassName);
}
}
// End of file.
/*
* Copyright (c) 2017, 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* 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 com.sun.corba.se.spi.ior;
public interface IORTypeCheckRegistry {
public boolean isValidIORType(String iorClassName);
}
/*
* Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 2017, 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,16 +42,13 @@ import com.sun.corba.se.pept.transport.ByteBufferPool;
import com.sun.corba.se.spi.protocol.RequestDispatcherRegistry ;
import com.sun.corba.se.spi.protocol.ClientDelegateFactory ;
import com.sun.corba.se.spi.protocol.CorbaServerRequestDispatcher ;
import com.sun.corba.se.spi.protocol.CorbaMessageMediator ;
import com.sun.corba.se.spi.protocol.PIHandler ;
import com.sun.corba.se.spi.resolver.LocalResolver ;
import com.sun.corba.se.spi.resolver.Resolver ;
import com.sun.corba.se.spi.transport.CorbaContactInfoListFactory ;
import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketEndPointInfo;
import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketManager;
import com.sun.corba.se.spi.monitoring.MonitoringConstants;
import com.sun.corba.se.spi.monitoring.MonitoringManager;
import com.sun.corba.se.spi.monitoring.MonitoringManagerFactory;
import com.sun.corba.se.spi.monitoring.MonitoringFactories;
import com.sun.corba.se.spi.ior.IdentifiableFactoryFinder ;
......@@ -60,8 +57,6 @@ import com.sun.corba.se.spi.ior.ObjectKey ;
import com.sun.corba.se.spi.ior.ObjectKeyFactory ;
import com.sun.corba.se.spi.ior.IOR ;
import com.sun.corba.se.spi.orbutil.closure.Closure ;
import com.sun.corba.se.spi.orb.Operation ;
import com.sun.corba.se.spi.orb.ORBData ;
import com.sun.corba.se.spi.orb.ORBVersion ;
......@@ -135,6 +130,7 @@ public abstract class ORB extends com.sun.corba.se.org.omg.CORBA.ORB
public boolean shutdownDebugFlag = false;
public boolean giopDebugFlag = false;
public boolean invocationTimingDebugFlag = false ;
public boolean orbInitDebugFlag = false;
// SystemException log wrappers. Protected so that they can be used in
// subclasses.
......@@ -564,6 +560,24 @@ public abstract class ORB extends com.sun.corba.se.org.omg.CORBA.ORB
public abstract ThreadPoolManager getThreadPoolManager();
public abstract CopierManager getCopierManager() ;
/*
* This method is called to verify that a stringified IOR passed to
* an org.omg.CORBA.ORB::string_to_object method contains a valid and acceptable IOR type.
* If an ORB is configured with IOR type checking enabled,
* the ORB executes a IOR type registry lookup to
* validate that the class name extract from a type id in
* a stringified IOR is a known and accepted type.
* A CORBA {@code org.omg.CORBA.DATA_CONVERSION} exception will be thrown should the type check fail.
*
* @param iorClassName
* a string representing the class name corresponding to the type id of an IOR
* @throws org.omg.CORBA.DATA_CONVERSION
* exception with an indication that it is a "Bad stringified IOR", which is thrown
* when the type check fails.
*/
public abstract void validateIORClass(String iorClassName);
}
// End of file.
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册