提交 9b2a1b6d 编写于 作者: M michaelm

Merge

......@@ -150,3 +150,4 @@ ec17fbe5b8fbc52da070eec43b4711d9354b2ab8 jdk8-b25
5aca406e87cb9144a9405be312dadd728a9c6fe2 jdk8-b26
c68342532e2e7deb3a25fc04ed3e4c142278f747 jdk8-b27
1e1d41daaded291ab3a370ca6a27f7325701978e jdk8-b28
c5b882dce0fe27e05dc64debc92b1fb9ebf880ec jdk8-b29
......@@ -64,7 +64,7 @@ ACTIVE_JSR_PKGS= \
javax.management.* \
javax.script \
javax.sql.* \
javax.tools \
javax.tools.* \
javax.xml.* \
org.w3c.* \
org.xml.sax
......@@ -218,6 +218,7 @@ CORE_PKGS = \
javax.swing.plaf.nimbus \
javax.swing.plaf.synth \
javax.tools \
javax.tools.annotation \
javax.transaction \
javax.transaction.xa \
javax.xml.parsers \
......
/*
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
* 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
......@@ -237,12 +237,5 @@ abstract class ChangeListenerMap<L extends EventListener> {
*
* @return a real listener
*/
public final L extract(L listener) {
while (listener instanceof EventListenerProxy) {
@SuppressWarnings("unchecked")
EventListenerProxy<L> proxy = (EventListenerProxy<L>) listener;
listener = proxy.getListener();
}
return listener;
}
public abstract L extract(L listener);
}
/*
* Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 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
......@@ -533,5 +533,15 @@ public class PropertyChangeSupport implements Serializable {
protected PropertyChangeListener newProxy(String name, PropertyChangeListener listener) {
return new PropertyChangeListenerProxy(name, listener);
}
/**
* {@inheritDoc}
*/
public final PropertyChangeListener extract(PropertyChangeListener listener) {
while (listener instanceof PropertyChangeListenerProxy) {
listener = ((PropertyChangeListenerProxy) listener).getListener();
}
return listener;
}
}
}
/*
* Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 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
......@@ -522,5 +522,15 @@ public class VetoableChangeSupport implements Serializable {
protected VetoableChangeListener newProxy(String name, VetoableChangeListener listener) {
return new VetoableChangeListenerProxy(name, listener);
}
/**
* {@inheritDoc}
*/
public final VetoableChangeListener extract(VetoableChangeListener listener) {
while (listener instanceof VetoableChangeListenerProxy) {
listener = ((VetoableChangeListenerProxy) listener).getListener();
}
return listener;
}
}
}
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 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
......@@ -42,7 +42,7 @@ import javax.management.StandardMBean;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import java.util.HashSet;
import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedAction;
......@@ -787,7 +787,7 @@ public class ManagementFactory {
getPlatformManagementInterfaces()
{
Set<Class<? extends PlatformManagedObject>> result =
new TreeSet<>();
new HashSet<>();
for (PlatformComponent component: PlatformComponent.values()) {
result.add(component.getMXBeanInterface());
}
......
......@@ -400,6 +400,8 @@ public class Manifest implements Cloneable {
public byte peek() throws IOException {
if (pos == count)
fill();
if (pos == count)
return -1; // nothing left in buffer
return buf[pos];
}
......
......@@ -792,7 +792,8 @@ public class SwingUtilities implements SwingConstants
* @return true if the left mouse button was active
*/
public static boolean isLeftMouseButton(MouseEvent anEvent) {
return (anEvent.getButton() == MouseEvent.BUTTON1);
return ((anEvent.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0 ||
anEvent.getButton() == MouseEvent.BUTTON1);
}
/**
......@@ -802,7 +803,8 @@ public class SwingUtilities implements SwingConstants
* @return true if the middle mouse button was active
*/
public static boolean isMiddleMouseButton(MouseEvent anEvent) {
return (anEvent.getButton() == MouseEvent.BUTTON2);
return ((anEvent.getModifiersEx() & InputEvent.BUTTON2_DOWN_MASK) != 0 ||
anEvent.getButton() == MouseEvent.BUTTON2);
}
/**
......@@ -812,7 +814,8 @@ public class SwingUtilities implements SwingConstants
* @return true if the right mouse button was active
*/
public static boolean isRightMouseButton(MouseEvent anEvent) {
return (anEvent.getButton() == MouseEvent.BUTTON3);
return ((anEvent.getModifiersEx() & InputEvent.BUTTON3_DOWN_MASK) != 0 ||
anEvent.getButton() == MouseEvent.BUTTON3);
}
/**
......
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
......@@ -40,12 +40,9 @@
package transparentruler;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsDevice;
import java.awt.*;
import java.awt.GraphicsDevice.WindowTranslucency;
import java.awt.GraphicsEnvironment;
import static java.awt.GraphicsDevice.WindowTranslucency.*;
import java.awt.event.ActionEvent;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
......@@ -79,16 +76,32 @@ public class Ruler extends JFrame {
private static final int F_HEIGHT = 400;
private static final int F_WIDTH = (int) (F_HEIGHT * 1.618 + 0.5);
private static void checkTranslucencyMode(WindowTranslucency arg) {
private static boolean translucencySupported;
private static boolean transparencySupported;
private static boolean checkTranslucencyMode(WindowTranslucency arg) {
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
if (!gd.isWindowTranslucencySupported(arg)) {
System.err.println("'" + arg
+ "' translucency mode isn't supported.");
System.exit(-1);
}
return gd.isWindowTranslucencySupported(arg);
}
public Shape buildShape() {
int h = getHeight();
int w = getWidth();
float a = (float) Math.hypot(h, w);
Float path = new java.awt.geom.Path2D.Float();
path.moveTo(0, 0);
path.lineTo(w, 0);
path.lineTo(0, h);
path.closePath();
path.moveTo(W, W);
path.lineTo(W, h - W * (a + h) / w);
path.lineTo(w - W * (a + w) / h, W);
path.closePath();
return path;
}
private final ComponentAdapter componentListener = new ComponentAdapter() {
/**
......@@ -97,36 +110,32 @@ public class Ruler extends JFrame {
*/
@Override
public void componentResized(ComponentEvent e) {
int h = getHeight();
int w = getWidth();
float a = (float) Math.hypot(h, w);
Float path = new java.awt.geom.Path2D.Float();
path.moveTo(0, 0);
path.lineTo(w, 0);
path.lineTo(0, h);
path.closePath();
path.moveTo(W, W);
path.lineTo(W, h - W * (a + h) / w);
path.lineTo(w - W * (a + w) / h, W);
path.closePath();
setShape(path);
// We do apply shape only if PERPIXEL_TRANSPARENT is supported
if (transparencySupported) {
setShape(buildShape());
}
}
};
private final Action exitAction = new AbstractAction("Exit") {
{
putValue(Action.MNEMONIC_KEY, KeyEvent.VK_X);
}
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
};
private final JPopupMenu jPopupMenu = new JPopupMenu();
{
jPopupMenu.add(new JMenuItem(exitAction));
}
/**
* Implements mouse-related behavior: window dragging and popup menu
* invocation
......@@ -157,6 +166,7 @@ public class Ruler extends JFrame {
}
}
};
/**
* Implements keyboard navigation. Arrows move by 5 pixels, Ctrl + arrows
* move by 50 pixels, Alt + arrows move by 1 pixel.
......@@ -201,10 +211,22 @@ public class Ruler extends JFrame {
@Override
protected void paintComponent(Graphics g) {
Graphics gg = g.create();
Graphics2D gg = (Graphics2D) g.create();
int w = getWidth();
int h = getHeight();
int hh = gg.getFontMetrics().getAscent();
// This is an approach to apply shape when PERPIXEL_TRANSPARENT
// isn't supported
if (!transparencySupported) {
gg.setBackground(new Color(0, 0, 0, 0));
gg.clearRect(0, 0, w, h);
gg.clip(buildShape());
gg.setBackground(Ruler.this.getBackground());
gg.clearRect(0, 0, w, h);
}
gg.setColor(FOREGROUND);
for (int x = 0; x < w * (h - 8) / h - 5; x += 5) {
boolean hi = x % 50 == 0;
......@@ -216,6 +238,7 @@ public class Ruler extends JFrame {
gg.drawString(number, x + 5 - ww / 2, 20 + hh);
}
}
gg.dispose();
}
});
......@@ -231,9 +254,17 @@ public class Ruler extends JFrame {
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
checkTranslucencyMode(WindowTranslucency.PERPIXEL_TRANSLUCENT);
checkTranslucencyMode(WindowTranslucency.PERPIXEL_TRANSPARENT);
translucencySupported = checkTranslucencyMode(PERPIXEL_TRANSLUCENT);
transparencySupported = checkTranslucencyMode(PERPIXEL_TRANSPARENT);
if (!translucencySupported) {
System.err.println("This application requires "
+ "'PERPIXEL_TRANSLUCENT' translucency mode to "
+ "be supported.");
System.exit(-1);
}
Ruler ruler = new Ruler();
ruler.setVisible(true);
......
/*
* Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 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
......@@ -96,9 +96,9 @@ getPathName(const char *dir, const char *name) {
/*
* Scans the specified directory and its subdirectories to find a
* zoneinfo file which has the same content as /etc/localtime on Linux
* or /usr/share/lib/zoneinfo/localtime (most likely a symbolic link)
* on Solaris given in 'buf'. Returns a zone ID if found, otherwise,
* NULL is returned.
* or /usr/share/lib/zoneinfo/localtime on Solaris given in 'buf'.
* If file is symbolic link, then the contents it points to are in buf.
* Returns a zone ID if found, otherwise, NULL is returned.
*/
static char *
findZoneinfoFile(char *buf, size_t size, const char *dir)
......@@ -280,21 +280,27 @@ getPlatformTimeZoneID()
tz = getZoneName(linkbuf);
if (tz != NULL) {
tz = strdup(tz);
return tz;
}
return tz;
}
/*
* If it's a regular file, we need to find out the same zoneinfo file
* that has been copied as /etc/localtime.
* If initial symbolic link resolution failed, we should treat target
* file as a regular file.
*/
if ((fd = open(DEFAULT_ZONEINFO_FILE, O_RDONLY)) == -1) {
return NULL;
}
if (fstat(fd, &statbuf) == -1) {
(void) close(fd);
return NULL;
}
size = (size_t) statbuf.st_size;
buf = (char *) malloc(size);
if (buf == NULL) {
return NULL;
}
if ((fd = open(DEFAULT_ZONEINFO_FILE, O_RDONLY)) == -1) {
free((void *) buf);
(void) close(fd);
return NULL;
}
......
......@@ -36,6 +36,7 @@
#include <sys/socket.h>
#include "nio_util.h"
#include <limits.h>
JNIEXPORT jint JNICALL
Java_sun_nio_ch_DatagramDispatcher_read0(JNIEnv *env, jclass clazz,
......@@ -60,23 +61,14 @@ Java_sun_nio_ch_DatagramDispatcher_readv0(JNIEnv *env, jclass clazz,
ssize_t result = 0;
struct iovec *iov = (struct iovec *)jlong_to_ptr(address);
struct msghdr m;
if (len > 16) {
len = 16;
if (len > IOV_MAX) {
len = IOV_MAX;
}
m.msg_name = NULL;
m.msg_namelen = 0;
// initialize the message
memset(&m, 0, sizeof(m));
m.msg_iov = iov;
m.msg_iovlen = len;
#ifdef __solaris__
m.msg_accrights = NULL;
m.msg_accrightslen = 0;
#endif
#if defined(__linux__) || defined(_ALLBSD_SOURCE)
m.msg_control = NULL;
m.msg_controllen = 0;
#endif
result = recvmsg(fd, &m, 0);
if (result < 0 && errno == ECONNREFUSED) {
......@@ -108,23 +100,14 @@ Java_sun_nio_ch_DatagramDispatcher_writev0(JNIEnv *env, jclass clazz,
struct iovec *iov = (struct iovec *)jlong_to_ptr(address);
struct msghdr m;
ssize_t result = 0;
if (len > 16) {
len = 16;
if (len > IOV_MAX) {
len = IOV_MAX;
}
m.msg_name = NULL;
m.msg_namelen = 0;
// initialize the message
memset(&m, 0, sizeof(m));
m.msg_iov = iov;
m.msg_iovlen = len;
#ifdef __solaris__
m.msg_accrights = NULL;
m.msg_accrightslen = 0;
#endif
#if defined(__linux__) || defined(_ALLBSD_SOURCE)
m.msg_control = NULL;
m.msg_controllen = 0;
#endif
result = sendmsg(fd, &m, 0);
if (result < 0 && errno == ECONNREFUSED) {
......
......@@ -212,7 +212,7 @@ java/io/File/MaxPathLength.java windows-all
# 7076644
java/io/File/Basic.java windows-all
# Test needs AWT window server, does not work headless
# 7145435 - Test needs AWT window server, does not work headless
java/io/Serializable/resolveClass/deserializeButton/run.sh macosx-all
############################################################################
......@@ -225,9 +225,6 @@ java/nio/channels/Selector/Wakeup.java windows-all
# 7052549
java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java windows-all
# 6963118
java/nio/channels/Selector/Wakeup.java windows-all
# 7133499, 7133497
java/nio/channels/AsyncCloseAndInterrupt.java macosx-all
java/nio/channels/AsynchronousFileChannel/Lock.java macosx-all
......@@ -259,9 +256,6 @@ java/rmi/registry/readTest/readTest.sh windows-all
# jdk_security
# 7145024
sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java solaris-all
# 7147060
com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java generic-all
......@@ -305,9 +299,6 @@ sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java generic-all
# 7079203 sun/security/tools/keytool/printssl.sh fails on solaris with timeout
sun/security/tools/keytool/printssl.sh solaris-all
# 7081817
sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java generic-all
# 7041639, Solaris DSA keypair generation bug (Note: jdk_util also affected)
java/security/KeyPairGenerator/SolarisShortDSA.java solaris-all
sun/security/tools/jarsigner/onlymanifest.sh solaris-all
......
/*
* 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 7148143
* @summary Tests ClassCastException for the PropertyChangeSupport class
* @author Sergey Malenkov
*/
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.EventListener;
import java.util.EventListenerProxy;
public class Test7148143 {
private static class CustomProxy
extends EventListenerProxy<EventListener>
implements PropertyChangeListener {
public CustomProxy() {
super(new EventListener() {
});
}
public void propertyChange(PropertyChangeEvent event) {
}
}
public static void main(String[] args) {
PropertyChangeListener listener = new CustomProxy();
PropertyChangeSupport support = new PropertyChangeSupport(listener);
support.addPropertyChangeListener(listener);
support.addPropertyChangeListener("foo", listener); // cast class exception
}
}
/*
* 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 7148143
* @summary Tests ClassCastException for the VetoableChangeSupport class
* @author Sergey Malenkov
*/
import java.beans.PropertyChangeEvent;
import java.beans.VetoableChangeListener;
import java.beans.VetoableChangeSupport;
import java.util.EventListener;
import java.util.EventListenerProxy;
public class Test7148143 {
private static class CustomProxy
extends EventListenerProxy<EventListener>
implements VetoableChangeListener {
public CustomProxy() {
super(new EventListener() {
});
}
public void vetoableChange(PropertyChangeEvent event) {
}
}
public static void main(String[] args) {
VetoableChangeListener listener = new CustomProxy();
VetoableChangeSupport support = new VetoableChangeSupport(listener);
support.addVetoableChangeListener(listener);
support.addVetoableChangeListener("foo", listener); // cast class exception
}
}
<!---->
<applet code=Applet.class width=100 height=100></applet>
......@@ -22,7 +22,6 @@
*/
/* @test
* @clean A B Container ReplacerObjectOutputStream
* @summary Verify that ClassCastException is thrown when deserializing
* an object and one of its object fields is incompatibly replaced
* by either replaceObject/resolveObject.
......
......@@ -22,7 +22,6 @@
*/
/* @test
* @clean A SubstituteObjectOutputStream SubstituteObjectInputStream
* @bug 4099013
* @summary Enable substitution of String and Array by ObjectStreams.
*/
......
......@@ -23,7 +23,6 @@
/* @test
* @bug 4065313
* @clean A ReplaceWithNull MyObjectOutputStream
* @summary Ensure that it is okay to replace an object with null.
*/
import java.io.*;
......
......@@ -22,7 +22,6 @@
*/
/* @test
* @clean A
* @bug 4146453
* @summary Test that regrow of object/handle table of ObjectOutputStream works.
*/
......
/*
* 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 7074616
* @summary Basic unit test of the
* ManagementFactory.getPlatformManagementInterfaces() method
* @author Frederic Parain
*
* @run main GetPlatformManagementInterfaces
*/
import java.lang.management.*;
import java.io.IOException;
import java.util.*;
import javax.management.*;
import static java.lang.management.ManagementFactory.*;
public class GetPlatformManagementInterfaces {
private static enum ManagementInterfaces {
CLASS_LOADING_MXBEAN(ClassLoadingMXBean.class),
COMPILATION_MXBEAN(CompilationMXBean.class),
MEMORY_MXBEAN(MemoryMXBean.class),
OPERATING_SYSTEM_MXBEAN(OperatingSystemMXBean.class),
RUNTIME_MXBEAN(RuntimeMXBean.class),
THREAD_MXBEAN(ThreadMXBean.class),
GARBAGE_COLLECTOR_MXBEAN(GarbageCollectorMXBean.class),
MEMORY_MANAGER_MXBEAN(MemoryManagerMXBean.class),
MEMORY_POOL_MXBEAN(MemoryPoolMXBean.class);
private final Class<? extends PlatformManagedObject> managementInterface;
private ManagementInterfaces(Class<? extends PlatformManagedObject> minterface) {
managementInterface = minterface;
}
public Class<? extends PlatformManagedObject> getManagementInterface() {
return managementInterface;
}
};
public static void main(String[] args) {
Set<Class<? extends PlatformManagedObject>> interfaces =
ManagementFactory.getPlatformManagementInterfaces();
for(Class<? extends PlatformManagedObject> pom : interfaces) {
List<? extends PlatformManagedObject> list =
ManagementFactory.getPlatformMXBeans(pom);
}
for(ManagementInterfaces mi : ManagementInterfaces.values()) {
if(!interfaces.contains(mi.getManagementInterface())) {
throw new RuntimeException(mi.getManagementInterface() + " not in ManagementInterfaces set");
}
}
}
}
......@@ -22,13 +22,14 @@
*/
import java.net.*;
import java.io.*;
import java.util.HashMap;
public class SocksServer extends Thread {
// Some useful SOCKS constant
static final int PROTO_VERS4 = 4;
static final int PROTO_VERS4 = 4;
static final int PROTO_VERS = 5;
static final int DEFAULT_PORT = 1080;
static final int DEFAULT_PORT = 1080;
static final int NO_AUTH = 0;
static final int GSSAPI = 1;
......@@ -36,28 +37,28 @@ public class SocksServer extends Thread {
static final int NO_METHODS = -1;
static final int CONNECT = 1;
static final int BIND = 2;
static final int BIND = 2;
static final int UDP_ASSOC = 3;
static final int IPV4 = 1;
static final int DOMAIN_NAME = 3;
static final int IPV6 = 4;
static final int IPV4 = 1;
static final int DOMAIN_NAME = 3;
static final int IPV6 = 4;
static final int REQUEST_OK = 0;
static final int GENERAL_FAILURE = 1;
static final int NOT_ALLOWED = 2;
static final int NOT_ALLOWED = 2;
static final int NET_UNREACHABLE = 3;
static final int HOST_UNREACHABLE = 4;
static final int CONN_REFUSED = 5;
static final int TTL_EXPIRED = 6;
static final int CONN_REFUSED = 5;
static final int TTL_EXPIRED = 6;
static final int CMD_NOT_SUPPORTED = 7;
static final int ADDR_TYPE_NOT_SUP = 8;
private int port;
private ServerSocket server;
private boolean useV4 = false;
private java.util.Hashtable users = new java.util.Hashtable();
private boolean done = false;
private HashMap<String,String> users = new HashMap<>();
private volatile boolean done = false;
// Inner class to handle protocol with client
// This is the bulk of the work (protocol handler)
class ClientHandler extends Thread {
......@@ -136,7 +137,7 @@ public class SocksServer extends Thread {
System.err.println("User: '" + uname);
System.err.println("PSWD: '" + password);
if (users.containsKey(uname)) {
String p1 = (String) users.get(uname);
String p1 = users.get(uname);
System.err.println("p1 = " + p1);
if (p1.equals(password)) {
out.write(PROTO_VERS);
......@@ -492,7 +493,12 @@ public class SocksServer extends Thread {
public SocksServer(int port) throws IOException {
this.port = port;
server = new ServerSocket();
server.bind(new InetSocketAddress(port));
if (port == 0) {
server.bind(null);
this.port = server.getLocalPort();
} else {
server.bind(new InetSocketAddress(port));
}
}
public SocksServer() throws IOException {
......@@ -503,8 +509,13 @@ public class SocksServer extends Thread {
users.put(user, passwd);
}
public synchronized void terminate() {
public int getPort() {
return port;
}
public void terminate() {
done = true;
try { server.close(); } catch (IOException unused) {}
}
public void run() {
......
......@@ -26,23 +26,22 @@
* @bug 4727547
* @summary SocksSocketImpl throws NullPointerException
* @build SocksServer
* @run main SocksV4Test
*/
import java.net.*;
import java.io.*;
public class SocksV4Test {
public static void main(String[] args) throws IOException {
// Create a SOCKS V4 proxy on port 8888
SocksServer srvr = new SocksServer(8888, true);
public static void main(String[] args) throws Exception {
// Create a SOCKS V4 proxy
SocksServer srvr = new SocksServer(0, true);
srvr.start();
System.setProperty("socksProxyHost", "localhost");
System.setProperty("socksProxyPort", "8888");
Proxy sp = new Proxy(Proxy.Type.SOCKS,
new InetSocketAddress("localhost", srvr.getPort()));
// Let's create an unresolved address
InetSocketAddress ad = new InetSocketAddress("doesnt.exist.name", 1234);
Socket s = new Socket();
try {
s.connect(ad,10000);
try (Socket s = new Socket(sp)) {
s.connect(ad, 10000);
} catch (UnknownHostException ex) {
// OK, that's what we expected
} catch (NullPointerException npe) {
......@@ -50,7 +49,6 @@ public class SocksV4Test {
throw new RuntimeException("Got a NUllPointerException");
} finally {
srvr.terminate();
srvr.interrupt();
}
}
}
......@@ -28,6 +28,7 @@
* @author Brandon Passanisi
* @library ..
* @build CustomOptions PassThroughFileSystem
* @run main CustomOptions
*/
import java.io.IOException;
......
......@@ -25,6 +25,7 @@
* @bug 6850113
* @summary Verify the return value of digit() for some digits.
* @compile -XDignore.symbol.file=true Bug6850113.java
* @run main Bug6850113
*/
import sun.text.normalizer.UCharacter;
......
/*
* 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 7148584
* @summary Jar tools fails to generate manifest correctly when boundary condition hit
* @compile -XDignore.symbol.file=true CreateManifest.java
* @run main CreateManifest
*/
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.jar.*;
public class CreateManifest {
public static void main(String arg[]) throws Exception {
String jarFileName = "test.jar";
String ManifestName = "MANIFEST.MF";
// create the MANIFEST.MF file
Files.write(Paths.get(ManifestName), FILE_CONTENTS.getBytes());
String [] args = new String [] { "cvfm", jarFileName, ManifestName};
sun.tools.jar.Main jartool =
new sun.tools.jar.Main(System.out, System.err, "jar");
jartool.run(args);
try (JarFile jf = new JarFile(jarFileName)) {
Manifest m = jf.getManifest();
String result = m.getMainAttributes().getValue("Class-path");
if (result == null)
throw new RuntimeException("Failed to add Class-path attribute to manifest");
} finally {
Files.deleteIfExists(Paths.get(jarFileName));
Files.deleteIfExists(Paths.get(ManifestName));
}
}
private static final String FILE_CONTENTS =
"Class-path: \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-testconsole-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-testconsole-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-bmp-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-bmp-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-host-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-host-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agent-patching-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agent-patching-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-connector-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-connector-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-gccompliance-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mos-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mos-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-security-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-security-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-topology-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-topology-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-event-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-event-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-event-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mext-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mext-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ecm-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ecm-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ecm-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-event-console-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-event-console-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-event-rules-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-event-rules-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-gccompliance-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ip-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ip-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-probanalysis-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-probanalysis-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-swlib-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-installmediacomponent-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-uifwk-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-uifwk-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-gccompliance-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-bmp-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-host-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agent-patching-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-connector-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mos-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-event-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-discovery-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-gccompliance-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ip-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-probanalysis-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-testconsole-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-uifwk-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mext-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-security-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agentpush-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agentpush-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agentpush-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-selfupdate-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-selfupdate-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-selfupdate-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agentpush-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-groups-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-groups-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-groups-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-topology-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-jobs-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-jobs-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-jobs-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-templ-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-templ-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-templ-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-metricalertserrors-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-metricalertserrors-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-metricalertserrors-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-metrics-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-metrics-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-metrics-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-tc-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-tc-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-tc-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agentmgmt-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agentmgmt-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agentmgmt-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-gcharvester-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-gcharvester-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-gcharvester-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-patching-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-patching-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-patching-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ohinv-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ohinv-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ohinv-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ohagent-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ohcoherence-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ohjrockit-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-extensibility-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mpcustom-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-selfmonitor-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ocheck-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-udmmig-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-multioms-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-postupgrade-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-postupgrade-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-postupgrade-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ppc-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mextjmx-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mextjmx-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-mextjmx-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ocheck-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-services-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-services-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-services-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-eventmobile-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-uifwkmobile-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-logmgmt-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-omsproperties-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-ohel-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-agentupgrade-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-lm-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-lm-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-core-lm-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-regiontest-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-uipatterns-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-uipatterns-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-uipatterns-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-uielements-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-uielements-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-sandbox-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-sandbox-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-sdkcore-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-sdkcore-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-sdkcore-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-core-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-core-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-samples-core-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-adfext-bc-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-aslm-services-public-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-avail-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-charge-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-config-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-connect-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-db-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-discovery-public-entity.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-discovery-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-event-console-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-event-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-event-rules-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-extens-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-filebrowser-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-filebrowser-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-gccompliance-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-gccompliance-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-gccompliance-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ip-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-job-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-me-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-metric-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-public-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-paf-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-security-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-swlib-public-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-swlib-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-templ-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwk-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwk-public-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwk-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-bmp-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-bmp-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-bmp-public-entity.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-agent-patching-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-agent-patching-public-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mext-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mext-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mext-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-testconsole-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-testconsole-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-testconsole-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mos-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mos-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-mos-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-topology-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-topology-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-regions-uimodel.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-regions-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-event-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwk-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-adfext-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-agentpatching-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-avail-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-bmp-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-charge-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-config-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-connect-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-db-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-discovery-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ecm-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-extens-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-gccompliance-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ip-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-job-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-me-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-metric-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-paf-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-regions-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-security-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-swlib-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-templ-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-groups-public-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-groups-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-topology-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-resources-public-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-clonecomponents-public-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-clonecomponents-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-clonecomponents-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-clonecomponents-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-patching-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-patching-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ohinv-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ohinv-test.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ppc-public-pojo.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-ppc-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-agentpush-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-uifwkmobile-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-lm-public-model.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-lm-public-ui.jar \n" +
" /ade/dtsao_re/oracle/emcore//lib/em-sdkcore-lm-test.jar \n";
}
......@@ -26,6 +26,7 @@
* @bug 4241676
* @summary getContinuationDirContext() should set CPE environment property.
* @build DummyObjectFactory DummyContext
* @run main/othervm GetContDirCtx
*/
import java.util.Hashtable;
......
/*
* 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 4524490
* @summary Tests if in JFileChooser, ALT+L does not bring focus to 'Files' selection list in Motif LAF
* @library ../../regtesthelpers
* @build Util
* @author Konstantin Eremin
* @run main bug4524490
*/
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import javax.swing.*;
import sun.awt.OSInfo;
import sun.awt.SunToolkit;
public class bug4524490 {
private static JFileChooser fileChooser;
public static void main(String[] args) throws Exception {
SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
Robot robot = new Robot();
robot.setAutoDelay(50);
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
SwingUtilities.invokeLater(new Runnable() {
public void run() {
fileChooser = new JFileChooser();
fileChooser.showOpenDialog(null);
}
});
toolkit.realSync();
if (OSInfo.OSType.MACOSX.equals(OSInfo.getOSType())) {
Util.hitKeys(robot, KeyEvent.VK_CONTROL, KeyEvent.VK_ALT, KeyEvent.VK_L);
} else {
Util.hitKeys(robot, KeyEvent.VK_ALT, KeyEvent.VK_L);
}
checkFocus();
}
private static void checkFocus() throws Exception {
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
JList list = (JList) Util.findSubComponent(fileChooser, "javax.swing.JList");
System.out.println("list focus: " + list.isFocusOwner());
if (!list.isFocusOwner()) {
throw new RuntimeException("Focus is not transfered to the Folders list.");
}
}
});
}
}
/*
* 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 6209975
* @summary regression: JMenuItem icons overimposed on JMenuItem labels under Metal LAF
* @library ../../regtesthelpers
* @build Util
* @author Alexander Zuev
* @run main bug6209975
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.InputEvent;
import sun.awt.SunToolkit;
public class bug6209975 {
private static final ReturnObject RO1 = new ReturnObject();
private static final ReturnObject RO2 = new ReturnObject();
private static JMenu menu;
private static JButton button;
public static void main(String[] args) throws Exception {
SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
Robot robot = new Robot();
robot.setAutoDelay(500);
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
toolkit.realSync();
Point clickPoint = getButtonClickPoint();
robot.mouseMove(clickPoint.x, clickPoint.y);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
toolkit.realSync();
clickPoint = getMenuClickPoint();
robot.mouseMove(clickPoint.x, clickPoint.y);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
toolkit.realSync();
if (RO1.itsValue <= RO2.itsValue) {
throw new RuntimeException("Offset if the second icon is invalid.");
}
}
private static Point getButtonClickPoint() throws Exception {
final Point[] result = new Point[1];
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
Point p = button.getLocationOnScreen();
Dimension size = button.getSize();
result[0] = new Point(p.x + size.width / 2, p.y + size.height / 2);
}
});
return result[0];
}
private static Point getMenuClickPoint() throws Exception {
final Point[] result = new Point[1];
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
Point p = menu.getLocationOnScreen();
Dimension size = menu.getSize();
result[0] = new Point(p.x + size.width / 2, p.y + size.height / 2);
}
});
return result[0];
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("Test6209975");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
frame.setLayout(new BorderLayout());
button = new JButton("Focus holder");
frame.add(button);
JMenuBar mb = new JMenuBar();
menu = new JMenu("File");
JMenuItem item;
item = new JMenuItem("Just a menu item");
item.setIcon(new MyIcon(RO1));
item.setHorizontalTextPosition(SwingConstants.LEADING);
menu.add(item);
item = new JMenuItem("Menu Item with another icon");
item.setIcon(new MyIcon(RO2));
item.setHorizontalTextPosition(SwingConstants.TRAILING);
menu.add(item);
mb.add(menu);
frame.setJMenuBar(mb);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocation(400, 300);
frame.setVisible(true);
}
public static class ReturnObject {
public volatile int itsValue;
}
public static class MyIcon implements Icon {
ReturnObject thisObject = null;
public MyIcon(ReturnObject ro) {
super();
thisObject = ro;
}
public void paintIcon(Component c, Graphics g, int x, int y) {
Color color = g.getColor();
g.setColor(Color.BLACK);
g.fillRect(x, y, 10, 10);
g.setColor(color);
thisObject.itsValue = x;
}
public int getIconWidth() {
return 10;
}
public int getIconHeight() {
return 10;
}
}
}
/*
* 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 7146377
@summary closed/javax/swing/DataTransfer/4876520/bug4876520.java failed since b08 in jdk 8
@author Pavel Porvatov
*/
import sun.awt.SunToolkit;
import javax.swing.*;
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class bug7146377 {
private static JLabel label;
private static JFrame frame;
private static volatile Point point;
public static void main(String[] args) throws Exception {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
frame = new JFrame();
label = new JLabel("A label");
label.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
checkEvent(e);
}
@Override
public void mousePressed(MouseEvent e) {
checkEvent(e);
}
@Override
public void mouseReleased(MouseEvent e) {
checkEvent(e);
}
@Override
public void mouseEntered(MouseEvent e) {
checkEvent(e);
}
@Override
public void mouseExited(MouseEvent e) {
checkEvent(e);
}
});
frame.add(label);
frame.setSize(200, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
toolkit.realSync();
// On Linux platforms realSync doesn't guaranties setSize completion
Thread.sleep(1000);
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
point = label.getLocationOnScreen();
}
});
Robot robot = new Robot();
robot.setAutoDelay(200);
// Move mouse
for (int i = 0; i < 20; i++) {
robot.mouseMove(point.x + i, point.y + i);
}
for (int button : new int[]{InputEvent.BUTTON1_MASK, InputEvent.BUTTON2_MASK, InputEvent.BUTTON3_MASK}) {
robot.mouseMove(point.x, point.y);
// Mouse Drag
robot.mousePress(button);
for (int i = 0; i < 20; i++) {
robot.mouseMove(point.x + i, point.y + i);
}
robot.mouseRelease(button);
}
toolkit.realSync();
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
frame.dispose();
}
});
System.out.println("Test passed");
}
private static void checkEvent(MouseEvent e) {
String eventAsStr = eventToString(e);
System.out.println("Checking event " + eventAsStr);
check("isLeftMouseButton", SwingUtilities.isLeftMouseButton(e), oldIsLeftMouseButton(e), eventAsStr);
check("isRightMouseButton", SwingUtilities.isRightMouseButton(e), oldIsRightMouseButton(e), eventAsStr);
check("isMiddleMouseButton", SwingUtilities.isMiddleMouseButton(e), oldIsMiddleMouseButton(e), eventAsStr);
}
private static void check(String methodName, boolean newValue, boolean oldValue, String eventAsStr) {
if (newValue != oldValue) {
throw new RuntimeException("Regression on " + methodName + ", newValue = " + newValue +
", oldValue = " + oldValue + ", e = " + eventAsStr);
}
}
private static String eventToString(MouseEvent e) {
StringBuilder result = new StringBuilder();
switch (e.getID()) {
case MouseEvent.MOUSE_PRESSED:
result.append("MOUSE_PRESSED");
break;
case MouseEvent.MOUSE_RELEASED:
result.append("MOUSE_RELEASED");
break;
case MouseEvent.MOUSE_CLICKED:
result.append("MOUSE_CLICKED");
break;
case MouseEvent.MOUSE_ENTERED:
result.append("MOUSE_ENTERED");
break;
case MouseEvent.MOUSE_EXITED:
result.append("MOUSE_EXITED");
break;
case MouseEvent.MOUSE_MOVED:
result.append("MOUSE_MOVED");
break;
case MouseEvent.MOUSE_DRAGGED:
result.append("MOUSE_DRAGGED");
break;
case MouseEvent.MOUSE_WHEEL:
result.append("MOUSE_WHEEL");
break;
default:
result.append("unknown type");
}
result.append(", modifiers = " + MouseEvent.getMouseModifiersText(e.getModifiers()));
result.append(", modifiersEx = " + MouseEvent.getMouseModifiersText(e.getModifiersEx()));
result.append(", button = " + e.getButton());
return result.toString();
}
// Original implementation of SwingUtilities.isLeftMouseButton
private static boolean oldIsLeftMouseButton(MouseEvent e) {
return ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0);
}
// Original implementation of SwingUtilities.isMiddleMouseButton
private static boolean oldIsMiddleMouseButton(MouseEvent e) {
return ((e.getModifiers() & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK);
}
// Original implementation of SwingUtilities.isRightMouseButton
private static boolean oldIsRightMouseButton(MouseEvent e) {
return ((e.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK);
}
}
......@@ -29,6 +29,7 @@
# @summary Ensure that if a cleaner throws an exception then the VM exits
#
# @build ExitOnThrow
# @run shell exitOnThrow.sh
# Command-line usage: sh exitOnThrow.sh /path/to/build
......
......@@ -26,6 +26,7 @@
* @bug 6843578
* @summary Test IBM DB charsets
* @build IBM930_OLD IBM933_OLD IBM935_OLD IBM937_OLD IBM939_OLD IBM942_OLD IBM943_OLD IBM948_OLD IBM949_OLD IBM950_OLD IBM970_OLD IBM942C_OLD IBM943C_OLD IBM949C_OLD IBM1381_OLD IBM1383_OLD EUC_CN_OLD EUC_KR_OLD GBK_OLD Johab_OLD MS932_OLD MS936_OLD MS949_OLD MS950_OLD
* @run main TestIBMDB
*/
import java.nio.charset.*;
......
/*
* Copyright (c) 2009, 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 1234567
* @summary Test updated X11 charsets
* @build X11GB2312_OLD X11GBK_OLD X11KSC5601_OLD
*/
import java.nio.charset.*;
import java.nio.*;
import java.util.*;
public class TestX11CS {
static char[] decode(byte[] bb, Charset cs)
throws Exception {
CharsetDecoder dec = cs.newDecoder();
ByteBuffer bbf = ByteBuffer.wrap(bb);
CharBuffer cbf = CharBuffer.allocate(bb.length);
CoderResult cr = dec.decode(bbf, cbf, true);
if (cr != CoderResult.UNDERFLOW) {
System.out.println("DEC-----------------");
int pos = bbf.position();
System.out.printf(" cr=%s, bbf.pos=%d, bb[pos]=%x,%x,%x,%x%n",
cr.toString(), pos,
bb[pos++]&0xff, bb[pos++]&0xff,bb[pos++]&0xff, bb[pos++]&0xff);
throw new RuntimeException("Decoding err: " + cs.name());
}
char[] cc = new char[cbf.position()];
cbf.flip(); cbf.get(cc);
return cc;
}
static byte[] encode(char[] cc, Charset cs)
throws Exception {
ByteBuffer bbf = ByteBuffer.allocate(cc.length * 4);
CharBuffer cbf = CharBuffer.wrap(cc);
CharsetEncoder enc = cs.newEncoder();
CoderResult cr = enc.encode(cbf, bbf, true);
if (cr != CoderResult.UNDERFLOW) {
System.out.println("ENC-----------------");
int pos = cbf.position();
System.out.printf(" cr=%s, cbf.pos=%d, cc[pos]=%x%n",
cr.toString(), pos, cc[pos]&0xffff);
throw new RuntimeException("Encoding err: " + cs.name());
}
byte[] bb = new byte[bbf.position()];
bbf.flip(); bbf.get(bb);
return bb;
}
static char[] getChars(Charset newCS, Charset oldCS) {
CharsetEncoder enc = oldCS.newEncoder();
CharsetEncoder encNew = newCS.newEncoder();
char[] cc = new char[0x10000];
int pos = 0;
int i = 0;
while (i < 0x10000) {
if (enc.canEncode((char)i) != encNew.canEncode((char)i)) {
System.out.printf(" Err i=%x%n", i);
//throw new RuntimeException("canEncode() err!");
}
if (enc.canEncode((char)i)) {
cc[pos++] = (char)i;
}
i++;
}
return Arrays.copyOf(cc, pos);
}
static void compare(Charset newCS, Charset oldCS) throws Exception {
System.out.printf(" Diff <%s> <%s>...%n", newCS.name(), oldCS.name());
char[] cc = getChars(newCS, oldCS);
byte[] bb1 = encode(cc, newCS);
byte[] bb2 = encode(cc, oldCS);
if (!Arrays.equals(bb1, bb2)) {
System.out.printf(" encoding failed!%n");
}
char[] cc1 = decode(bb1, newCS);
char[] cc2 = decode(bb1, oldCS);
if (!Arrays.equals(cc1, cc2)) {
for (int i = 0; i < cc1.length; i++) {
if (cc1[i] != cc2[i]) {
System.out.printf("i=%d, cc1=%x cc2=%x, bb=<%x%x>%n",
i,
cc1[i]&0xffff, cc2[i]&0xffff,
bb1[i*2]&0xff, bb1[i*2+1]&0xff);
}
}
System.out.printf(" decoding failed%n");
}
}
public static void main(String[] args) throws Exception {
compare(new sun.awt.motif.X11GBK(),
new X11GBK_OLD());
compare(new sun.awt.motif.X11GB2312(),
new X11GB2312_OLD());
compare(new sun.awt.motif.X11KSC5601(),
new X11KSC5601_OLD());
}
}
......@@ -27,6 +27,7 @@
* @compile JavaxSSLContextImpl.java ComSSLContextImpl.java
* JavaxTrustManagerFactoryImpl.java ComTrustManagerFactoryImpl.java
* JavaxKeyManagerFactoryImpl.java ComKeyManagerFactoryImpl.java
* @run main ProviderTest
* @summary brokenness in the com.sun.net.ssl.SSLSecurity wrappers
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册