提交 17fc9f84 编写于 作者: A asaha

Merge

/*
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -24,6 +24,7 @@
*/
package sun.rmi.transport;
import java.net.SocketPermission;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.dgc.DGC;
......@@ -33,8 +34,11 @@ import java.rmi.server.LogStream;
import java.rmi.server.ObjID;
import java.rmi.server.RemoteServer;
import java.rmi.server.ServerNotActiveException;
import java.security.AccessControlContext;
import java.security.AccessController;
import java.security.Permissions;
import java.security.PrivilegedAction;
import java.security.ProtectionDomain;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.HashMap;
......@@ -296,8 +300,19 @@ final class DGCImpl implements DGC {
Util.createProxy(DGCImpl.class,
new UnicastRef(ref), true);
disp.setSkeleton(dgc);
Target target =
new Target(dgc, disp, stub, dgcID, true);
Permissions perms = new Permissions();
perms.add(new SocketPermission("*", "accept,resolve"));
ProtectionDomain[] pd = { new ProtectionDomain(null, perms) };
AccessControlContext acceptAcc = new AccessControlContext(pd);
Target target = AccessController.doPrivileged(
new PrivilegedAction<Target>() {
public Target run() {
return new Target(dgc, disp, stub, dgcID, true);
}
}, acceptAcc);
ObjectTable.putTarget(target);
} catch (RemoteException e) {
throw new Error(
......
......@@ -36,39 +36,6 @@
extern "C" {
#endif
/**
* print a GetLastError message
*/
char *printError(char *msg) {
LPVOID lpMsgBuf = NULL;
static char retbuf[256];
if (msg != NULL) {
strncpy((char *)retbuf, msg, sizeof(retbuf));
}
if (!FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL ))
{
PrintDebugString(" %s: FormatMessage failed", msg);
} else {
PrintDebugString(" %s: %s", msg, (char *)lpMsgBuf);
}
if (lpMsgBuf != NULL) {
strncat((char *)retbuf, ": ", sizeof(retbuf) - strlen(retbuf) - 1);
strncat((char *)retbuf, (char *)lpMsgBuf, sizeof(retbuf) - strlen(retbuf) - 1);
}
return (char *)retbuf;
}
/**
* Send debugging info to the appropriate place
*/
......
......@@ -49,7 +49,6 @@
extern "C" {
#endif
char *printError(char *msg);
void PrintDebugString(char *msg, ...);
void PrintJavaDebugString(char *msg, ...);
void wPrintJavaDebugString(wchar_t *msg, ...);
......
......@@ -262,34 +262,6 @@ WinAccessBridge::WinAccessBridge(HINSTANCE hInstance) {
theWindowsAccessBridge = this;
isVMInstanceChainInUse = false;
// notify the user if new JVMs are found
/*
newJVMs = (char **)malloc(MAX_NEW_JVMS_FOUND);
for (int i = 0; i < MAX_NEW_JVMS_FOUND; i++) {
newJVMs[i] = (char *)malloc(SHORT_STRING_SIZE);
newJVMs[i][0] = 0;
}
BOOL newJ2SEFound = findNewJVMs(J2SE_REG_PATH, newJVMs);
BOOL newJ2REFound = TRUE; // findNewJVMs(J2RE_REG_PATH, newJVMs);
if (newJ2SEFound || newJ2REFound) {
int result = DialogBox(windowsInstance,
"FOUNDNEWJVMDIALOG",
NULL,
(DLGPROC)newJVMFoundDialogProc);
if (result < 0) {
printError("DialogBox failed");
}
PrintDebugString(" FOUNDNEWJVMDIALOG: result = %d", result);
ShowWindow((HWND)result, SW_SHOW);
}
*/
ShowWindow(theDialogWindow, SW_SHOW);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册