Merge
This commit is contained in:
commit
f931c18437
jdk
make
src
macosx
share/classes
com/sun/crypto/provider
java
javax/swing
sun
rmi/rmic
security/pkcs11
solaris
native
java/util
sun
java2d/x11
nio
security
npt
windows/native/sun/windows
test
ProblemList.txt
com/sun
crypto/provider/KeyAgreement
jdi
java
awt/Frame/WindowDragTest
io
File/isDirectory
Serializable
badSubstByReplace
replaceStringArray
replaceWithNull
verifyDynamicObjHandleTable
lang/management/ManagementFactory
net
nio/file/Files
text/Bidi
util/jar/Manifest
javax
sun
management/HotspotClassLoadingMBean
misc/Cleaner
nio/cs/OLD
security
krb5/auto
pkcs11/KeyAgreement
ssl/com/sun/net/ssl/SSLSecurity
tools
jcmd
jps
jstat
jstatClassOutput1.shjstatClassloadOutput1.shjstatCompilerOutput1.shjstatFileURITest1.shjstatGcCapacityOutput1.shjstatGcCauseOutput1.shjstatGcNewCapacityOutput1.shjstatGcNewOutput1.shjstatGcOldCapacityOutput1.shjstatGcOldOutput1.shjstatGcOutput1.shjstatGcPermCapacityOutput1.shjstatLineCounts1.shjstatLineCounts2.shjstatLineCounts3.shjstatLineCounts4.shjstatOptions1.shjstatPrintCompilationOutput1.shjstatSnap1.shjstatSnap2.shjstatTimeStamp1.sh
jstatd
@ -348,7 +348,13 @@ ifneq ($(PLATFORM), windows)
|
||||
" 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
|
||||
|
@ -64,7 +64,7 @@ ACTIVE_JSR_PKGS= \
|
||||
javax.management.* \
|
||||
javax.script \
|
||||
javax.sql.* \
|
||||
javax.tools \
|
||||
javax.tools.* \
|
||||
javax.xml.* \
|
||||
org.w3c.* \
|
||||
org.xml.sax
|
||||
@ -218,6 +218,7 @@ CORE_PKGS = \
|
||||
javax.swing.plaf.nimbus \
|
||||
javax.swing.plaf.synth \
|
||||
javax.tools \
|
||||
javax.tools.annotation \
|
||||
javax.transaction \
|
||||
javax.transaction.xa \
|
||||
javax.xml.parsers \
|
||||
|
@ -159,7 +159,9 @@ ifeq ($(NATIVE_ECC_AVAILABLE), true)
|
||||
$(PKGDIR)/ECDSASignature.java \
|
||||
$(PKGDIR)/ECKeyPairGenerator.java
|
||||
|
||||
JAVAHFLAGS += -Xbootclasspath/p:$(CLASSDESTDIR)
|
||||
JAVAHFLAGS = -bootclasspath \
|
||||
"$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
|
||||
|
||||
|
||||
#
|
||||
# C and C++ files
|
||||
|
@ -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 @@ OTHER_INCLUDES += \
|
||||
# Rules
|
||||
#
|
||||
CLASSDESTDIR = $(TEMPDIR)/classes
|
||||
JAVAHFLAGS += -Xbootclasspath/p:$(CLASSDESTDIR)
|
||||
JAVAHFLAGS = -bootclasspath \
|
||||
"$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
|
||||
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
|
||||
|
@ -150,7 +150,8 @@ OTHER_INCLUDES += \
|
||||
# Rules
|
||||
#
|
||||
CLASSDESTDIR = $(TEMPDIR)/classes
|
||||
JAVAHFLAGS = -bootclasspath "$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
|
||||
JAVAHFLAGS = -bootclasspath \
|
||||
"$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
|
||||
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
|
||||
|
@ -522,11 +522,6 @@ public abstract class LWToolkit extends SunToolkit implements Runnable {
|
||||
postEvent(targetToAppContext(event.getSource()), event);
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns true if the application (one of its windows) owns keyboard focus.
|
||||
*/
|
||||
public abstract boolean isApplicationActive();
|
||||
|
||||
// use peer's back buffer to implement non-opaque windows.
|
||||
@Override
|
||||
public boolean needUpdateWindow() {
|
||||
|
@ -1067,11 +1067,7 @@ public class LWWindowPeer
|
||||
return false;
|
||||
}
|
||||
|
||||
// Cross-app activation requests are not allowed.
|
||||
if (cause != CausedFocusEvent.Cause.MOUSE_EVENT &&
|
||||
!((LWToolkit)Toolkit.getDefaultToolkit()).isApplicationActive())
|
||||
{
|
||||
focusLog.fine("the app is inactive, so the request is rejected");
|
||||
if (platformWindow.rejectFocusRequest(cause)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,7 @@ package sun.lwawt;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
import sun.awt.CausedFocusEvent;
|
||||
import sun.java2d.SurfaceData;
|
||||
|
||||
// TODO Is it worth to generify this interface, like that:
|
||||
@ -117,6 +118,8 @@ public interface PlatformWindow {
|
||||
|
||||
public void updateFocusableWindowState();
|
||||
|
||||
public boolean rejectFocusRequest(CausedFocusEvent.Cause cause);
|
||||
|
||||
public boolean requestWindowFocus();
|
||||
|
||||
/*
|
||||
|
@ -38,6 +38,8 @@ import java.awt.event.*;
|
||||
public class CEmbeddedFrame extends EmbeddedFrame {
|
||||
|
||||
private CPlatformResponder responder;
|
||||
private boolean focused = true;
|
||||
private boolean parentWindowActive = true;
|
||||
|
||||
public CEmbeddedFrame() {
|
||||
show();
|
||||
@ -94,4 +96,31 @@ public class CEmbeddedFrame extends EmbeddedFrame {
|
||||
public void handleInputEvent(String text) {
|
||||
new RuntimeException("Not implemented");
|
||||
}
|
||||
|
||||
public void handleFocusEvent(boolean focused) {
|
||||
this.focused = focused;
|
||||
updateOverlayWindowActiveState();
|
||||
}
|
||||
|
||||
public void handleWindowFocusEvent(boolean parentWindowActive) {
|
||||
this.parentWindowActive = parentWindowActive;
|
||||
updateOverlayWindowActiveState();
|
||||
}
|
||||
|
||||
public boolean isParentWindowActive() {
|
||||
return parentWindowActive;
|
||||
}
|
||||
|
||||
/*
|
||||
* May change appearance of contents of window, and generate a
|
||||
* WINDOW_ACTIVATED event.
|
||||
*/
|
||||
private void updateOverlayWindowActiveState() {
|
||||
final boolean showAsFocused = parentWindowActive && focused;
|
||||
dispatchEvent(
|
||||
new FocusEvent(this, showAsFocused ?
|
||||
FocusEvent.FOCUS_GAINED :
|
||||
FocusEvent.FOCUS_LOST));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -33,17 +33,23 @@ import sun.java2d.SurfaceData;
|
||||
|
||||
import sun.awt.CGraphicsConfig;
|
||||
import sun.awt.CGraphicsDevice;
|
||||
import sun.awt.CausedFocusEvent;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.BufferCapabilities.FlipContents;
|
||||
|
||||
import sun.util.logging.PlatformLogger;
|
||||
|
||||
/*
|
||||
* Provides a lightweight implementation of the EmbeddedFrame.
|
||||
*/
|
||||
public class CPlatformEmbeddedFrame implements PlatformWindow {
|
||||
|
||||
private static final PlatformLogger focusLogger = PlatformLogger.getLogger("sun.lwawt.macosx.focus.CPlatformEmbeddedFrame");
|
||||
|
||||
private CGLLayer windowLayer;
|
||||
private LWWindowPeer peer;
|
||||
private CEmbeddedFrame target;
|
||||
|
||||
private volatile int screenX = 0;
|
||||
private volatile int screenY = 0;
|
||||
@ -52,6 +58,7 @@ public class CPlatformEmbeddedFrame implements PlatformWindow {
|
||||
public void initialize(Window target, final LWWindowPeer peer, PlatformWindow owner) {
|
||||
this.peer = peer;
|
||||
this.windowLayer = new CGLLayer(peer);
|
||||
this.target = (CEmbeddedFrame)target;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -148,6 +155,18 @@ public class CPlatformEmbeddedFrame implements PlatformWindow {
|
||||
@Override
|
||||
public void updateFocusableWindowState() {}
|
||||
|
||||
@Override
|
||||
public boolean rejectFocusRequest(CausedFocusEvent.Cause cause) {
|
||||
// Cross-app activation requests are not allowed.
|
||||
if (cause != CausedFocusEvent.Cause.MOUSE_EVENT &&
|
||||
!target.isParentWindowActive())
|
||||
{
|
||||
focusLogger.fine("the embedder is inactive, so the request is rejected");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean requestWindowFocus() {
|
||||
return true;
|
||||
|
@ -65,6 +65,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
|
||||
|
||||
// Loger to report issues happened during execution but that do not affect functionality
|
||||
private static final PlatformLogger logger = PlatformLogger.getLogger("sun.lwawt.macosx.CPlatformWindow");
|
||||
private static final PlatformLogger focusLogger = PlatformLogger.getLogger("sun.lwawt.macosx.focus.CPlatformWindow");
|
||||
|
||||
// for client properties
|
||||
public static final String WINDOW_BRUSH_METAL_LOOK = "apple.awt.brushMetalLook";
|
||||
@ -112,6 +113,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
|
||||
static final int MINIMIZABLE = 1 << 8;
|
||||
|
||||
static final int RESIZABLE = 1 << 9; // both a style bit and prop bit
|
||||
static final int NONACTIVATING = 1 << 24;
|
||||
|
||||
static final int _STYLE_PROP_BITMASK = DECORATED | TEXTURED | UNIFIED | UTILITY | HUD | SHEET | CLOSEABLE | MINIMIZABLE | RESIZABLE;
|
||||
|
||||
@ -127,9 +129,6 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
|
||||
|
||||
static final int _METHOD_PROP_BITMASK = RESIZABLE | HAS_SHADOW | ZOOMABLE | ALWAYS_ON_TOP | HIDES_ON_DEACTIVATE | DRAGGABLE_BACKGROUND | DOCUMENT_MODIFIED | FULLSCREENABLE;
|
||||
|
||||
// not sure
|
||||
static final int POPUP = 1 << 14;
|
||||
|
||||
// corresponds to callback-based properties
|
||||
static final int SHOULD_BECOME_KEY = 1 << 12;
|
||||
static final int SHOULD_BECOME_MAIN = 1 << 13;
|
||||
@ -264,10 +263,6 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
|
||||
// defaults style bits
|
||||
int styleBits = DECORATED | HAS_SHADOW | CLOSEABLE | MINIMIZABLE | ZOOMABLE | RESIZABLE;
|
||||
|
||||
if (target.getName() == "###overrideRedirect###") {
|
||||
styleBits = SET(styleBits, POPUP, true);
|
||||
}
|
||||
|
||||
if (isNativelyFocusableWindow()) {
|
||||
styleBits = SET(styleBits, SHOULD_BECOME_KEY, true);
|
||||
styleBits = SET(styleBits, SHOULD_BECOME_MAIN, true);
|
||||
@ -275,6 +270,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
|
||||
|
||||
final boolean isFrame = (target instanceof Frame);
|
||||
final boolean isDialog = (target instanceof Dialog);
|
||||
final boolean isPopup = (target.getType() == Window.Type.POPUP);
|
||||
if (isDialog) {
|
||||
styleBits = SET(styleBits, MINIMIZABLE, false);
|
||||
}
|
||||
@ -304,8 +300,10 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
|
||||
}
|
||||
|
||||
// If the target is a dialog, popup or tooltip we want it to ignore the brushed metal look.
|
||||
if (!isDialog && IS(styleBits, POPUP)) {
|
||||
if (isPopup) {
|
||||
styleBits = SET(styleBits, TEXTURED, true);
|
||||
// Popups in applets don't activate applet's process
|
||||
styleBits = SET(styleBits, NONACTIVATING, true);
|
||||
}
|
||||
|
||||
if (target instanceof javax.swing.RootPaneContainer) {
|
||||
@ -498,12 +496,19 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
|
||||
// If it ain't blocked, or is being hidden, go regular way
|
||||
if (visible) {
|
||||
CWrapper.NSWindow.makeFirstResponder(nsWindowPtr, contentView.getAWTView());
|
||||
boolean isKeyWindow = CWrapper.NSWindow.isKeyWindow(nsWindowPtr);
|
||||
if (!isKeyWindow) {
|
||||
CWrapper.NSWindow.makeKeyAndOrderFront(nsWindowPtr);
|
||||
|
||||
boolean isPopup = (target.getType() == Window.Type.POPUP);
|
||||
if (isPopup) {
|
||||
// Popups in applets don't activate applet's process
|
||||
CWrapper.NSWindow.orderFrontRegardless(nsWindowPtr);
|
||||
} else {
|
||||
CWrapper.NSWindow.orderFront(nsWindowPtr);
|
||||
}
|
||||
|
||||
boolean isKeyWindow = CWrapper.NSWindow.isKeyWindow(nsWindowPtr);
|
||||
if (!isKeyWindow) {
|
||||
CWrapper.NSWindow.makeKeyWindow(nsWindowPtr);
|
||||
}
|
||||
} else {
|
||||
CWrapper.NSWindow.orderOut(nsWindowPtr);
|
||||
}
|
||||
@ -599,8 +604,21 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
|
||||
nativeSetNSWindowMinMax(nsWindowPtr, min.getWidth(), min.getHeight(), max.getWidth(), max.getHeight());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean rejectFocusRequest(CausedFocusEvent.Cause cause) {
|
||||
// Cross-app activation requests are not allowed.
|
||||
if (cause != CausedFocusEvent.Cause.MOUSE_EVENT &&
|
||||
!((LWCToolkit)Toolkit.getDefaultToolkit()).isApplicationActive())
|
||||
{
|
||||
focusLogger.fine("the app is inactive, so the request is rejected");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean requestWindowFocus() {
|
||||
|
||||
long ptr = getNSWindowPtr();
|
||||
if (CWrapper.NSWindow.canBecomeMainWindow(ptr)) {
|
||||
CWrapper.NSWindow.makeMainWindow(ptr);
|
||||
@ -751,6 +769,11 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
|
||||
* Callbacks from the AWTWindow and AWTView objc classes.
|
||||
*************************************************************/
|
||||
private void deliverWindowFocusEvent(boolean gained){
|
||||
// Fix for 7150349: ingore "gained" notifications when the app is inactive.
|
||||
if (gained && !((LWCToolkit)Toolkit.getDefaultToolkit()).isApplicationActive()) {
|
||||
focusLogger.fine("the app is inactive, so the notification is ignored");
|
||||
return;
|
||||
}
|
||||
peer.notifyActivation(gained);
|
||||
}
|
||||
|
||||
|
@ -47,6 +47,7 @@ public final class CWrapper {
|
||||
public static native void setLevel(long window, int level);
|
||||
|
||||
public static native void makeKeyAndOrderFront(long window);
|
||||
public static native void makeKeyWindow(long window);
|
||||
public static native void makeMainWindow(long window);
|
||||
public static native boolean canBecomeMainWindow(long window);
|
||||
public static native boolean isKeyWindow(long window);
|
||||
|
@ -686,7 +686,10 @@ public class LWCToolkit extends LWToolkit {
|
||||
return sunAwtDisableCALayers.booleanValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
/*
|
||||
* Returns true if the application (one of its windows) owns keyboard focus.
|
||||
*/
|
||||
public native boolean isApplicationActive();
|
||||
|
||||
/************************
|
||||
|
@ -812,7 +812,7 @@ JNF_CLASS_CACHE(jc_CInputMethod, "sun/lwawt/macosx/CInputMethod");
|
||||
// Unicode value.
|
||||
NSUInteger utf8Length = [aString lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
|
||||
|
||||
if ([self hasMarkedText] || !fProcessingKeystroke || (utf8Length > 2)) {
|
||||
if ([self hasMarkedText] || !fProcessingKeystroke || (utf8Length > 1)) {
|
||||
JNIEnv *env = [ThreadUtilities getJNIEnv];
|
||||
|
||||
static JNF_MEMBER_CACHE(jm_selectPreviousGlyph, jc_CInputMethod, "selectPreviousGlyph", "()V");
|
||||
|
@ -102,11 +102,12 @@ static JNF_CLASS_CACHE(jc_CPlatformWindow, "sun/lwawt/macosx/CPlatformWindow");
|
||||
type |= NSBorderlessWindowMask;
|
||||
}
|
||||
|
||||
if (IS(styleBits, TEXTURED)) type |= NSTexturedBackgroundWindowMask;
|
||||
if (IS(styleBits, UNIFIED)) type |= NSUnifiedTitleAndToolbarWindowMask;
|
||||
if (IS(styleBits, UTILITY)) type |= NSUtilityWindowMask;
|
||||
if (IS(styleBits, HUD)) type |= NSHUDWindowMask;
|
||||
if (IS(styleBits, SHEET)) type |= NSDocModalWindowMask;
|
||||
if (IS(styleBits, TEXTURED)) type |= NSTexturedBackgroundWindowMask;
|
||||
if (IS(styleBits, UNIFIED)) type |= NSUnifiedTitleAndToolbarWindowMask;
|
||||
if (IS(styleBits, UTILITY)) type |= NSUtilityWindowMask;
|
||||
if (IS(styleBits, HUD)) type |= NSHUDWindowMask;
|
||||
if (IS(styleBits, SHEET)) type |= NSDocModalWindowMask;
|
||||
if (IS(styleBits, NONACTIVATING)) type |= NSNonactivatingPanelMask;
|
||||
|
||||
return type;
|
||||
}
|
||||
|
@ -74,6 +74,26 @@ JNF_COCOA_ENTER(env);
|
||||
JNF_COCOA_EXIT(env);
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_lwawt_macosx_CWrapper$NSWindow
|
||||
* Method: makeKeyWindow
|
||||
* Signature: (J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_lwawt_macosx_CWrapper_00024NSWindow_makeKeyWindow
|
||||
(JNIEnv *env, jclass cls, jlong windowPtr)
|
||||
{
|
||||
JNF_COCOA_ENTER(env);
|
||||
|
||||
NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
|
||||
[JNFRunLoop performOnMainThread:@selector(makeKeyWindow)
|
||||
on:window
|
||||
withObject:nil
|
||||
waitUntilDone:NO];
|
||||
|
||||
JNF_COCOA_EXIT(env);
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: sun_lwawt_macosx_CWrapper$NSWindow
|
||||
* Method: makeMainWindow
|
||||
|
@ -401,18 +401,21 @@ JNIEXPORT jboolean JNICALL Java_sun_lwawt_macosx_LWCToolkit_isCapsLockOn
|
||||
JNIEXPORT jboolean JNICALL Java_sun_lwawt_macosx_LWCToolkit_isApplicationActive
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
__block jboolean active = JNI_FALSE;
|
||||
__block jboolean active = JNI_FALSE;
|
||||
|
||||
AWT_ASSERT_NOT_APPKIT_THREAD;
|
||||
JNF_COCOA_ENTER(env);
|
||||
|
||||
if ([NSThread isMainThread]) {
|
||||
active = (jboolean)[NSRunningApplication currentApplication].active;
|
||||
} else {
|
||||
[JNFRunLoop performOnMainThreadWaiting:YES withBlock:^() {
|
||||
active = (jboolean)[NSRunningApplication currentApplication].active;
|
||||
active = (jboolean)[NSRunningApplication currentApplication].active;
|
||||
}];
|
||||
}
|
||||
|
||||
JNF_COCOA_EXIT(env);
|
||||
|
||||
return active;
|
||||
return active;
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,33 +31,31 @@
|
||||
#import <JavaRuntimeSupport/JavaRuntimeSupport.h>
|
||||
|
||||
|
||||
// returns 10.7 for Lion, 10.6 for SnowLeopard etc.
|
||||
double getOSXMajorVersion() {
|
||||
char *version = JRSCopyOSVersion();
|
||||
|
||||
if (version == NULL) return 0.0;
|
||||
|
||||
char temp[32];
|
||||
strlcpy(temp, version, sizeof(temp));
|
||||
free(version);
|
||||
|
||||
if (strlen(temp) < 3) {
|
||||
return 0.0;
|
||||
// returns 107 for Lion, 106 for SnowLeopard etc.
|
||||
int getOSXMajorVersion() {
|
||||
char *ver = JRSCopyOSVersion();
|
||||
if (ver == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (temp[2] != '.') { // Third char must be a '.'
|
||||
return 0.0;
|
||||
int len = strlen(ver);
|
||||
int v = 0;
|
||||
|
||||
// Third char must be a '.'
|
||||
if (len >= 3 && ver[2] == '.') {
|
||||
int i;
|
||||
|
||||
v = (ver[0] - '0') * 10 + (ver[1] - '0');
|
||||
for (i = 3; i < len && isdigit(ver[i]); ++i) {
|
||||
v = v * 10 + (ver[i] - '0');
|
||||
}
|
||||
}
|
||||
|
||||
char *ptr = strchr(temp+3, '.'); // remove the second . if one exists.
|
||||
if (ptr != NULL) {
|
||||
*ptr = 0;
|
||||
}
|
||||
|
||||
return atof(temp);
|
||||
free(ver);
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
BOOL isSnowLeopardOrLower() {
|
||||
return (getOSXMajorVersion() < 10.7);
|
||||
return (getOSXMajorVersion() < 107);
|
||||
}
|
||||
|
@ -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.InvalidKeyException;
|
||||
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 @@ extends KeyAgreementSpi {
|
||||
protected byte[] engineGenerateSecret()
|
||||
throws IllegalStateException
|
||||
{
|
||||
if (generateSecret == false) {
|
||||
throw new IllegalStateException
|
||||
("Key agreement has not been completed yet");
|
||||
}
|
||||
|
||||
// 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;
|
||||
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
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -301,39 +285,51 @@ extends KeyAgreementSpi {
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
return secret.length - 1;
|
||||
|
||||
} else {
|
||||
if ((sharedSecret.length - offset) < secret.length) {
|
||||
throw new ShortBufferException
|
||||
("Buffer too short to hold shared secret");
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
// Reset the key agreement after checking for ShortBufferException
|
||||
// above, so user can recover w/o losing internal state
|
||||
generateSecret = false;
|
||||
|
||||
/*
|
||||
* 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 {
|
||||
// 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");
|
||||
}
|
||||
}
|
||||
}
|
||||
return expectedLen;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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 javax.management.StandardMBean;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import java.util.HashSet;
|
||||
import java.security.AccessController;
|
||||
import java.security.Permission;
|
||||
import java.security.PrivilegedAction;
|
||||
@ -787,7 +787,7 @@ public class ManagementFactory {
|
||||
getPlatformManagementInterfaces()
|
||||
{
|
||||
Set<Class<? extends PlatformManagedObject>> result =
|
||||
new TreeSet<>();
|
||||
new HashSet<>();
|
||||
for (PlatformComponent component: PlatformComponent.values()) {
|
||||
result.add(component.getMXBeanInterface());
|
||||
}
|
||||
|
@ -207,6 +207,9 @@ class InMemoryCookieStore implements CookieStore {
|
||||
public boolean removeAll() {
|
||||
lock.lock();
|
||||
try {
|
||||
if (cookieJar.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
cookieJar.clear();
|
||||
domainIndex.clear();
|
||||
uriIndex.clear();
|
||||
|
@ -34,6 +34,8 @@ import java.io.IOException;
|
||||
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 @@ public final class Currency implements Serializable {
|
||||
|
||||
// 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 @@ public final class Currency implements Serializable {
|
||||
|
||||
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 @@ public final class Currency implements Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -400,6 +400,8 @@ public class Manifest implements Cloneable {
|
||||
public byte peek() throws IOException {
|
||||
if (pos == count)
|
||||
fill();
|
||||
if (pos == count)
|
||||
return -1; // nothing left in buffer
|
||||
return buf[pos];
|
||||
}
|
||||
|
||||
|
@ -252,6 +252,10 @@ public class DefaultListSelectionModel implements ListSelectionModel, Cloneable,
|
||||
|
||||
// Updates first and last change indices
|
||||
private void markAsDirty(int r) {
|
||||
if (r == -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
firstAdjustedIndex = Math.min(firstAdjustedIndex, r);
|
||||
lastAdjustedIndex = Math.max(lastAdjustedIndex, r);
|
||||
}
|
||||
@ -358,16 +362,12 @@ public class DefaultListSelectionModel implements ListSelectionModel, Cloneable,
|
||||
private void updateLeadAnchorIndices(int anchorIndex, int leadIndex) {
|
||||
if (leadAnchorNotificationEnabled) {
|
||||
if (this.anchorIndex != anchorIndex) {
|
||||
if (this.anchorIndex != -1) { // The unassigned state.
|
||||
markAsDirty(this.anchorIndex);
|
||||
}
|
||||
markAsDirty(this.anchorIndex);
|
||||
markAsDirty(anchorIndex);
|
||||
}
|
||||
|
||||
if (this.leadIndex != leadIndex) {
|
||||
if (this.leadIndex != -1) { // The unassigned state.
|
||||
markAsDirty(this.leadIndex);
|
||||
}
|
||||
markAsDirty(this.leadIndex);
|
||||
markAsDirty(leadIndex);
|
||||
}
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ public class BatchEnvironment extends sun.tools.javac.BatchEnvironment {
|
||||
}
|
||||
|
||||
/** 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 class BatchEnvironment extends sun.tools.javac.BatchEnvironment {
|
||||
*/
|
||||
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();
|
||||
|
@ -73,14 +73,15 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
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 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
destDir = null;
|
||||
flags = F_WARNINGS;
|
||||
tm = System.currentTimeMillis();
|
||||
classes = new Vector();
|
||||
classes = new Vector<>();
|
||||
nowrite = false;
|
||||
nocompile = false;
|
||||
keepGenerated = false;
|
||||
@ -191,7 +192,7 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
if (generatorArgs == null) {
|
||||
return false;
|
||||
}
|
||||
generators = new Vector();
|
||||
generators = new Vector<>();
|
||||
|
||||
// Pre-process command line for @file arguments
|
||||
try {
|
||||
@ -411,7 +412,7 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
|
||||
// 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 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
|
||||
// Yes, so switch to the new one...
|
||||
|
||||
environmentClass = envClass;
|
||||
environmentClass = envClass.asSubclass(BatchEnvironment.class);
|
||||
|
||||
} else {
|
||||
|
||||
@ -495,8 +496,9 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
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 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
*/
|
||||
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 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
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 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
|
||||
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 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
|
||||
/*
|
||||
* Compile a single class.
|
||||
* Fallthrough is intentional
|
||||
*/
|
||||
@SuppressWarnings("fallthrough")
|
||||
public boolean compileClass (ClassDeclaration c,
|
||||
ByteArrayOutputStream buf,
|
||||
BatchEnvironment env)
|
||||
@ -879,6 +883,6 @@ public class Main implements sun.rmi.rmic.Constants {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ import com.sun.corba.se.impl.util.Utility;
|
||||
*/
|
||||
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 @@ public class RMIGenerator implements RMIConstants, Generator {
|
||||
return false;
|
||||
}
|
||||
explicitVersion = arg;
|
||||
version = ((Integer) versionOptions.get(arg)).intValue();
|
||||
version = versionOptions.get(arg);
|
||||
argv[i] = null;
|
||||
}
|
||||
}
|
||||
@ -519,7 +519,7 @@ public class RMIGenerator implements RMIConstants, Generator {
|
||||
* 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 @@ public class RMIGenerator implements RMIConstants, Generator {
|
||||
* 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 @@ public class RMIGenerator implements RMIConstants, Generator {
|
||||
* 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 @@ public class RMIGenerator implements RMIConstants, Generator {
|
||||
* 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
|
||||
|
@ -455,7 +455,7 @@ public class Main {
|
||||
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);
|
||||
|
@ -69,7 +69,7 @@ public final class Resources {
|
||||
format = "missing resource key: key = \"" + key + "\", " +
|
||||
"arguments = \"{0}\", \"{1}\", \"{2}\"";
|
||||
}
|
||||
return MessageFormat.format(format, args);
|
||||
return MessageFormat.format(format, (Object[]) args);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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 @@ final class P11KeyAgreement extends KeyAgreementSpi {
|
||||
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 {
|
||||
|
@ -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 @@ getPathName(const char *dir, const char *name) {
|
||||
/*
|
||||
* Scans the specified directory and its subdirectories to find a
|
||||
* zoneinfo file which has the same content as /etc/localtime on Linux
|
||||
* or /usr/share/lib/zoneinfo/localtime (most likely a symbolic link)
|
||||
* on Solaris given in 'buf'. Returns a zone ID if found, otherwise,
|
||||
* NULL is returned.
|
||||
* or /usr/share/lib/zoneinfo/localtime on Solaris given in 'buf'.
|
||||
* If file is symbolic link, then the contents it points to are in buf.
|
||||
* Returns a zone ID if found, otherwise, NULL is returned.
|
||||
*/
|
||||
static char *
|
||||
findZoneinfoFile(char *buf, size_t size, const char *dir)
|
||||
@ -280,21 +280,27 @@ getPlatformTimeZoneID()
|
||||
tz = getZoneName(linkbuf);
|
||||
if (tz != NULL) {
|
||||
tz = strdup(tz);
|
||||
return tz;
|
||||
}
|
||||
return tz;
|
||||
}
|
||||
|
||||
/*
|
||||
* If it's a regular file, we need to find out the same zoneinfo file
|
||||
* that has been copied as /etc/localtime.
|
||||
* If initial symbolic link resolution failed, we should treat target
|
||||
* file as a regular file.
|
||||
*/
|
||||
if ((fd = open(DEFAULT_ZONEINFO_FILE, O_RDONLY)) == -1) {
|
||||
return NULL;
|
||||
}
|
||||
if (fstat(fd, &statbuf) == -1) {
|
||||
(void) close(fd);
|
||||
return NULL;
|
||||
}
|
||||
size = (size_t) statbuf.st_size;
|
||||
buf = (char *) malloc(size);
|
||||
if (buf == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
if ((fd = open(DEFAULT_ZONEINFO_FILE, O_RDONLY)) == -1) {
|
||||
free((void *) buf);
|
||||
(void) close(fd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -541,6 +541,8 @@ XImage* X11SD_CreateSharedImage(X11SDOps *xsdo,
|
||||
J2dRlsTraceLn1(J2D_TRACE_ERROR,
|
||||
"X11SD_SetupSharedSegment shmget has failed: %s",
|
||||
strerror(errno));
|
||||
free((void *)shminfo);
|
||||
XDestroyImage(img);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -550,6 +552,8 @@ XImage* X11SD_CreateSharedImage(X11SDOps *xsdo,
|
||||
J2dRlsTraceLn1(J2D_TRACE_ERROR,
|
||||
"X11SD_SetupSharedSegment shmat has failed: %s",
|
||||
strerror(errno));
|
||||
free((void *)shminfo);
|
||||
XDestroyImage(img);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -570,6 +574,9 @@ XImage* X11SD_CreateSharedImage(X11SDOps *xsdo,
|
||||
J2dRlsTraceLn1(J2D_TRACE_ERROR,
|
||||
"X11SD_SetupSharedSegment XShmAttach has failed: %s",
|
||||
strerror(errno));
|
||||
shmdt(shminfo->shmaddr);
|
||||
free((void *)shminfo);
|
||||
XDestroyImage(img);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -1345,13 +1352,10 @@ void X11SD_DisposeXImage(XImage * image) {
|
||||
#ifdef MITSHM
|
||||
if (image->obdata != NULL) {
|
||||
X11SD_DropSharedSegment((XShmSegmentInfo*)image->obdata);
|
||||
} else {
|
||||
free(image->data);
|
||||
image->obdata = NULL;
|
||||
}
|
||||
#else
|
||||
free(image->data);
|
||||
#endif /* MITSHM */
|
||||
XFree(image);
|
||||
XDestroyImage(image);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include "nio_util.h"
|
||||
#include <limits.h>
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_sun_nio_ch_DatagramDispatcher_read0(JNIEnv *env, jclass clazz,
|
||||
@ -60,23 +61,14 @@ Java_sun_nio_ch_DatagramDispatcher_readv0(JNIEnv *env, jclass clazz,
|
||||
ssize_t result = 0;
|
||||
struct iovec *iov = (struct iovec *)jlong_to_ptr(address);
|
||||
struct msghdr m;
|
||||
if (len > 16) {
|
||||
len = 16;
|
||||
if (len > IOV_MAX) {
|
||||
len = IOV_MAX;
|
||||
}
|
||||
|
||||
m.msg_name = NULL;
|
||||
m.msg_namelen = 0;
|
||||
// initialize the message
|
||||
memset(&m, 0, sizeof(m));
|
||||
m.msg_iov = iov;
|
||||
m.msg_iovlen = len;
|
||||
#ifdef __solaris__
|
||||
m.msg_accrights = NULL;
|
||||
m.msg_accrightslen = 0;
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || defined(_ALLBSD_SOURCE)
|
||||
m.msg_control = NULL;
|
||||
m.msg_controllen = 0;
|
||||
#endif
|
||||
|
||||
result = recvmsg(fd, &m, 0);
|
||||
if (result < 0 && errno == ECONNREFUSED) {
|
||||
@ -108,23 +100,14 @@ Java_sun_nio_ch_DatagramDispatcher_writev0(JNIEnv *env, jclass clazz,
|
||||
struct iovec *iov = (struct iovec *)jlong_to_ptr(address);
|
||||
struct msghdr m;
|
||||
ssize_t result = 0;
|
||||
if (len > 16) {
|
||||
len = 16;
|
||||
if (len > IOV_MAX) {
|
||||
len = IOV_MAX;
|
||||
}
|
||||
|
||||
m.msg_name = NULL;
|
||||
m.msg_namelen = 0;
|
||||
// initialize the message
|
||||
memset(&m, 0, sizeof(m));
|
||||
m.msg_iov = iov;
|
||||
m.msg_iovlen = len;
|
||||
#ifdef __solaris__
|
||||
m.msg_accrights = NULL;
|
||||
m.msg_accrightslen = 0;
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) || defined(_ALLBSD_SOURCE)
|
||||
m.msg_control = NULL;
|
||||
m.msg_controllen = 0;
|
||||
#endif
|
||||
|
||||
result = sendmsg(fd, &m, 0);
|
||||
if (result < 0 && errno == ECONNREFUSED) {
|
||||
|
@ -30,9 +30,6 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <dlfcn.h>
|
||||
#ifndef __APPLE__
|
||||
#include <link.h>
|
||||
#endif
|
||||
|
||||
#ifdef __solaris__
|
||||
#include <strings.h>
|
||||
|
@ -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) */
|
||||
|
@ -28,9 +28,6 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <dlfcn.h>
|
||||
#ifndef __APPLE__
|
||||
#include <link.h>
|
||||
#endif
|
||||
|
||||
#include <jni_util.h>
|
||||
|
||||
|
@ -64,9 +64,6 @@
|
||||
#include <assert.h>
|
||||
|
||||
#include <dlfcn.h>
|
||||
#ifndef __APPLE__
|
||||
#include <link.h>
|
||||
#endif
|
||||
|
||||
#include <jni.h>
|
||||
|
||||
|
@ -29,9 +29,6 @@
|
||||
#include <assert.h>
|
||||
|
||||
#include <dlfcn.h>
|
||||
#ifndef __APPLE__
|
||||
#include <link.h>
|
||||
#endif
|
||||
|
||||
#include <winscard.h>
|
||||
|
||||
|
@ -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"
|
||||
|
@ -302,6 +302,7 @@ void AwtComponent::Dispose()
|
||||
delete m_childList;
|
||||
|
||||
DestroyDropTarget();
|
||||
ReleaseDragCapture(0);
|
||||
|
||||
if (m_myControlID != 0) {
|
||||
AwtComponent* parent = GetParent();
|
||||
|
@ -212,7 +212,7 @@ java/io/File/MaxPathLength.java windows-all
|
||||
# 7076644
|
||||
java/io/File/Basic.java windows-all
|
||||
|
||||
# Test needs AWT window server, does not work headless
|
||||
# 7145435 - Test needs AWT window server, does not work headless
|
||||
java/io/Serializable/resolveClass/deserializeButton/run.sh macosx-all
|
||||
|
||||
############################################################################
|
||||
@ -225,9 +225,6 @@ java/nio/channels/Selector/Wakeup.java windows-all
|
||||
# 7052549
|
||||
java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java windows-all
|
||||
|
||||
# 6963118
|
||||
java/nio/channels/Selector/Wakeup.java windows-all
|
||||
|
||||
# 7133499, 7133497
|
||||
java/nio/channels/AsyncCloseAndInterrupt.java macosx-all
|
||||
java/nio/channels/AsynchronousFileChannel/Lock.java macosx-all
|
||||
@ -259,9 +256,6 @@ java/rmi/registry/readTest/readTest.sh windows-all
|
||||
|
||||
# jdk_security
|
||||
|
||||
# 7145024
|
||||
sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java solaris-all
|
||||
|
||||
# 7147060
|
||||
com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java generic-all
|
||||
|
||||
@ -305,9 +299,6 @@ sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java generic-all
|
||||
# 7079203 sun/security/tools/keytool/printssl.sh fails on solaris with timeout
|
||||
sun/security/tools/keytool/printssl.sh solaris-all
|
||||
|
||||
# 7081817
|
||||
sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java generic-all
|
||||
|
||||
# 7041639, Solaris DSA keypair generation bug (Note: jdk_util also affected)
|
||||
java/security/KeyPairGenerator/SolarisShortDSA.java solaris-all
|
||||
sun/security/tools/jarsigner/onlymanifest.sh solaris-all
|
||||
|
@ -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 @@ import sun.misc.HexDumpEncoder;
|
||||
|
||||
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 @@ public class DHKeyAgreement2 {
|
||||
// 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 @@ public class DHKeyAgreement2 {
|
||||
* 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 @@ public class DHKeyAgreement2 {
|
||||
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 @@ public class DHKeyAgreement2 {
|
||||
* 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 @@ public class DHKeyAgreement2 {
|
||||
|
||||
// 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 @@ public class DHKeyAgreement2 {
|
||||
|
||||
// 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 @@ public class DHKeyAgreement2 {
|
||||
* 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,50 +184,33 @@ public class DHKeyAgreement2 {
|
||||
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());
|
||||
}
|
||||
|
||||
// provide output buffer of required size
|
||||
// retry w/ 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));
|
||||
|
||||
|
@ -292,7 +292,9 @@ public class EarlyReturnTest extends TestScaffold {
|
||||
private String[] excludes = {
|
||||
"javax.*",
|
||||
"sun.*",
|
||||
"com.sun.*"};
|
||||
"com.sun.*",
|
||||
"com.oracle.*",
|
||||
"oracle.*"};
|
||||
|
||||
static VirtualMachineManager vmm ;
|
||||
ClassType targetClass;
|
||||
|
@ -114,7 +114,8 @@ public class MethodEntryExitEvents extends TestScaffold {
|
||||
* 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);
|
||||
|
@ -218,7 +218,9 @@ public class MethodExitReturnValuesTest extends TestScaffold {
|
||||
private String[] excludes = {
|
||||
"javax.*",
|
||||
"sun.*",
|
||||
"com.sun.*"};
|
||||
"com.sun.*",
|
||||
"com.oracle.*",
|
||||
"oracle.*"};
|
||||
|
||||
static VirtualMachineManager vmm ;
|
||||
ClassType targetClass;
|
||||
|
107
jdk/test/java/awt/Frame/WindowDragTest/WindowDragTest.java
Normal file
107
jdk/test/java/awt/Frame/WindowDragTest/WindowDragTest.java
Normal file
@ -0,0 +1,107 @@
|
||||
/*
|
||||
* 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 7128738
|
||||
@summary dragged dialog freezes system on dispose
|
||||
@author Oleg Pekhovskiy: area=awt.toplevel
|
||||
@library ../../regtesthelpers
|
||||
@run main WindowDragTest
|
||||
*/
|
||||
|
||||
import java.awt.Frame;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.awt.AWTException;
|
||||
import test.java.awt.regtesthelpers.Util;
|
||||
import java.awt.Robot;
|
||||
import java.awt.Point;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
|
||||
public class WindowDragTest {
|
||||
|
||||
static boolean passed = false;
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
Robot robot = new Robot();
|
||||
robot.setAutoDelay(1000);
|
||||
|
||||
Frame frame1 = new Frame();
|
||||
frame1.setBounds(50, 50, 300, 200);
|
||||
frame1.setVisible(true);
|
||||
frame1.toFront();
|
||||
frame1.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
// Clicking frame1 succeeded - mouse is not captured
|
||||
passed = true;
|
||||
}
|
||||
});
|
||||
robot.delay(1000);
|
||||
|
||||
Frame frame2 = new Frame();
|
||||
frame2.setBounds(100, 100, 300, 200);
|
||||
frame2.setVisible(true);
|
||||
frame2.toFront();
|
||||
robot.delay(1000);
|
||||
|
||||
Point p = frame2.getLocationOnScreen();
|
||||
Dimension d = frame2.getSize();
|
||||
|
||||
// Move cursor to frame2 title bar to drag
|
||||
robot.mouseMove(p.x + (int)(d.getWidth() / 2), p.y + (int)frame2.getInsets().top / 2);
|
||||
Util.waitForIdle(robot);
|
||||
|
||||
// Start window dragging
|
||||
robot.mousePress(InputEvent.BUTTON1_MASK);
|
||||
Util.waitForIdle(robot);
|
||||
|
||||
// Dispose window being dragged
|
||||
frame2.dispose();
|
||||
Util.waitForIdle(robot);
|
||||
|
||||
// Release mouse button to be able to get MOUSE_CLICKED event on Util.clickOnComp()
|
||||
robot.mouseRelease(InputEvent.BUTTON1_MASK);
|
||||
Util.waitForIdle(robot);
|
||||
|
||||
// Click frame1 to check whether mouse is not captured by frame2
|
||||
Util.clickOnComp(frame1, robot);
|
||||
Util.waitForIdle(robot);
|
||||
|
||||
frame1.dispose();
|
||||
if (passed) {
|
||||
System.out.println("Test passed.");
|
||||
}
|
||||
else {
|
||||
System.out.println("Test failed.");
|
||||
throw new RuntimeException("Test failed.");
|
||||
}
|
||||
}
|
||||
catch (AWTException e) {
|
||||
throw new RuntimeException("AWTException occurred - problem creating robot!");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
<!---->
|
||||
<applet code=Applet.class width=100 height=100></applet>
|
@ -22,7 +22,6 @@
|
||||
*/
|
||||
|
||||
/* @test
|
||||
* @clean A B Container ReplacerObjectOutputStream
|
||||
* @summary Verify that ClassCastException is thrown when deserializing
|
||||
* an object and one of its object fields is incompatibly replaced
|
||||
* by either replaceObject/resolveObject.
|
||||
|
@ -22,7 +22,6 @@
|
||||
*/
|
||||
|
||||
/* @test
|
||||
* @clean A SubstituteObjectOutputStream SubstituteObjectInputStream
|
||||
* @bug 4099013
|
||||
* @summary Enable substitution of String and Array by ObjectStreams.
|
||||
*/
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
/* @test
|
||||
* @bug 4065313
|
||||
* @clean A ReplaceWithNull MyObjectOutputStream
|
||||
* @summary Ensure that it is okay to replace an object with null.
|
||||
*/
|
||||
import java.io.*;
|
||||
|
@ -22,7 +22,6 @@
|
||||
*/
|
||||
|
||||
/* @test
|
||||
* @clean A
|
||||
* @bug 4146453
|
||||
* @summary Test that regrow of object/handle table of ObjectOutputStream works.
|
||||
*/
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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 @@ public class NullUriCookieTest {
|
||||
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);
|
||||
|
@ -22,13 +22,14 @@
|
||||
*/
|
||||
import java.net.*;
|
||||
import java.io.*;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class SocksServer extends Thread {
|
||||
// Some useful SOCKS constant
|
||||
|
||||
static final int PROTO_VERS4 = 4;
|
||||
static final int PROTO_VERS4 = 4;
|
||||
static final int PROTO_VERS = 5;
|
||||
static final int DEFAULT_PORT = 1080;
|
||||
static final int DEFAULT_PORT = 1080;
|
||||
|
||||
static final int NO_AUTH = 0;
|
||||
static final int GSSAPI = 1;
|
||||
@ -36,28 +37,28 @@ public class SocksServer extends Thread {
|
||||
static final int NO_METHODS = -1;
|
||||
|
||||
static final int CONNECT = 1;
|
||||
static final int BIND = 2;
|
||||
static final int BIND = 2;
|
||||
static final int UDP_ASSOC = 3;
|
||||
|
||||
static final int IPV4 = 1;
|
||||
static final int DOMAIN_NAME = 3;
|
||||
static final int IPV6 = 4;
|
||||
static final int IPV4 = 1;
|
||||
static final int DOMAIN_NAME = 3;
|
||||
static final int IPV6 = 4;
|
||||
|
||||
static final int REQUEST_OK = 0;
|
||||
static final int GENERAL_FAILURE = 1;
|
||||
static final int NOT_ALLOWED = 2;
|
||||
static final int NOT_ALLOWED = 2;
|
||||
static final int NET_UNREACHABLE = 3;
|
||||
static final int HOST_UNREACHABLE = 4;
|
||||
static final int CONN_REFUSED = 5;
|
||||
static final int TTL_EXPIRED = 6;
|
||||
static final int CONN_REFUSED = 5;
|
||||
static final int TTL_EXPIRED = 6;
|
||||
static final int CMD_NOT_SUPPORTED = 7;
|
||||
static final int ADDR_TYPE_NOT_SUP = 8;
|
||||
|
||||
private int port;
|
||||
private ServerSocket server;
|
||||
private boolean useV4 = false;
|
||||
private java.util.Hashtable users = new java.util.Hashtable();
|
||||
private boolean done = false;
|
||||
private HashMap<String,String> users = new HashMap<>();
|
||||
private volatile boolean done = false;
|
||||
// Inner class to handle protocol with client
|
||||
// This is the bulk of the work (protocol handler)
|
||||
class ClientHandler extends Thread {
|
||||
@ -136,7 +137,7 @@ public class SocksServer extends Thread {
|
||||
System.err.println("User: '" + uname);
|
||||
System.err.println("PSWD: '" + password);
|
||||
if (users.containsKey(uname)) {
|
||||
String p1 = (String) users.get(uname);
|
||||
String p1 = users.get(uname);
|
||||
System.err.println("p1 = " + p1);
|
||||
if (p1.equals(password)) {
|
||||
out.write(PROTO_VERS);
|
||||
@ -492,7 +493,12 @@ public class SocksServer extends Thread {
|
||||
public SocksServer(int port) throws IOException {
|
||||
this.port = port;
|
||||
server = new ServerSocket();
|
||||
server.bind(new InetSocketAddress(port));
|
||||
if (port == 0) {
|
||||
server.bind(null);
|
||||
this.port = server.getLocalPort();
|
||||
} else {
|
||||
server.bind(new InetSocketAddress(port));
|
||||
}
|
||||
}
|
||||
|
||||
public SocksServer() throws IOException {
|
||||
@ -503,8 +509,13 @@ public class SocksServer extends Thread {
|
||||
users.put(user, passwd);
|
||||
}
|
||||
|
||||
public synchronized void terminate() {
|
||||
public int getPort() {
|
||||
return port;
|
||||
}
|
||||
|
||||
public void terminate() {
|
||||
done = true;
|
||||
try { server.close(); } catch (IOException unused) {}
|
||||
}
|
||||
|
||||
public void run() {
|
||||
|
@ -26,23 +26,22 @@
|
||||
* @bug 4727547
|
||||
* @summary SocksSocketImpl throws NullPointerException
|
||||
* @build SocksServer
|
||||
* @run main SocksV4Test
|
||||
*/
|
||||
|
||||
import java.net.*;
|
||||
import java.io.*;
|
||||
|
||||
public class SocksV4Test {
|
||||
public static void main(String[] args) throws IOException {
|
||||
// Create a SOCKS V4 proxy on port 8888
|
||||
SocksServer srvr = new SocksServer(8888, true);
|
||||
public static void main(String[] args) throws Exception {
|
||||
// Create a SOCKS V4 proxy
|
||||
SocksServer srvr = new SocksServer(0, true);
|
||||
srvr.start();
|
||||
System.setProperty("socksProxyHost", "localhost");
|
||||
System.setProperty("socksProxyPort", "8888");
|
||||
Proxy sp = new Proxy(Proxy.Type.SOCKS,
|
||||
new InetSocketAddress("localhost", srvr.getPort()));
|
||||
// Let's create an unresolved address
|
||||
InetSocketAddress ad = new InetSocketAddress("doesnt.exist.name", 1234);
|
||||
Socket s = new Socket();
|
||||
try {
|
||||
s.connect(ad,10000);
|
||||
try (Socket s = new Socket(sp)) {
|
||||
s.connect(ad, 10000);
|
||||
} catch (UnknownHostException ex) {
|
||||
// OK, that's what we expected
|
||||
} catch (NullPointerException npe) {
|
||||
@ -50,7 +49,6 @@ public class SocksV4Test {
|
||||
throw new RuntimeException("Got a NUllPointerException");
|
||||
} finally {
|
||||
srvr.terminate();
|
||||
srvr.interrupt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@
|
||||
* @author Brandon Passanisi
|
||||
* @library ..
|
||||
* @build CustomOptions PassThroughFileSystem
|
||||
* @run main CustomOptions
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -25,6 +25,7 @@
|
||||
* @bug 6850113
|
||||
* @summary Verify the return value of digit() for some digits.
|
||||
* @compile -XDignore.symbol.file=true Bug6850113.java
|
||||
* @run main Bug6850113
|
||||
*/
|
||||
|
||||
import sun.text.normalizer.UCharacter;
|
||||
|
301
jdk/test/java/util/jar/Manifest/CreateManifest.java
Normal file
301
jdk/test/java/util/jar/Manifest/CreateManifest.java
Normal file
@ -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";
|
||||
}
|
@ -26,6 +26,7 @@
|
||||
* @bug 4241676
|
||||
* @summary getContinuationDirContext() should set CPE environment property.
|
||||
* @build DummyObjectFactory DummyContext
|
||||
* @run main/othervm GetContDirCtx
|
||||
*/
|
||||
|
||||
import java.util.Hashtable;
|
||||
|
66
jdk/test/javax/swing/JTable/7027139/bug7027139.java
Normal file
66
jdk/test/javax/swing/JTable/7027139/bug7027139.java
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* 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 7027139
|
||||
@summary getFirstIndex() does not return the first index that has changed
|
||||
@author Pavel Porvatov
|
||||
*/
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.event.ListSelectionListener;
|
||||
|
||||
public class bug7027139 {
|
||||
public static void main(String[] args) throws Exception {
|
||||
SwingUtilities.invokeAndWait(new Runnable() {
|
||||
public void run() {
|
||||
JTable orderTable = new JTable(new String[][]{
|
||||
{"Item 1 1", "Item 1 2"},
|
||||
{"Item 2 1", "Item 2 2"},
|
||||
{"Item 3 1", "Item 3 2"},
|
||||
{"Item 4 1", "Item 4 2"},
|
||||
},
|
||||
new String[]{"Col 1", "Col 2"});
|
||||
|
||||
ListSelectionModel selectionModel = orderTable.getSelectionModel();
|
||||
selectionModel.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
|
||||
selectionModel.addListSelectionListener(new ListSelectionListener() {
|
||||
public void valueChanged(ListSelectionEvent e) {
|
||||
if (e.getValueIsAdjusting()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.getFirstIndex() < 0) {
|
||||
throw new RuntimeException("Test bug7027139 failed");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
orderTable.selectAll();
|
||||
}
|
||||
});
|
||||
|
||||
System.out.println("Test bug7027139 passed");
|
||||
}
|
||||
}
|
@ -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 @@ public class GetClassLoadingTime {
|
||||
}
|
||||
|
||||
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 @@ public class GetClassLoadingTime {
|
||||
// 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 @@ class KlassLoader extends ClassLoader {
|
||||
|
||||
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+")");
|
||||
|
@ -29,6 +29,7 @@
|
||||
# @summary Ensure that if a cleaner throws an exception then the VM exits
|
||||
#
|
||||
# @build ExitOnThrow
|
||||
# @run shell exitOnThrow.sh
|
||||
|
||||
# Command-line usage: sh exitOnThrow.sh /path/to/build
|
||||
|
||||
|
@ -26,6 +26,7 @@
|
||||
* @bug 6843578
|
||||
* @summary Test IBM DB charsets
|
||||
* @build IBM930_OLD IBM933_OLD IBM935_OLD IBM937_OLD IBM939_OLD IBM942_OLD IBM943_OLD IBM948_OLD IBM949_OLD IBM950_OLD IBM970_OLD IBM942C_OLD IBM943C_OLD IBM949C_OLD IBM1381_OLD IBM1383_OLD EUC_CN_OLD EUC_KR_OLD GBK_OLD Johab_OLD MS932_OLD MS936_OLD MS949_OLD MS950_OLD
|
||||
* @run main TestIBMDB
|
||||
*/
|
||||
|
||||
import java.nio.charset.*;
|
||||
|
@ -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());
|
||||
|
||||
}
|
||||
}
|
56
jdk/test/sun/security/krb5/auto/Basic.java
Normal file
56
jdk/test/sun/security/krb5/auto/Basic.java
Normal file
@ -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();
|
||||
}
|
||||
}
|
@ -95,6 +95,15 @@ public class Context {
|
||||
return out;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
@ -111,8 +120,10 @@ public class Context {
|
||||
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,
|
||||
|
60
jdk/test/sun/security/krb5/auto/GSS.java
Normal file
60
jdk/test/sun/security/krb5/auto/GSS.java
Normal file
@ -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();
|
||||
}
|
||||
}
|
@ -236,80 +236,82 @@ public class KDC {
|
||||
}
|
||||
|
||||
/**
|
||||
* 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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
99
jdk/test/sun/security/krb5/auto/TwoTab.java
Normal file
99
jdk/test/sun/security/krb5/auto/TwoTab.java
Normal file
@ -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();
|
||||
}
|
||||
}
|
143
jdk/test/sun/security/pkcs11/KeyAgreement/TestInterop.java
Normal file
143
jdk/test/sun/security/pkcs11/KeyAgreement/TestInterop.java
Normal file
@ -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());
|
||||
}
|
||||
}
|
@ -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 @@ public class TestShort extends PKCS11Test {
|
||||
("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 @@ public class TestShort extends PKCS11Test {
|
||||
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");
|
||||
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");
|
||||
}
|
||||
System.out.println("normal ok");
|
||||
} catch (Exception ex) {
|
||||
System.out.println("Unexpected Exception: " + ex);
|
||||
ex.printStackTrace();
|
||||
throw ex;
|
||||
}
|
||||
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");
|
||||
}
|
||||
System.out.println("normal ok");
|
||||
|
||||
/*
|
||||
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DH", provider);
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
|
@ -20,6 +20,11 @@ BEGIN {
|
||||
current=1;
|
||||
}
|
||||
|
||||
# or match an empty class name
|
||||
/^[0-9]+ $/ {
|
||||
current=1;
|
||||
}
|
||||
|
||||
{ totallines++; matched+=current; current=0; print $0 }
|
||||
|
||||
END {
|
||||
|
@ -20,6 +20,11 @@ BEGIN {
|
||||
matched++;
|
||||
}
|
||||
|
||||
# or match an empty class name
|
||||
/^[0-9]+ $/ {
|
||||
matched++;
|
||||
}
|
||||
|
||||
{ totallines++; print $0 }
|
||||
|
||||
END {
|
||||
|
@ -20,6 +20,11 @@ BEGIN {
|
||||
matched++;
|
||||
}
|
||||
|
||||
# or match an empty class name
|
||||
/^[0-9]+ $/ {
|
||||
matched++;
|
||||
}
|
||||
|
||||
{ totallines++; print $0 }
|
||||
|
||||
END {
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ Windows*)
|
||||
# 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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ JSTAT="${TESTJAVA}/bin/jstat"
|
||||
# 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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ setup
|
||||
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
|
||||
|
@ -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 @@ JSTAT="${TESTJAVA}/bin/jstat"
|
||||
|
||||
# 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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -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 @@ verify_os
|
||||
|
||||
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
|
||||
|
@ -11,6 +11,10 @@ BEGIN {
|
||||
matched++;
|
||||
}
|
||||
|
||||
/^[0-9]+ $/ {
|
||||
matched++;
|
||||
}
|
||||
|
||||
{ totallines++; print $0 }
|
||||
|
||||
END {
|
||||
|
@ -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 @@ then
|
||||
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 ]
|
||||
|
@ -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 @@ then
|
||||
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 ]
|
||||
|
@ -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 @@ then
|
||||
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 ]
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user