OpenJDK / jdk7u / jdk7u / jdk
changeset 6663:ff9410fce108
8011157: Improve CORBA portablility
Summary: fix also reviewed by Alexander Fomin
Reviewed-by: alanb, coffeys, skoivu
author | msheppar |
---|---|
date | Fri, 14 Jun 2013 17:28:36 +0100 |
parents | 7c6cf3cf585f |
children | e6e9f510b6f2 |
files | make/com/sun/jmx/Makefile src/share/classes/javax/management/modelmbean/RequiredModelMBean.java src/share/classes/javax/management/remote/rmi/RMIConnector.java |
diffstat | 3 files changed, 34 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/make/com/sun/jmx/Makefile Thu Jun 13 12:02:15 2013 -0700 +++ b/make/com/sun/jmx/Makefile Fri Jun 14 17:28:36 2013 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -130,11 +130,13 @@ $(RMIC) -classpath "$(CLASSDESTDIR)" \ -d $(CLASSDESTDIR) \ -iiop -v1.2 \ + -emitPermissionCheck \ $(subst /,.,$(<:$(CLASSDESTDIR)/%.class=%)) $(RMIC) $(HOTSPOT_INTERPRETER_FLAG) -classpath "$(CLASSDESTDIR)" \ -d $(CLASSDESTDIR) \ -iiop -v1.2 \ -standardPackage \ + -emitPermissionCheck \ $(subst /,.,$(<:$(CLASSDESTDIR)/%.class=%)) @$(java-vm-cleanup)
--- a/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Thu Jun 13 12:02:15 2013 -0700 +++ b/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java Fri Jun 14 17:28:36 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -298,11 +298,15 @@ RequiredModelMBean.class.getName(), "setModelMBeanInfo(ModelMBeanInfo)", "Setting ModelMBeanInfo to " + printModelMBeanInfo(mbi)); + int noOfNotifications = 0; + if (mbi.getNotifications() != null) { + noOfNotifications = mbi.getNotifications().length; + } MODELMBEAN_LOGGER.logp(Level.FINER, RequiredModelMBean.class.getName(), "setModelMBeanInfo(ModelMBeanInfo)", "ModelMBeanInfo notifications has " + - (mbi.getNotifications()).length + " elements"); + noOfNotifications + " elements"); } modelMBeanInfo = (ModelMBeanInfo)mbi.clone(); @@ -2997,4 +3001,4 @@ Void.class.getName() }; } -} \ No newline at end of file +}
--- a/src/share/classes/javax/management/remote/rmi/RMIConnector.java Thu Jun 13 12:02:15 2013 -0700 +++ b/src/share/classes/javax/management/remote/rmi/RMIConnector.java Fri Jun 14 17:28:36 2013 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,6 +61,7 @@ import java.security.AccessController; import java.security.PrivilegedAction; import java.security.PrivilegedExceptionAction; +import java.security.PrivilegedActionException; import java.security.ProtectionDomain; import java.util.Arrays; import java.util.Collections; @@ -128,7 +129,6 @@ Map<String, ?> environment) { if (rmiServer == null && address == null) throw new IllegalArgumentException("rmiServer and jmxServiceURL both null"); - initTransients(); this.rmiServer = rmiServer; @@ -239,10 +239,21 @@ //-------------------------------------------------------------------- // implements JMXConnector interface //-------------------------------------------------------------------- + + /** + * @throws IOException if the connection could not be made because of a + * communication problem, or in the case of the {@code iiop} protocol, + * that RMI/IIOP is not supported + */ public void connect() throws IOException { connect(null); } + /** + * @throws IOException if the connection could not be made because of a + * communication problem, or in the case of the {@code iiop} protocol, + * that RMI/IIOP is not supported + */ public synchronized void connect(Map<String,?> environment) throws IOException { final boolean tracing = logger.traceOn(); @@ -2359,13 +2370,21 @@ } } - private static RMIConnection shadowIiopStub(Object stub) + private static RMIConnection shadowIiopStub(Object stub) throws InstantiationException, IllegalAccessException { - Object proxyStub = proxyStubClass.newInstance(); + Object proxyStub = null; + try { + proxyStub = AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() { + public Object run() throws Exception { + return proxyStubClass.newInstance(); + } + }); + } catch (PrivilegedActionException e) { + throw new InternalError(); + } IIOPHelper.setDelegate(proxyStub, IIOPHelper.getDelegate(stub)); return (RMIConnection) proxyStub; } - private static RMIConnection getConnection(RMIServer server, Object credentials, boolean checkStub)