--- a/jdk/make/common/shared/Sanity.gmk Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/make/common/shared/Sanity.gmk Wed Mar 21 13:38:55 2012 -0700
@@ -348,7 +348,13 @@
" Try setting LANG to 'C'. \n" \
"" >> $(WARNING_FILE) ; \
fi
+ifeq ($(PLATFORM), macosx)
+ @if [ "$(LANG)" = "" ]; then \
+ $(ECHO) "ERROR: LANG must be set on Mac OS X. Recommended value is \"C\"" >> $(ERROR_FILE) ; \
+ fi
endif
+endif
+
######################################################
# Check the Windows cygwin version
--- a/jdk/make/docs/CORE_PKGS.gmk Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/make/docs/CORE_PKGS.gmk Wed Mar 21 13:38:55 2012 -0700
@@ -64,7 +64,7 @@
javax.management.* \
javax.script \
javax.sql.* \
- javax.tools \
+ javax.tools.* \
javax.xml.* \
org.w3c.* \
org.xml.sax
@@ -218,6 +218,7 @@
javax.swing.plaf.nimbus \
javax.swing.plaf.synth \
javax.tools \
+ javax.tools.annotation \
javax.transaction \
javax.transaction.xa \
javax.xml.parsers \
--- a/jdk/make/sun/security/ec/Makefile Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/make/sun/security/ec/Makefile Wed Mar 21 13:38:55 2012 -0700
@@ -159,7 +159,9 @@
$(PKGDIR)/ECDSASignature.java \
$(PKGDIR)/ECKeyPairGenerator.java
- JAVAHFLAGS += -Xbootclasspath/p:$(CLASSDESTDIR)
+ JAVAHFLAGS = -bootclasspath \
+ "$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
+
#
# C and C++ files
--- a/jdk/make/sun/security/mscapi/Makefile Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/make/sun/security/mscapi/Makefile Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 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
@@ -149,7 +149,8 @@
# Rules
#
CLASSDESTDIR = $(TEMPDIR)/classes
-JAVAHFLAGS += -Xbootclasspath/p:$(CLASSDESTDIR)
+JAVAHFLAGS = -bootclasspath \
+ "$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
include $(BUILDDIR)/common/Mapfile-vers.gmk
--- a/jdk/make/sun/security/pkcs11/Makefile Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/make/sun/security/pkcs11/Makefile Wed Mar 21 13:38:55 2012 -0700
@@ -150,7 +150,8 @@
# Rules
#
CLASSDESTDIR = $(TEMPDIR)/classes
-JAVAHFLAGS = -bootclasspath "$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
+JAVAHFLAGS = -bootclasspath \
+ "$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
include $(BUILDDIR)/common/Mapfile-vers.gmk
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -33,6 +33,7 @@
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
+import java.security.ProviderException;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.InvalidKeySpecException;
import javax.crypto.KeyAgreementSpi;
@@ -234,31 +235,14 @@
protected byte[] engineGenerateSecret()
throws IllegalStateException
{
- if (generateSecret == false) {
- throw new IllegalStateException
- ("Key agreement has not been completed yet");
+ int expectedLen = (init_p.bitLength() + 7) >>> 3;
+ byte[] result = new byte[expectedLen];
+ try {
+ engineGenerateSecret(result, 0);
+ } catch (ShortBufferException sbe) {
+ // should never happen since length are identical
}
-
- // Reset the key agreement here (in case anything goes wrong)
- generateSecret = false;
-
- // get the modulus
- BigInteger modulus = init_p;
-
- BigInteger tmpResult = y.modPow(x, modulus);
- byte[] secret = tmpResult.toByteArray();
-
- /*
- * BigInteger.toByteArray will sometimes put a sign byte up front, but
- * we NEVER want one.
- */
- if ((tmpResult.bitLength() % 8) == 0) {
- byte retval[] = new byte[secret.length - 1];
- System.arraycopy(secret, 1, retval, 0, retval.length);
- return retval;
- } else {
- return secret;
- }
+ return result;
}
/**
@@ -301,39 +285,51 @@
}
BigInteger modulus = init_p;
- byte[] secret = this.y.modPow(this.x, modulus).toByteArray();
-
- // BigInteger.toByteArray will sometimes put a sign byte up front,
- // but we NEVER want one.
- if ((secret.length << 3) != modulus.bitLength()) {
- if ((sharedSecret.length - offset) < (secret.length - 1)) {
- throw new ShortBufferException
+ int expectedLen = (modulus.bitLength() + 7) >>> 3;
+ if ((sharedSecret.length - offset) < expectedLen) {
+ throw new ShortBufferException
("Buffer too short for shared secret");
- }
- System.arraycopy(secret, 1, sharedSecret, offset,
- secret.length - 1);
+ }
- // Reset the key agreement here (not earlier!), so that people
- // can recover from ShortBufferException above without losing
- // internal state
- generateSecret = false;
+ // Reset the key agreement after checking for ShortBufferException
+ // above, so user can recover w/o losing internal state
+ generateSecret = false;
- return secret.length - 1;
-
+ /*
+ * NOTE: BigInteger.toByteArray() returns a byte array containing
+ * the two's-complement representation of this BigInteger with
+ * the most significant byte is in the zeroth element. This
+ * contains the minimum number of bytes required to represent
+ * this BigInteger, including at least one sign bit whose value
+ * is always 0.
+ *
+ * Keys are always positive, and the above sign bit isn't
+ * actually used when representing keys. (i.e. key = new
+ * BigInteger(1, byteArray)) To obtain an array containing
+ * exactly expectedLen bytes of magnitude, we strip any extra
+ * leading 0's, or pad with 0's in case of a "short" secret.
+ */
+ byte[] secret = this.y.modPow(this.x, modulus).toByteArray();
+ if (secret.length == expectedLen) {
+ System.arraycopy(secret, 0, sharedSecret, offset,
+ secret.length);
} else {
- if ((sharedSecret.length - offset) < secret.length) {
- throw new ShortBufferException
- ("Buffer too short to hold shared secret");
+ // Array too short, pad it w/ leading 0s
+ if (secret.length < expectedLen) {
+ System.arraycopy(secret, 0, sharedSecret,
+ offset + (expectedLen - secret.length),
+ secret.length);
+ } else {
+ // Array too long, check and trim off the excess
+ if ((secret.length == (expectedLen+1)) && secret[0] == 0) {
+ // ignore the leading sign byte
+ System.arraycopy(secret, 1, sharedSecret, offset, expectedLen);
+ } else {
+ throw new ProviderException("Generated secret is out-of-range");
+ }
}
- System.arraycopy(secret, 0, sharedSecret, offset, secret.length);
-
- // Reset the key agreement here (not earlier!), so that people
- // can recover from ShortBufferException above without losing
- // internal state
- generateSecret = false;
-
- return secret.length;
}
+ return expectedLen;
}
/**
--- a/jdk/src/share/classes/java/lang/management/ManagementFactory.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/java/lang/management/ManagementFactory.java Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
/*
- * 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 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 @@
getPlatformManagementInterfaces()
{
Set<Class<? extends PlatformManagedObject>> result =
- new TreeSet<>();
+ new HashSet<>();
for (PlatformComponent component: PlatformComponent.values()) {
result.add(component.getMXBeanInterface());
}
--- a/jdk/src/share/classes/java/net/InMemoryCookieStore.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/java/net/InMemoryCookieStore.java Wed Mar 21 13:38:55 2012 -0700
@@ -207,6 +207,9 @@
public boolean removeAll() {
lock.lock();
try {
+ if (cookieJar.isEmpty()) {
+ return false;
+ }
cookieJar.clear();
domainIndex.clear();
uriIndex.clear();
--- a/jdk/src/share/classes/java/util/Currency.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/java/util/Currency.java Wed Mar 21 13:38:55 2012 -0700
@@ -34,6 +34,8 @@
import java.io.Serializable;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import java.util.logging.Level;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
@@ -99,7 +101,7 @@
// class data: instance map
- private static HashMap<String, Currency> instances = new HashMap<String, Currency>(7);
+ private static ConcurrentMap<String, Currency> instances = new ConcurrentHashMap<>(7);
private static HashSet<Currency> available;
@@ -284,7 +286,6 @@
private static Currency getInstance(String currencyCode, int defaultFractionDigits,
int numericCode) {
- synchronized (instances) {
// Try to look up the currency code in the instances table.
// This does the null pointer check as a side effect.
// Also, if there already is an entry, the currencyCode must be valid.
@@ -322,10 +323,9 @@
}
}
- instance = new Currency(currencyCode, defaultFractionDigits, numericCode);
- instances.put(currencyCode, instance);
- return instance;
- }
+ instance = instances.putIfAbsent(currencyCode,
+ new Currency(currencyCode, defaultFractionDigits, numericCode));
+ return (instance != null ? instance : instances.get(currencyCode));
}
/**
--- a/jdk/src/share/classes/java/util/jar/Manifest.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/java/util/jar/Manifest.java Wed Mar 21 13:38:55 2012 -0700
@@ -400,6 +400,8 @@
public byte peek() throws IOException {
if (pos == count)
fill();
+ if (pos == count)
+ return -1; // nothing left in buffer
return buf[pos];
}
--- a/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/sun/rmi/rmic/BatchEnvironment.java Wed Mar 21 13:38:55 2012 -0700
@@ -160,7 +160,7 @@
}
/** list of generated source files created in this environment */
- private Vector generatedFiles = new Vector();
+ private Vector<File> generatedFiles = new Vector<>();
/**
* Remember a generated source file generated so that it
@@ -177,9 +177,9 @@
*/
public void deleteGeneratedFiles() {
synchronized(generatedFiles) {
- Enumeration enumeration = generatedFiles.elements();
+ Enumeration<File> enumeration = generatedFiles.elements();
while (enumeration.hasMoreElements()) {
- File file = (File) enumeration.nextElement();
+ File file = enumeration.nextElement();
file.delete();
}
generatedFiles.removeAllElements();
--- a/jdk/src/share/classes/sun/rmi/rmic/Main.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/sun/rmi/rmic/Main.java Wed Mar 21 13:38:55 2012 -0700
@@ -73,14 +73,15 @@
File destDir;
int flags;
long tm;
- Vector classes;
+ Vector<String> classes;
boolean nowrite;
boolean nocompile;
boolean keepGenerated;
boolean status;
String[] generatorArgs;
- Vector generators;
- Class environmentClass = BatchEnvironment.class;
+ Vector<Generator> generators;
+ Class<? extends BatchEnvironment> environmentClass =
+ BatchEnvironment.class;
boolean iiopGeneration = false;
/**
@@ -183,7 +184,7 @@
destDir = null;
flags = F_WARNINGS;
tm = System.currentTimeMillis();
- classes = new Vector();
+ classes = new Vector<>();
nowrite = false;
nocompile = false;
keepGenerated = false;
@@ -191,7 +192,7 @@
if (generatorArgs == null) {
return false;
}
- generators = new Vector();
+ generators = new Vector<>();
// Pre-process command line for @file arguments
try {
@@ -411,7 +412,7 @@
// Get the environment required by this generator...
- Class envClass = BatchEnvironment.class;
+ Class<?> envClass = BatchEnvironment.class;
String env = getString("generator.env." + arg);
if (env != null) {
try {
@@ -423,7 +424,7 @@
// Yes, so switch to the new one...
- environmentClass = envClass;
+ environmentClass = envClass.asSubclass(BatchEnvironment.class);
} else {
@@ -495,8 +496,9 @@
try {
Class[] ctorArgTypes = {OutputStream.class,ClassPath.class,Main.class};
Object[] ctorArgs = {out,classPath,this};
- Constructor constructor = environmentClass.getConstructor(ctorArgTypes);
- result = (BatchEnvironment) constructor.newInstance(ctorArgs);
+ Constructor<? extends BatchEnvironment> constructor =
+ environmentClass.getConstructor(ctorArgTypes);
+ result = constructor.newInstance(ctorArgs);
result.reset();
}
catch (Exception e) {
@@ -530,7 +532,7 @@
*/
for (int i = classes.size()-1; i >= 0; i-- ) {
Identifier implClassName =
- Identifier.lookup((String)classes.elementAt(i));
+ Identifier.lookup(classes.elementAt(i));
/*
* Fix bugid 4049354: support using '.' as an inner class
@@ -558,7 +560,7 @@
try {
ClassDefinition def = decl.getClassDefinition(env);
for (int j = 0; j < generators.size(); j++) {
- Generator gen = (Generator)generators.elementAt(j);
+ Generator gen = generators.elementAt(j);
gen.generate(env, def, destDir);
}
} catch (ClassNotFound ex) {
@@ -673,7 +675,7 @@
do {
done = true;
- for (Enumeration e = env.getClasses() ; e.hasMoreElements() ; ) {
+ for (Enumeration<?> e = env.getClasses() ; e.hasMoreElements() ; ) {
ClassDeclaration c = (ClassDeclaration)e.nextElement();
done = compileClass(c,buf,env);
}
@@ -682,7 +684,9 @@
/*
* Compile a single class.
+ * Fallthrough is intentional
*/
+ @SuppressWarnings("fallthrough")
public boolean compileClass (ClassDeclaration c,
ByteArrayOutputStream buf,
BatchEnvironment env)
@@ -879,6 +883,6 @@
args[1] = (arg1 != null ? arg1.toString() : "null");
args[2] = (arg2 != null ? arg2.toString() : "null");
- return java.text.MessageFormat.format(format, args);
+ return java.text.MessageFormat.format(format, (Object[]) args);
}
}
--- a/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/sun/rmi/rmic/RMIGenerator.java Wed Mar 21 13:38:55 2012 -0700
@@ -61,7 +61,7 @@
*/
public class RMIGenerator implements RMIConstants, Generator {
- private static final Hashtable versionOptions = new Hashtable();
+ private static final Hashtable<String, Integer> versionOptions = new Hashtable<>();
static {
versionOptions.put("-v1.1", new Integer(STUB_VERSION_1_1));
versionOptions.put("-vcompat", new Integer(STUB_VERSION_FAT));
@@ -96,7 +96,7 @@
return false;
}
explicitVersion = arg;
- version = ((Integer) versionOptions.get(arg)).intValue();
+ version = versionOptions.get(arg);
argv[i] = null;
}
}
@@ -519,7 +519,7 @@
* follows a previous catch of it or of one of its superclasses.
* The following method invocation takes care of these details.
*/
- Vector catchList = computeUniqueCatchList(exceptions);
+ Vector<ClassDefinition> catchList = computeUniqueCatchList(exceptions);
/*
* If we need to catch any particular exceptions (i.e. this method
@@ -615,10 +615,10 @@
* UnexpectedException, and end the try block.
*/
if (catchList.size() > 0) {
- for (Enumeration enumeration = catchList.elements();
+ for (Enumeration<ClassDefinition> enumeration = catchList.elements();
enumeration.hasMoreElements();)
{
- ClassDefinition def = (ClassDefinition) enumeration.nextElement();
+ ClassDefinition def = enumeration.nextElement();
p.pOlnI("} catch (" + def.getName() + " e) {");
p.pln("throw e;");
}
@@ -650,8 +650,8 @@
* of its superclasses is in the throws clause of the method, indicating
* that no exceptions need to be caught.
*/
- private Vector computeUniqueCatchList(ClassDeclaration[] exceptions) {
- Vector uniqueList = new Vector(); // unique exceptions to catch
+ private Vector<ClassDefinition> computeUniqueCatchList(ClassDeclaration[] exceptions) {
+ Vector<ClassDefinition> uniqueList = new Vector<>(); // unique exceptions to catch
uniqueList.addElement(defRuntimeException);
uniqueList.addElement(defRemoteException);
@@ -682,8 +682,7 @@
* exceptions that need to be caught:
*/
for (int j = 0; j < uniqueList.size();) {
- ClassDefinition def =
- (ClassDefinition) uniqueList.elementAt(j);
+ ClassDefinition def = uniqueList.elementAt(j);
if (def.superClassOf(env, decl)) {
/*
* If a superclass of this exception is already on
--- a/jdk/src/share/classes/sun/rmi/rmic/newrmic/Main.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/sun/rmi/rmic/newrmic/Main.java Wed Mar 21 13:38:55 2012 -0700
@@ -455,7 +455,7 @@
BatchEnvironment env;
try {
Constructor<? extends BatchEnvironment> cons =
- batch.envClass.getConstructor(new Class[] { RootDoc.class });
+ batch.envClass.getConstructor(new Class<?>[] { RootDoc.class });
env = cons.newInstance(rootDoc);
} catch (NoSuchMethodException e) {
throw new AssertionError(e);
--- a/jdk/src/share/classes/sun/rmi/rmic/newrmic/Resources.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/sun/rmi/rmic/newrmic/Resources.java Wed Mar 21 13:38:55 2012 -0700
@@ -69,7 +69,7 @@
format = "missing resource key: key = \"" + key + "\", " +
"arguments = \"{0}\", \"{1}\", \"{2}\"";
}
- return MessageFormat.format(format, args);
+ return MessageFormat.format(format, (Object[]) args);
}
/**
--- a/jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, 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
@@ -198,8 +198,22 @@
token.p11.C_GetAttributeValue(session.id(), keyID, attributes);
byte[] secret = attributes[0].getByteArray();
token.p11.C_DestroyObject(session.id(), keyID);
- // trim leading 0x00 bytes per JCE convention
- return P11Util.trimZeroes(secret);
+ // Some vendors, e.g. NSS, trim off the leading 0x00 byte(s) from
+ // the generated secret. Thus, we need to check the secret length
+ // and trim/pad it so the returned value has the same length as
+ // the modulus size
+ if (secret.length == secretLen) {
+ return secret;
+ } else {
+ if (secret.length > secretLen) {
+ // Shouldn't happen; but check just in case
+ throw new ProviderException("generated secret is out-of-range");
+ }
+ byte[] newSecret = new byte[secretLen];
+ System.arraycopy(secret, 0, newSecret, secretLen - secret.length,
+ secret.length);
+ return newSecret;
+ }
} catch (PKCS11Exception e) {
throw new ProviderException("Could not derive key", e);
} finally {
--- a/jdk/src/solaris/native/java/util/TimeZone_md.c Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/solaris/native/java/util/TimeZone_md.c Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
/*
- * 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 @@
/*
* 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 @@
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;
}
--- a/jdk/src/solaris/native/sun/nio/ch/DatagramDispatcher.c Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/solaris/native/sun/nio/ch/DatagramDispatcher.c Wed Mar 21 13:38:55 2012 -0700
@@ -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 @@
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 @@
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) {
--- a/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c Wed Mar 21 13:38:55 2012 -0700
@@ -30,9 +30,6 @@
#include <stdlib.h>
#include <dlfcn.h>
-#ifndef __APPLE__
-#include <link.h>
-#endif
#ifdef __solaris__
#include <strings.h>
--- a/jdk/src/solaris/native/sun/security/jgss/wrapper/NativeFunc.c Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/solaris/native/sun/security/jgss/wrapper/NativeFunc.c Wed Mar 21 13:38:55 2012 -0700
@@ -26,9 +26,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
-#ifndef __APPLE__
-#include <link.h>
-#endif
#include "NativeFunc.h"
/* standard GSS method names (ordering is from mapfile) */
--- a/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c Wed Mar 21 13:38:55 2012 -0700
@@ -28,9 +28,6 @@
#include <string.h>
#include <dlfcn.h>
-#ifndef __APPLE__
-#include <link.h>
-#endif
#include <jni_util.h>
--- a/jdk/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c Wed Mar 21 13:38:55 2012 -0700
@@ -64,9 +64,6 @@
#include <assert.h>
#include <dlfcn.h>
-#ifndef __APPLE__
-#include <link.h>
-#endif
#include <jni.h>
--- a/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/solaris/native/sun/security/smartcardio/pcsc_md.c Wed Mar 21 13:38:55 2012 -0700
@@ -29,9 +29,6 @@
#include <assert.h>
#include <dlfcn.h>
-#ifndef __APPLE__
-#include <link.h>
-#endif
#include <winscard.h>
--- a/jdk/src/solaris/npt/npt_md.h Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/src/solaris/npt/npt_md.h Wed Mar 21 13:38:55 2012 -0700
@@ -32,9 +32,6 @@
#include <string.h>
#include <errno.h>
#include <dlfcn.h>
-#ifndef __APPLE__
-#include <link.h>
-#endif
#include <jvm_md.h>
#define NPT_LIBNAME "npt"
--- a/jdk/test/ProblemList.txt Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/ProblemList.txt Wed Mar 21 13:38:55 2012 -0700
@@ -212,7 +212,7 @@
# 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 @@
# 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 @@
# 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 @@
# 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
--- a/jdk/test/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 0000000
+ * @bug 7146728
* @summary DHKeyAgreement2
* @author Jan Luehe
*/
@@ -52,15 +52,12 @@
public class DHKeyAgreement2 {
+ private static final String SUNJCE = "SunJCE";
private DHKeyAgreement2() {}
public static void main(String argv[]) throws Exception {
String mode = "USE_SKIP_DH_PARAMS";
- // Add JCE to the list of providers
- SunJCE jce = new SunJCE();
- Security.addProvider(jce);
-
DHKeyAgreement2 keyAgree = new DHKeyAgreement2();
if (argv.length > 1) {
@@ -86,7 +83,7 @@
// Some central authority creates new DH parameters
System.err.println("Creating Diffie-Hellman parameters ...");
AlgorithmParameterGenerator paramGen
- = AlgorithmParameterGenerator.getInstance("DH");
+ = AlgorithmParameterGenerator.getInstance("DH", SUNJCE);
paramGen.init(512);
AlgorithmParameters params = paramGen.generateParameters();
dhSkipParamSpec = (DHParameterSpec)params.getParameterSpec
@@ -103,7 +100,7 @@
* above
*/
System.err.println("ALICE: Generate DH keypair ...");
- KeyPairGenerator aliceKpairGen = KeyPairGenerator.getInstance("DH");
+ KeyPairGenerator aliceKpairGen = KeyPairGenerator.getInstance("DH", SUNJCE);
aliceKpairGen.initialize(dhSkipParamSpec);
KeyPair aliceKpair = aliceKpairGen.generateKeyPair();
System.out.println("Alice DH public key:\n" +
@@ -112,14 +109,14 @@
aliceKpair.getPrivate().toString());
DHParameterSpec dhParamSpec =
((DHPublicKey)aliceKpair.getPublic()).getParams();
- AlgorithmParameters algParams = AlgorithmParameters.getInstance("DH");
+ AlgorithmParameters algParams = AlgorithmParameters.getInstance("DH", SUNJCE);
algParams.init(dhParamSpec);
System.out.println("Alice DH parameters:\n"
+ algParams.toString());
// Alice executes Phase1 of her version of the DH protocol
System.err.println("ALICE: Execute PHASE1 ...");
- KeyAgreement aliceKeyAgree = KeyAgreement.getInstance("DH");
+ KeyAgreement aliceKeyAgree = KeyAgreement.getInstance("DH", SUNJCE);
aliceKeyAgree.init(aliceKpair.getPrivate());
// Alice encodes her public key, and sends it over to Bob.
@@ -130,7 +127,7 @@
* in encoded format.
* He instantiates a DH public key from the encoded key material.
*/
- KeyFactory bobKeyFac = KeyFactory.getInstance("DH");
+ KeyFactory bobKeyFac = KeyFactory.getInstance("DH", SUNJCE);
X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec
(alicePubKeyEnc);
PublicKey alicePubKey = bobKeyFac.generatePublic(x509KeySpec);
@@ -144,7 +141,7 @@
// Bob creates his own DH key pair
System.err.println("BOB: Generate DH keypair ...");
- KeyPairGenerator bobKpairGen = KeyPairGenerator.getInstance("DH");
+ KeyPairGenerator bobKpairGen = KeyPairGenerator.getInstance("DH", SUNJCE);
bobKpairGen.initialize(dhParamSpec);
KeyPair bobKpair = bobKpairGen.generateKeyPair();
System.out.println("Bob DH public key:\n" +
@@ -154,7 +151,7 @@
// Bob executes Phase1 of his version of the DH protocol
System.err.println("BOB: Execute PHASE1 ...");
- KeyAgreement bobKeyAgree = KeyAgreement.getInstance("DH");
+ KeyAgreement bobKeyAgree = KeyAgreement.getInstance("DH", SUNJCE);
bobKeyAgree.init(bobKpair.getPrivate());
// Bob encodes his public key, and sends it over to Alice.
@@ -166,7 +163,7 @@
* Before she can do so, she has to instanticate a DH public key
* from Bob's encoded key material.
*/
- KeyFactory aliceKeyFac = KeyFactory.getInstance("DH");
+ KeyFactory aliceKeyFac = KeyFactory.getInstance("DH", SUNJCE);
x509KeySpec = new X509EncodedKeySpec(bobPubKeyEnc);
PublicKey bobPubKey = aliceKeyFac.generatePublic(x509KeySpec);
System.err.println("ALICE: Execute PHASE2 ...");
@@ -187,49 +184,32 @@
byte[] aliceSharedSecret = aliceKeyAgree.generateSecret();
int aliceLen = aliceSharedSecret.length;
+ // check if alice's key agreement has been reset afterwards
+ try {
+ aliceKeyAgree.generateSecret();
+ throw new Exception("Error: alice's KeyAgreement not reset");
+ } catch (IllegalStateException e) {
+ System.out.println("EXPECTED: " + e.getMessage());
+ }
+
byte[] bobSharedSecret = new byte[aliceLen];
int bobLen;
try {
// provide output buffer that is too short
bobLen = bobKeyAgree.generateSecret(bobSharedSecret, 1);
-
- /*
- * Gatekeeper's note:
- * We should not be getting here, but every so often, we
- * get a failure, either a "ShortBufferException" or
- * "Key agreement has not been completed yet" in the
- * generateSecret(bobSharedSecret, 0) below.
- *
- * This will help to figure out why we're dropping through
- * and not failing.
- */
- System.out.println("NIGHTLY: Should *NOT* be here!!!\n" +
- "aliceLen = " + aliceLen + "\n" +
- "Alice's shared secret");
-
- try {
- HexDumpEncoder hd = new HexDumpEncoder();
-
- hd.encodeBuffer(
- new ByteArrayInputStream(aliceSharedSecret), System.out);
- } catch (IOException e) { }
-
- System.out.println("bobLen = " + bobLen);
-
- try {
- HexDumpEncoder hd = new HexDumpEncoder();
-
- hd.encodeBuffer(
- new ByteArrayInputStream(bobSharedSecret), System.out);
- } catch (IOException e) { }
-
- throw new Exception("Shouldn't be succeeding.");
} catch (ShortBufferException e) {
System.out.println("EXPECTED: " + e.getMessage());
}
+ // retry w/ output buffer of required size
+ bobLen = bobKeyAgree.generateSecret(bobSharedSecret, 0);
- // provide output buffer of required size
- bobLen = bobKeyAgree.generateSecret(bobSharedSecret, 0);
+ // check if bob's key agreement has been reset afterwards
+ try {
+ bobKeyAgree.generateSecret(bobSharedSecret, 0);
+ throw new Exception("Error: bob's KeyAgreement not reset");
+ } catch (IllegalStateException e) {
+ System.out.println("EXPECTED: " + e.getMessage());
+ }
System.out.println("Alice secret: " + toHexString(aliceSharedSecret));
System.out.println("Bob secret: " + toHexString(bobSharedSecret));
--- a/jdk/test/com/sun/jdi/EarlyReturnTest.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/com/sun/jdi/EarlyReturnTest.java Wed Mar 21 13:38:55 2012 -0700
@@ -292,7 +292,9 @@
private String[] excludes = {
"javax.*",
"sun.*",
- "com.sun.*"};
+ "com.sun.*",
+ "com.oracle.*",
+ "oracle.*"};
static VirtualMachineManager vmm ;
ClassType targetClass;
--- a/jdk/test/com/sun/jdi/MethodEntryExitEvents.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/com/sun/jdi/MethodEntryExitEvents.java Wed Mar 21 13:38:55 2012 -0700
@@ -114,7 +114,8 @@
* http://java.sun.com/javase/technologies/core/toolsapis/jpda/
*/
private String[] excludes = {"java.*", "javax.*", "sun.*",
- "com.sun.*"};
+ "com.sun.*", "com.oracle.*",
+ "oracle.*"};
MethodEntryExitEvents (String args[]) {
super(args);
--- a/jdk/test/com/sun/jdi/MethodExitReturnValuesTest.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/com/sun/jdi/MethodExitReturnValuesTest.java Wed Mar 21 13:38:55 2012 -0700
@@ -218,7 +218,9 @@
private String[] excludes = {
"javax.*",
"sun.*",
- "com.sun.*"};
+ "com.sun.*",
+ "com.oracle.*",
+ "oracle.*"};
static VirtualMachineManager vmm ;
ClassType targetClass;
--- a/jdk/test/java/io/File/isDirectory/Applet.html Wed Mar 21 13:37:24 2012 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-<!---->
-<applet code=Applet.class width=100 height=100></applet>
--- a/jdk/test/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java Wed Mar 21 13:38:55 2012 -0700
@@ -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.
--- a/jdk/test/java/io/Serializable/replaceStringArray/ReplaceStringArray.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/java/io/Serializable/replaceStringArray/ReplaceStringArray.java Wed Mar 21 13:38:55 2012 -0700
@@ -22,7 +22,6 @@
*/
/* @test
- * @clean A SubstituteObjectOutputStream SubstituteObjectInputStream
* @bug 4099013
* @summary Enable substitution of String and Array by ObjectStreams.
*/
--- a/jdk/test/java/io/Serializable/replaceWithNull/ReplaceWithNull.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/java/io/Serializable/replaceWithNull/ReplaceWithNull.java Wed Mar 21 13:38:55 2012 -0700
@@ -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.*;
--- a/jdk/test/java/io/Serializable/verifyDynamicObjHandleTable/VerifyDynamicObjHandleTable.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/java/io/Serializable/verifyDynamicObjHandleTable/VerifyDynamicObjHandleTable.java Wed Mar 21 13:38:55 2012 -0700
@@ -22,7 +22,6 @@
*/
/* @test
- * @clean A
* @bug 4146453
* @summary Test that regrow of object/handle table of ObjectOutputStream works.
*/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/management/ManagementFactory/GetPlatformManagementInterfaces.java Wed Mar 21 13:38:55 2012 -0700
@@ -0,0 +1,76 @@
+/*
+ * 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");
+ }
+ }
+ }
+}
--- a/jdk/test/java/net/CookieHandler/NullUriCookieTest.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/java/net/CookieHandler/NullUriCookieTest.java Wed Mar 21 13:38:55 2012 -0700
@@ -23,8 +23,9 @@
/*
* @test
- * @bug 6953455
+ * @bug 6953455 7045655
* @summary CookieStore.add() cannot handle null URI parameter
+ * and An empty InMemoryCookieStore should not return true for removeAll
*/
import java.net.CookieManager;
@@ -44,6 +45,11 @@
static void checkCookieNullUri() throws Exception {
//get a cookie store implementation and add a cookie to the store with null URI
CookieStore cookieStore = (new CookieManager()).getCookieStore();
+ //Check if removeAll() retrurns false on an empty CookieStore
+ if (cookieStore.removeAll()) {
+ fail = true;
+ }
+ checkFail("removeAll on empty store should return false");
HttpCookie cookie = new HttpCookie("MY_COOKIE", "MY_COOKIE_VALUE");
cookie.setDomain("foo.com");
cookieStore.add(null, cookie);
--- a/jdk/test/java/net/Socks/SocksServer.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/java/net/Socks/SocksServer.java Wed Mar 21 13:38:55 2012 -0700
@@ -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 @@
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 @@
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 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 @@
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() {
--- a/jdk/test/java/net/Socks/SocksV4Test.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/java/net/Socks/SocksV4Test.java Wed Mar 21 13:38:55 2012 -0700
@@ -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 @@
throw new RuntimeException("Got a NUllPointerException");
} finally {
srvr.terminate();
- srvr.interrupt();
}
}
}
--- a/jdk/test/java/nio/file/Files/CustomOptions.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/java/nio/file/Files/CustomOptions.java Wed Mar 21 13:38:55 2012 -0700
@@ -28,6 +28,7 @@
* @author Brandon Passanisi
* @library ..
* @build CustomOptions PassThroughFileSystem
+ * @run main CustomOptions
*/
import java.io.IOException;
--- a/jdk/test/java/text/Bidi/Bug6850113.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/java/text/Bidi/Bug6850113.java Wed Mar 21 13:38:55 2012 -0700
@@ -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;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/jar/Manifest/CreateManifest.java Wed Mar 21 13:38:55 2012 -0700
@@ -0,0 +1,301 @@
+/*
+ * 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";
+}
--- a/jdk/test/javax/naming/spi/DirectoryManager/GetContDirCtx.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/javax/naming/spi/DirectoryManager/GetContDirCtx.java Wed Mar 21 13:38:55 2012 -0700
@@ -26,6 +26,7 @@
* @bug 4241676
* @summary getContinuationDirContext() should set CPE environment property.
* @build DummyObjectFactory DummyContext
+ * @run main/othervm GetContDirCtx
*/
import java.util.Hashtable;
--- a/jdk/test/sun/management/HotspotClassLoadingMBean/GetClassLoadingTime.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/management/HotspotClassLoadingMBean/GetClassLoadingTime.java Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, 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
@@ -27,6 +27,7 @@
* @summary Basic unit test of HotspotClassLoadingMBean.getClassLoadingTime()
* @author Steve Bohne
* @build ClassToLoad0
+ * @run main GetClassLoadingTime
*/
/*
@@ -71,10 +72,8 @@
}
long time2 = mbean.getClassLoadingTime();
- long count = mbean.getLoadedClassCount();
if (trace) {
- System.out.println("(new count is " + count + ")");
System.out.println("Class loading time2 (ms): " + time2);
}
@@ -93,8 +92,6 @@
// so we can avoid delegation and spend lots of time loading the
// same class over and over, to test the class loading timer.
class KlassLoader extends ClassLoader {
- static String klassDir="";
- static int index=0;
public KlassLoader() {
super(null);
@@ -102,14 +99,13 @@
protected synchronized Class findClass(String name)
throws ClassNotFoundException {
- String cname = klassDir
- + (klassDir == "" ? "" : "/")
- +name.replace('.', '/')
+ String cname =
+ name.replace('.', '/')
+".class";
FileInputStream in;
try {
- in=new FileInputStream(cname);
+ in = new FileInputStream(new File(System.getProperty("test.classes", "."), cname));
if (in == null) {
throw new ClassNotFoundException("getResourceAsStream("
+cname+")");
--- a/jdk/test/sun/misc/Cleaner/exitOnThrow.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/misc/Cleaner/exitOnThrow.sh Wed Mar 21 13:38:55 2012 -0700
@@ -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
--- a/jdk/test/sun/nio/cs/OLD/TestIBMDB.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/nio/cs/OLD/TestIBMDB.java Wed Mar 21 13:38:55 2012 -0700
@@ -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.*;
--- a/jdk/test/sun/nio/cs/OLD/TestX11CS.java Wed Mar 21 13:37:24 2012 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
- * 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());
-
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/auto/Basic.java Wed Mar 21 13:38:55 2012 -0700
@@ -0,0 +1,56 @@
+/*
+ * 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 7152176
+ * @summary More krb5 tests
+ * @compile -XDignore.symbol.file Basic.java
+ * @run main/othervm Basic
+ */
+
+import sun.security.jgss.GSSUtil;
+
+// The basic krb5 test skeleton you can copy from
+public class Basic {
+
+ public static void main(String[] args) throws Exception {
+
+ new OneKDC(null).writeJAASConf();
+
+ Context c, s;
+ c = Context.fromJAAS("client");
+ s = Context.fromJAAS("server");
+
+ c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_KRB5_MECH_OID);
+ s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID);
+
+ Context.handshake(c, s);
+
+ Context.transmit("i say high --", c, s);
+ Context.transmit(" you say low", s, c);
+
+ s.dispose();
+ c.dispose();
+ }
+}
--- a/jdk/test/sun/security/krb5/auto/Context.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/security/krb5/auto/Context.java Wed Mar 21 13:38:55 2012 -0700
@@ -96,6 +96,15 @@
}
/**
+ * No JAAS login at all, can be used to test JGSS without JAAS
+ */
+ public static Context fromThinAir() throws Exception {
+ Context out = new Context();
+ out.s = new Subject();
+ return out;
+ }
+
+ /**
* Logins with a JAAS login config entry name
*/
public static Context fromJAAS(final String name) throws Exception {
@@ -111,8 +120,10 @@
String user, char[] pass, boolean storeKey) throws Exception {
return fromUserPass(null, user, pass, storeKey);
}
+
/**
* Logins with a username and a password, using Krb5LoginModule directly
+ * @param s existing subject, test multiple princ & creds for single subj
* @param storeKey true if key should be saved, used on acceptor side
*/
public static Context fromUserPass(Subject s,
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/auto/GSS.java Wed Mar 21 13:38:55 2012 -0700
@@ -0,0 +1,60 @@
+/*
+ * 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 7152176
+ * @summary More krb5 tests
+ * @compile -XDignore.symbol.file GSS.java
+ * @run main/othervm GSS
+ */
+
+import sun.security.jgss.GSSUtil;
+
+// Testing JGSS without JAAS
+public class GSS {
+
+ public static void main(String[] args) throws Exception {
+
+ new OneKDC(null).writeJAASConf();
+
+ Context c, s;
+ c = Context.fromThinAir();
+ s = Context.fromThinAir();
+
+ // This is the only setting needed for JGSS without JAAS. The default
+ // JAAS config entries are already created by OneKDC.
+ System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
+
+ c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_KRB5_MECH_OID);
+ s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID);
+
+ Context.handshake(c, s);
+
+ Context.transmit("i say high --", c, s);
+ Context.transmit(" you say low", s, c);
+
+ s.dispose();
+ c.dispose();
+ }
+}
--- a/jdk/test/sun/security/krb5/auto/KDC.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/security/krb5/auto/KDC.java Wed Mar 21 13:38:55 2012 -0700
@@ -236,80 +236,82 @@
}
/**
- * Writes or appends KDC keys into a keytab. See doc for writeMultiKtab.
+ * Writes or appends keys into a keytab.
+ * <p>
+ * Attention: This is the most basic one of a series of methods below on
+ * keytab creation or modification. All these methods reference krb5.conf
+ * settings. If you need to modify krb5.conf or switch to another krb5.conf
+ * later, please call <code>Config.refresh()</code> again. For example:
+ * <pre>
+ * kdc.writeKtab("/etc/kdc/ktab", true); // Config is initialized,
+ * System.setProperty("java.security.krb5.conf", "/home/mykrb5.conf");
+ * Config.refresh();
+ * </pre>
+ * Inside this method there are 2 places krb5.conf is used:
+ * <ol>
+ * <li> (Fatal) Generating keys: EncryptionKey.acquireSecretKeys
+ * <li> (Has workaround) Creating PrincipalName
+ * </ol>
+ * @param tab the keytab file name
* @param append true if append, otherwise, overwrite.
+ * @param names the names to write into, write all if names is empty
*/
- private static void writeKtab0(String tab, boolean append, KDC... kdcs)
+ public void writeKtab(String tab, boolean append, String... names)
throws IOException, KrbException {
KeyTab ktab = append ? KeyTab.getInstance(tab) : KeyTab.create(tab);
- for (KDC kdc: kdcs) {
- for (String name : kdc.passwords.keySet()) {
- char[] pass = kdc.passwords.get(name);
- int kvno = 0;
- if (Character.isDigit(pass[pass.length-1])) {
- kvno = pass[pass.length-1] - '0';
- }
- ktab.addEntry(new PrincipalName(name,
- name.indexOf('/') < 0 ?
- PrincipalName.KRB_NT_UNKNOWN :
- PrincipalName.KRB_NT_SRV_HST),
- pass,
- kvno,
- true);
+ Iterable<String> entries =
+ (names.length != 0) ? Arrays.asList(names): passwords.keySet();
+ for (String name : entries) {
+ char[] pass = passwords.get(name);
+ int kvno = 0;
+ if (Character.isDigit(pass[pass.length-1])) {
+ kvno = pass[pass.length-1] - '0';
}
+ ktab.addEntry(new PrincipalName(name,
+ name.indexOf('/') < 0 ?
+ PrincipalName.KRB_NT_UNKNOWN :
+ PrincipalName.KRB_NT_SRV_HST),
+ pass,
+ kvno,
+ true);
}
ktab.save();
}
/**
* Writes all principals' keys from multiple KDCs into one keytab file.
- * Note that the keys for the krbtgt principals will not be written.
- * <p>
- * Attention: This method references krb5.conf settings. If you need to
- * setup krb5.conf later, please call <code>Config.refresh()</code> after
- * the new setting. For example:
- * <pre>
- * KDC.writeKtab("/etc/kdc/ktab", kdc); // Config is initialized,
- * System.setProperty("java.security.krb5.conf", "/home/mykrb5.conf");
- * Config.refresh();
- * </pre>
- *
- * Inside this method there are 2 places krb5.conf is used:
- * <ol>
- * <li> (Fatal) Generating keys: EncryptionKey.acquireSecretKeys
- * <li> (Has workaround) Creating PrincipalName
- * </ol>
- * @param tab The keytab filename to write to.
* @throws java.io.IOException for any file output error
* @throws sun.security.krb5.KrbException for any realm and/or principal
* name error.
*/
public static void writeMultiKtab(String tab, KDC... kdcs)
throws IOException, KrbException {
- writeKtab0(tab, false, kdcs);
+ KeyTab.create(tab).save(); // Empty the old keytab
+ appendMultiKtab(tab, kdcs);
}
/**
* Appends all principals' keys from multiple KDCs to one keytab file.
- * See writeMultiKtab for details.
*/
public static void appendMultiKtab(String tab, KDC... kdcs)
throws IOException, KrbException {
- writeKtab0(tab, true, kdcs);
+ for (KDC kdc: kdcs) {
+ kdc.writeKtab(tab, true);
+ }
}
/**
* Write a ktab for this KDC.
*/
public void writeKtab(String tab) throws IOException, KrbException {
- KDC.writeMultiKtab(tab, this);
+ writeKtab(tab, false);
}
/**
* Appends keys in this KDC to a ktab.
*/
public void appendKtab(String tab) throws IOException, KrbException {
- KDC.appendMultiKtab(tab, this);
+ writeKtab(tab, true);
}
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/auto/TwoTab.java Wed Mar 21 13:38:55 2012 -0700
@@ -0,0 +1,99 @@
+/*
+ * 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 7152176
+ * @summary More krb5 tests
+ * @compile -XDignore.symbol.file TwoTab.java
+ * @run main/othervm TwoTab
+ */
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.nio.file.Files;
+import java.security.Security;
+import sun.security.jgss.GSSUtil;
+import sun.security.krb5.PrincipalName;
+import sun.security.krb5.internal.ktab.KeyTab;
+
+// Two services using their own keytab.
+public class TwoTab {
+
+ public static void main(String[] args) throws Exception {
+
+ KDC k = new OneKDC(null);
+
+ // Write JAAS conf, two service using different keytabs
+ System.setProperty("java.security.auth.login.config", OneKDC.JAAS_CONF);
+ File f = new File(OneKDC.JAAS_CONF);
+ try (FileOutputStream fos = new FileOutputStream(f)) {
+ fos.write((
+ "server {\n" +
+ " com.sun.security.auth.module.Krb5LoginModule required\n" +
+ " principal=\"" + OneKDC.SERVER + "\"\n" +
+ " useKeyTab=true\n" +
+ " keyTab=server.keytab\n" +
+ " storeKey=true;\n};\n" +
+ "server2 {\n" +
+ " com.sun.security.auth.module.Krb5LoginModule required\n" +
+ " principal=\"" + OneKDC.BACKEND + "\"\n" +
+ " useKeyTab=true\n" +
+ " keyTab=backend.keytab\n" +
+ " storeKey=true;\n};\n"
+ ).getBytes());
+ }
+ f.deleteOnExit();
+
+ k.writeKtab("server.keytab", false, "server/host.rabbit.hole@RABBIT.HOLE");
+ k.writeKtab("backend.keytab", false, "backend/host.rabbit.hole@RABBIT.HOLE");
+
+ Context c, s, s2;
+ c = Context.fromUserPass(OneKDC.USER, OneKDC.PASS, false);
+ s = Context.fromJAAS("server");
+ s2 = Context.fromJAAS("server2");
+
+ c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_KRB5_MECH_OID);
+ s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID);
+
+ Context.handshake(c, s);
+
+ Context.transmit("i say high --", c, s);
+ Context.transmit(" you say low", s, c);
+
+ s.dispose();
+ c.dispose();
+
+ c = Context.fromUserPass(OneKDC.USER, OneKDC.PASS, false);
+ c.startAsClient(OneKDC.BACKEND, GSSUtil.GSS_KRB5_MECH_OID);
+ s2.startAsServer(GSSUtil.GSS_KRB5_MECH_OID);
+
+ Context.handshake(c, s2);
+
+ Context.transmit("i say high --", c, s2);
+ Context.transmit(" you say low", s2, c);
+
+ s2.dispose();
+ c.dispose();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/pkcs11/KeyAgreement/TestInterop.java Wed Mar 21 13:38:55 2012 -0700
@@ -0,0 +1,143 @@
+/*
+ * 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 7146728
+ * @summary Interop test for DH with secret that has a leading 0x00 byte
+ * @library ..
+ */
+import java.math.BigInteger;
+import java.util.*;
+
+import java.security.*;
+
+import javax.crypto.*;
+import javax.crypto.spec.*;
+
+public class TestInterop extends PKCS11Test {
+
+ private final static BigInteger p = new BigInteger
+ ("171718397966129586011229151993178480901904202533705695869569760169920539"
+ + "80807543778874708672297590042574075430109846864794139516459381007417046"
+ + "27996080624930219892858374168155487210358743785481212360509485282294161"
+ + "39585571568998066586304075565145536350296006867635076744949977849997684"
+ + "222020336013226588207303");
+
+ private final static BigInteger g = new BigInteger("2");
+
+ private final static BigInteger ya = new BigInteger
+ ("687709211571508809414670982463565909269384277848448625781941269577397703"
+ + "73675199968849153119146758339814638228795348558483510369322822476757204"
+ + "22158455966026517829008713407587339322132253724742557954802911059639161"
+ + "24827916158465757962384625410294483756242900146397201260757102085985457"
+ + "09397033481077351036224");
+
+ private final static BigInteger xa = new BigInteger
+ ("104917367119952955556289227181599819745346393858545449202252025137706135"
+ + "98100778613457655440586438263591136003106529323555991109623536177695714"
+ + "66884181531401472902830508361532232717792847436112280721439936797741371"
+ + "245140912614191507");
+
+ private final static BigInteger yb = new BigInteger
+ ("163887874871842952463100699681506173424091615364591742415764095471629919"
+ + "08421025296419917755446931473037086355546823601999684501737493240373415"
+ + "65608293667837249198973539289354492348897732633852665609611113031379864"
+ + "58514616034107537409230452318065341748503347627733368519091332060477528"
+ + "173423377887175351037810");
+
+ private final static BigInteger xb = new BigInteger
+ ("127757517533485947079959908591028646859165238853082197617179368337276371"
+ + "51601819447716934542027725311863797141734616730248519214531856941516613"
+ + "30313414180008978013330410484011186019824874948204261839391153650949864"
+ + "429505597086564709");
+
+ public void main(Provider prov) throws Exception {
+ if (prov.getService("KeyAgreement", "DH") == null) {
+ System.out.println("DH not supported, skipping");
+ return;
+ }
+ try {
+ System.out.println("testing generateSecret()");
+
+ DHPublicKeySpec publicSpec;
+ DHPrivateKeySpec privateSpec;
+ KeyFactory kf = KeyFactory.getInstance("DH");
+ KeyAgreement ka = KeyAgreement.getInstance("DH", prov);
+ KeyAgreement kbSunJCE = KeyAgreement.getInstance("DH", "SunJCE");
+ DHPrivateKeySpec privSpecA = new DHPrivateKeySpec(xa, p, g);
+ DHPublicKeySpec pubSpecA = new DHPublicKeySpec(ya, p, g);
+ PrivateKey privA = kf.generatePrivate(privSpecA);
+ PublicKey pubA = kf.generatePublic(pubSpecA);
+
+ DHPrivateKeySpec privSpecB = new DHPrivateKeySpec(xb, p, g);
+ DHPublicKeySpec pubSpecB = new DHPublicKeySpec(yb, p, g);
+ PrivateKey privB = kf.generatePrivate(privSpecB);
+ PublicKey pubB = kf.generatePublic(pubSpecB);
+
+ ka.init(privA);
+ ka.doPhase(pubB, true);
+ byte[] n1 = ka.generateSecret();
+
+ kbSunJCE.init(privB);
+ kbSunJCE.doPhase(pubA, true);
+ byte[] n2 = kbSunJCE.generateSecret();
+
+ if (Arrays.equals(n1, n2) == false) {
+ throw new Exception("values mismatch!");
+ } else {
+ System.out.println("values: same");
+ }
+
+ System.out.println("testing generateSecret(byte[], int)");
+ byte[] n3 = new byte[n1.length];
+ ka.init(privB);
+ ka.doPhase(pubA, true);
+ int n3Len = ka.generateSecret(n3, 0);
+ if (n3Len != n3.length) {
+ throw new Exception("PKCS11 Length mismatch!");
+ } else System.out.println("PKCS11 Length: ok");
+ byte[] n4 = new byte[n2.length];
+ kbSunJCE.init(privA);
+ kbSunJCE.doPhase(pubB, true);
+ int n4Len = kbSunJCE.generateSecret(n4, 0);
+ if (n4Len != n4.length) {
+ throw new Exception("SunJCE Length mismatch!");
+ } else System.out.println("SunJCE Length: ok");
+
+ if (Arrays.equals(n3, n4) == false) {
+ throw new Exception("values mismatch! ");
+ } else {
+ System.out.println("values: same");
+ }
+ } catch (Exception ex) {
+ System.out.println("Unexpected ex: " + ex);
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ main(new TestInterop());
+ }
+}
--- a/jdk/test/sun/security/pkcs11/KeyAgreement/TestShort.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/security/pkcs11/KeyAgreement/TestShort.java Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 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
@@ -23,7 +23,7 @@
/**
* @test
- * @bug 4942494
+ * @bug 4942494 7146728
* @summary KAT test for DH (normal and with secret that has leading a 0x00 byte)
* @author Andreas Sterbenz
* @library ..
@@ -66,7 +66,7 @@
("433011588852527167500079509018272713204454720683");
private final static byte[] s2 = parse
- ("19:c7:f1:bb:2e:3d:93:fa:02:d2:e9:9f:75:32:b9:e6:7a:a0:4a:10:45:81:d4:2b:"
+ ("00:19:c7:f1:bb:2e:3d:93:fa:02:d2:e9:9f:75:32:b9:e6:7a:a0:4a:10:45:81:d4:2b:"
+ "e2:77:4c:70:41:39:7c:19:fa:65:64:47:49:8a:ad:0a:fa:9d:e9:62:68:97:c5:52"
+ ":b1:37:03:d9:cd:aa:e1:bd:7e:71:0c:fc:15:a1:95");
@@ -88,31 +88,36 @@
System.out.println("DH not supported, skipping");
return;
}
- DHPublicKeySpec publicSpec;
- DHPrivateKeySpec privateSpec;
- KeyFactory kf = KeyFactory.getInstance("DH", provider);
- KeyAgreement ka = KeyAgreement.getInstance("DH", provider);
-// KeyAgreement ka = KeyAgreement.getInstance("DH");
+ try {
+ DHPublicKeySpec publicSpec;
+ DHPrivateKeySpec privateSpec;
+ KeyFactory kf = KeyFactory.getInstance("DH", provider);
+ KeyAgreement ka = KeyAgreement.getInstance("DH", provider);
- PrivateKey pr1 = kf.generatePrivate(new DHPrivateKeySpec(x1, p, g));
- PublicKey pu2 = kf.generatePublic(new DHPublicKeySpec(y2, p, g));
- PublicKey pu3 = kf.generatePublic(new DHPublicKeySpec(y3, p, g));
+ PrivateKey pr1 = kf.generatePrivate(new DHPrivateKeySpec(x1, p, g));
+ PublicKey pu2 = kf.generatePublic(new DHPublicKeySpec(y2, p, g));
+ PublicKey pu3 = kf.generatePublic(new DHPublicKeySpec(y3, p, g));
- ka.init(pr1);
- ka.doPhase(pu2, true);
- byte[] n2 = ka.generateSecret();
- if (Arrays.equals(s2, n2) == false) {
- throw new Exception("mismatch 2");
- }
- System.out.println("short ok");
+ ka.init(pr1);
+ ka.doPhase(pu2, true);
+ byte[] n2 = ka.generateSecret();
+ if (Arrays.equals(s2, n2) == false) {
+ throw new Exception("mismatch 2");
+ }
+ System.out.println("short ok");
- ka.init(pr1);
- ka.doPhase(pu3, true);
- byte[] n3 = ka.generateSecret();
- if (Arrays.equals(s3, n3) == false) {
- throw new Exception("mismatch 3");
+ ka.init(pr1);
+ ka.doPhase(pu3, true);
+ byte[] n3 = ka.generateSecret();
+ if (Arrays.equals(s3, n3) == false) {
+ throw new Exception("mismatch 3");
+ }
+ System.out.println("normal ok");
+ } catch (Exception ex) {
+ System.out.println("Unexpected Exception: " + ex);
+ ex.printStackTrace();
+ throw ex;
}
- System.out.println("normal ok");
/*
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", provider);
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java Wed Mar 21 13:38:55 2012 -0700
@@ -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
*/
--- a/jdk/test/sun/tools/jcmd/jcmd_Output1.awk Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jcmd/jcmd_Output1.awk Wed Mar 21 13:38:55 2012 -0700
@@ -20,6 +20,11 @@
current=1;
}
+# or match an empty class name
+/^[0-9]+ $/ {
+ current=1;
+ }
+
{ totallines++; matched+=current; current=0; print $0 }
END {
--- a/jdk/test/sun/tools/jps/jps-l_Output1.awk Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jps/jps-l_Output1.awk Wed Mar 21 13:38:55 2012 -0700
@@ -20,6 +20,11 @@
matched++;
}
+# or match an empty class name
+/^[0-9]+ $/ {
+ matched++;
+ }
+
{ totallines++; print $0 }
END {
--- a/jdk/test/sun/tools/jps/jps_Output1.awk Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jps/jps_Output1.awk Wed Mar 21 13:38:55 2012 -0700
@@ -20,6 +20,11 @@
matched++;
}
+# or match an empty class name
+/^[0-9]+ $/ {
+ matched++;
+ }
+
{ totallines++; print $0 }
END {
--- a/jdk/test/sun/tools/jstat/jstatClassOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatClassOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -class 0 2>&1 | awk -f ${TESTSRC}/classOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -class 0 2>&1 | awk -f ${TESTSRC}/classOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatClassloadOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatClassloadOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -classload -J-Djstat.showUnsupported=true 0 2>&1 | awk -f ${TESTSRC}/classloadOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -classload -J-Djstat.showUnsupported=true 0 2>&1 | awk -f ${TESTSRC}/classloadOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatCompilerOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatCompilerOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -compiler 0 2>&1 | awk -f ${TESTSRC}/compilerOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -compiler 0 2>&1 | awk -f ${TESTSRC}/compilerOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatFileURITest1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatFileURITest1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -40,12 +40,12 @@
# characters into forward slash characters in an effort to convert
# TESTSRC into a canonical form useable as URI path.
cp ${TESTSRC}/hsperfdata_3433 .
- ${JSTAT} -J-XX:+UsePerfData -gcutil file:/`pwd`/hsperfdata_3433 2>&1 | awk -f ${TESTSRC}/fileURITest1.awk
+ ${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil file:/`pwd`/hsperfdata_3433 2>&1 | awk -f ${TESTSRC}/fileURITest1.awk
RC=$?
rm -f hsperfdata_3433 2>&1 > /dev/null
;;
*)
- ${JSTAT} -J-XX:+UsePerfData -gcutil file:${TESTSRC}/hsperfdata_3433 2>&1 | awk -f ${TESTSRC}/fileURITest1.awk
+ ${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil file:${TESTSRC}/hsperfdata_3433 2>&1 | awk -f ${TESTSRC}/fileURITest1.awk
RC=$?
;;
esac
--- a/jdk/test/sun/tools/jstat/jstatGcCapacityOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatGcCapacityOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gccapacity 0 2>&1 | awk -f ${TESTSRC}/gcCapacityOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gccapacity 0 2>&1 | awk -f ${TESTSRC}/gcCapacityOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatGcCauseOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatGcCauseOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -37,4 +37,4 @@
# class machine, ergonomics will automatically use UseParallelGC.
# The UseParallelGC collector does not currently update the gc cause counters.
-${JSTAT} -J-XX:+UsePerfData -J-XX:+UseSerialGC -gccause 0 2>&1 | awk -f ${TESTSRC}/gcCauseOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -J-XX:+UseSerialGC -gccause 0 2>&1 | awk -f ${TESTSRC}/gcCauseOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcnewcapacity 0 2>&1 | awk -f ${TESTSRC}/gcNewCapacityOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcnewcapacity 0 2>&1 | awk -f ${TESTSRC}/gcNewCapacityOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatGcNewOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatGcNewOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcnew 0 2>&1 | awk -f ${TESTSRC}/gcNewOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcnew 0 2>&1 | awk -f ${TESTSRC}/gcNewOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcoldcapacity 0 2>&1 | awk -f ${TESTSRC}/gcOldCapacityOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcoldcapacity 0 2>&1 | awk -f ${TESTSRC}/gcOldCapacityOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatGcOldOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatGcOldOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcold 0 2>&1 | awk -f ${TESTSRC}/gcOldOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcold 0 2>&1 | awk -f ${TESTSRC}/gcOldOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatGcOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatGcOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gc 0 2>&1 | awk -f ${TESTSRC}/gcOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gc 0 2>&1 | awk -f ${TESTSRC}/gcOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcpermcapacity 0 2>&1 | awk -f ${TESTSRC}/gcPermCapacityOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcpermcapacity 0 2>&1 | awk -f ${TESTSRC}/gcPermCapacityOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatLineCounts1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatLineCounts1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcutil 0 250 5 2>&1 | awk -f ${TESTSRC}/lineCounts1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil 0 250 5 2>&1 | awk -f ${TESTSRC}/lineCounts1.awk
--- a/jdk/test/sun/tools/jstat/jstatLineCounts2.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatLineCounts2.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcutil 0 2>&1 | awk -f ${TESTSRC}/lineCounts2.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil 0 2>&1 | awk -f ${TESTSRC}/lineCounts2.awk
--- a/jdk/test/sun/tools/jstat/jstatLineCounts3.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatLineCounts3.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcutil -h 10 0 250 10 2>&1 | awk -f ${TESTSRC}/lineCounts3.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil -h 10 0 250 10 2>&1 | awk -f ${TESTSRC}/lineCounts3.awk
--- a/jdk/test/sun/tools/jstat/jstatLineCounts4.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatLineCounts4.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcutil -h 10 0 250 11 2>&1 | awk -f ${TESTSRC}/lineCounts4.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil -h 10 0 250 11 2>&1 | awk -f ${TESTSRC}/lineCounts4.awk
--- a/jdk/test/sun/tools/jstat/jstatOptions1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatOptions1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,8 +33,8 @@
JSTAT="${TESTJAVA}/bin/jstat"
rm -f jstat.out1 jstat.out2 2>/dev/null
-${JSTAT} -J-XX:+UsePerfData -options > jstat.out1 2>&1
-${JSTAT} -J-XX:+UsePerfData -options -J-Djstat.showUnsupported=true > jstat.out2 2>&1
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -options > jstat.out1 2>&1
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -options -J-Djstat.showUnsupported=true > jstat.out2 2>&1
diff -w jstat.out1 ${TESTSRC}/options1.out
diff -w jstat.out2 ${TESTSRC}/options2.out
--- a/jdk/test/sun/tools/jstat/jstatPrintCompilationOutput1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatPrintCompilationOutput1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -35,4 +35,4 @@
# run with -Xcomp as jstat may complete too quickly to assure
# that compilation occurs.
-${JSTAT} -J-XX:+UsePerfData -J-Xcomp -printcompilation 0 2>&1 | awk -f ${TESTSRC}/printCompilationOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -J-Xcomp -printcompilation 0 2>&1 | awk -f ${TESTSRC}/printCompilationOutput1.awk
--- a/jdk/test/sun/tools/jstat/jstatSnap1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatSnap1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -snap 0 2>&1 | awk -f ${TESTSRC}/snap1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -snap 0 2>&1 | awk -f ${TESTSRC}/snap1.awk
--- a/jdk/test/sun/tools/jstat/jstatSnap2.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatSnap2.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -J-Djstat.showUnsupported=true -snap 0 2>&1 | awk -f ${TESTSRC}/snap2.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -J-Djstat.showUnsupported=true -snap 0 2>&1 | awk -f ${TESTSRC}/snap2.awk
--- a/jdk/test/sun/tools/jstat/jstatTimeStamp1.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstat/jstatTimeStamp1.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -33,4 +33,4 @@
JSTAT="${TESTJAVA}/bin/jstat"
-${JSTAT} -J-XX:+UsePerfData -gcutil -t 0 2>&1 | awk -f ${TESTSRC}/timeStamp1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil -t 0 2>&1 | awk -f ${TESTSRC}/timeStamp1.awk
--- a/jdk/test/sun/tools/jstatd/jpsOutput1.awk Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstatd/jpsOutput1.awk Wed Mar 21 13:38:55 2012 -0700
@@ -11,6 +11,10 @@
matched++;
}
+/^[0-9]+ $/ {
+ matched++;
+ }
+
{ totallines++; print $0 }
END {
--- a/jdk/test/sun/tools/jstatd/jstatdDefaults.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstatd/jstatdDefaults.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -60,7 +60,7 @@
exit 1
fi
-${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_PID}@${HOSTNAME} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil ${JSTATD_PID}@${HOSTNAME} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
RC=$?
if [ ${RC} -ne 0 ]
--- a/jdk/test/sun/tools/jstatd/jstatdExternalRegistry.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstatd/jstatdExternalRegistry.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -73,7 +73,7 @@
exit 1
fi
-${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_PID}@${HOSTNAME}:${PORT} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil ${JSTATD_PID}@${HOSTNAME}:${PORT} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
RC=$?
if [ ${RC} -ne 0 ]
--- a/jdk/test/sun/tools/jstatd/jstatdPort.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstatd/jstatdPort.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -65,7 +65,7 @@
exit 1
fi
-${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_PID}@${HOSTNAME}:${PORT} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil ${JSTATD_PID}@${HOSTNAME}:${PORT} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
RC=$?
if [ ${RC} -ne 0 ]
--- a/jdk/test/sun/tools/jstatd/jstatdServerName.sh Wed Mar 21 13:37:24 2012 -0700
+++ b/jdk/test/sun/tools/jstatd/jstatdServerName.sh Wed Mar 21 13:38:55 2012 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 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
@@ -86,8 +86,8 @@
exit 1
fi
-echo "running: ${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_1} 250 5"
-${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_1} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+echo "running: ${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_1} 250 5"
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_1} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
RC=$?
if [ ${RC} -ne 0 ]
@@ -95,8 +95,8 @@
echo "jstat output differs from expected output"
fi
-echo "running: ${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_2}/${SERVERNAME} 250 5"
-${JSTAT} -J-XX:+UsePerfData -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_2}/${SERVERNAME} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
+echo "running: ${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_2}/${SERVERNAME} 250 5"
+${JSTAT} -J-XX:+UsePerfData -J-Duser.language=en -gcutil ${JSTATD_1_PID}@${HOSTNAME}:${PORT_2}/${SERVERNAME} 250 5 2>&1 | awk -f ${TESTSRC}/jstatGcutilOutput1.awk
RC=$?
if [ ${RC} -ne 0 ]