提交 c7c4365e 编写于 作者: L lana

Merge

...@@ -151,3 +151,6 @@ ec17fbe5b8fbc52da070eec43b4711d9354b2ab8 jdk8-b25 ...@@ -151,3 +151,6 @@ ec17fbe5b8fbc52da070eec43b4711d9354b2ab8 jdk8-b25
c68342532e2e7deb3a25fc04ed3e4c142278f747 jdk8-b27 c68342532e2e7deb3a25fc04ed3e4c142278f747 jdk8-b27
1e1d41daaded291ab3a370ca6a27f7325701978e jdk8-b28 1e1d41daaded291ab3a370ca6a27f7325701978e jdk8-b28
c5b882dce0fe27e05dc64debc92b1fb9ebf880ec jdk8-b29 c5b882dce0fe27e05dc64debc92b1fb9ebf880ec jdk8-b29
cdbb33303ea344d5e9013e2dd642e7a6e7768db6 jdk8-b30
27f0c08c427c65fcab6917edf646f59058e59524 jdk8-b31
ddfe5562f61f54ed2121ac0c73b688b94f3e66b5 jdk8-b32
...@@ -67,7 +67,7 @@ ifeq ($(PLATFORM), linux) ...@@ -67,7 +67,7 @@ ifeq ($(PLATFORM), linux)
CXX = $(COMPILER_PATH)g++ CXX = $(COMPILER_PATH)g++
endif endif
# Option used to create a shared library # Option used to create a shared library
SHARED_LIBRARY_FLAG = -shared -mimpure-text SHARED_LIBRARY_FLAG = -shared
SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 ) SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 )
endif endif
......
...@@ -522,11 +522,6 @@ public abstract class LWToolkit extends SunToolkit implements Runnable { ...@@ -522,11 +522,6 @@ public abstract class LWToolkit extends SunToolkit implements Runnable {
postEvent(targetToAppContext(event.getSource()), event); 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. // use peer's back buffer to implement non-opaque windows.
@Override @Override
public boolean needUpdateWindow() { public boolean needUpdateWindow() {
......
...@@ -1067,11 +1067,7 @@ public class LWWindowPeer ...@@ -1067,11 +1067,7 @@ public class LWWindowPeer
return false; return false;
} }
// Cross-app activation requests are not allowed. if (platformWindow.rejectFocusRequest(cause)) {
if (cause != CausedFocusEvent.Cause.MOUSE_EVENT &&
!((LWToolkit)Toolkit.getDefaultToolkit()).isApplicationActive())
{
focusLog.fine("the app is inactive, so the request is rejected");
return false; return false;
} }
......
...@@ -27,6 +27,7 @@ package sun.lwawt; ...@@ -27,6 +27,7 @@ package sun.lwawt;
import java.awt.*; import java.awt.*;
import sun.awt.CausedFocusEvent;
import sun.java2d.SurfaceData; import sun.java2d.SurfaceData;
// TODO Is it worth to generify this interface, like that: // TODO Is it worth to generify this interface, like that:
...@@ -117,6 +118,8 @@ public interface PlatformWindow { ...@@ -117,6 +118,8 @@ public interface PlatformWindow {
public void updateFocusableWindowState(); public void updateFocusableWindowState();
public boolean rejectFocusRequest(CausedFocusEvent.Cause cause);
public boolean requestWindowFocus(); public boolean requestWindowFocus();
/* /*
......
...@@ -38,6 +38,8 @@ import java.awt.event.*; ...@@ -38,6 +38,8 @@ import java.awt.event.*;
public class CEmbeddedFrame extends EmbeddedFrame { public class CEmbeddedFrame extends EmbeddedFrame {
private CPlatformResponder responder; private CPlatformResponder responder;
private boolean focused = true;
private boolean parentWindowActive = true;
public CEmbeddedFrame() { public CEmbeddedFrame() {
show(); show();
...@@ -94,4 +96,31 @@ public class CEmbeddedFrame extends EmbeddedFrame { ...@@ -94,4 +96,31 @@ public class CEmbeddedFrame extends EmbeddedFrame {
public void handleInputEvent(String text) { public void handleInputEvent(String text) {
new RuntimeException("Not implemented"); 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; ...@@ -33,17 +33,23 @@ import sun.java2d.SurfaceData;
import sun.awt.CGraphicsConfig; import sun.awt.CGraphicsConfig;
import sun.awt.CGraphicsDevice; import sun.awt.CGraphicsDevice;
import sun.awt.CausedFocusEvent;
import java.awt.*; import java.awt.*;
import java.awt.BufferCapabilities.FlipContents; import java.awt.BufferCapabilities.FlipContents;
import sun.util.logging.PlatformLogger;
/* /*
* Provides a lightweight implementation of the EmbeddedFrame. * Provides a lightweight implementation of the EmbeddedFrame.
*/ */
public class CPlatformEmbeddedFrame implements PlatformWindow { public class CPlatformEmbeddedFrame implements PlatformWindow {
private static final PlatformLogger focusLogger = PlatformLogger.getLogger("sun.lwawt.macosx.focus.CPlatformEmbeddedFrame");
private CGLLayer windowLayer; private CGLLayer windowLayer;
private LWWindowPeer peer; private LWWindowPeer peer;
private CEmbeddedFrame target;
private volatile int screenX = 0; private volatile int screenX = 0;
private volatile int screenY = 0; private volatile int screenY = 0;
...@@ -52,6 +58,7 @@ public class CPlatformEmbeddedFrame implements PlatformWindow { ...@@ -52,6 +58,7 @@ public class CPlatformEmbeddedFrame implements PlatformWindow {
public void initialize(Window target, final LWWindowPeer peer, PlatformWindow owner) { public void initialize(Window target, final LWWindowPeer peer, PlatformWindow owner) {
this.peer = peer; this.peer = peer;
this.windowLayer = new CGLLayer(peer); this.windowLayer = new CGLLayer(peer);
this.target = (CEmbeddedFrame)target;
} }
@Override @Override
...@@ -148,6 +155,18 @@ public class CPlatformEmbeddedFrame implements PlatformWindow { ...@@ -148,6 +155,18 @@ public class CPlatformEmbeddedFrame implements PlatformWindow {
@Override @Override
public void updateFocusableWindowState() {} 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 @Override
public boolean requestWindowFocus() { public boolean requestWindowFocus() {
return true; return true;
......
...@@ -65,6 +65,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo ...@@ -65,6 +65,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
// Loger to report issues happened during execution but that do not affect functionality // 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 logger = PlatformLogger.getLogger("sun.lwawt.macosx.CPlatformWindow");
private static final PlatformLogger focusLogger = PlatformLogger.getLogger("sun.lwawt.macosx.focus.CPlatformWindow");
// for client properties // for client properties
public static final String WINDOW_BRUSH_METAL_LOOK = "apple.awt.brushMetalLook"; public static final String WINDOW_BRUSH_METAL_LOOK = "apple.awt.brushMetalLook";
...@@ -112,6 +113,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo ...@@ -112,6 +113,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
static final int MINIMIZABLE = 1 << 8; static final int MINIMIZABLE = 1 << 8;
static final int RESIZABLE = 1 << 9; // both a style bit and prop bit 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; 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 ...@@ -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; 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 // corresponds to callback-based properties
static final int SHOULD_BECOME_KEY = 1 << 12; static final int SHOULD_BECOME_KEY = 1 << 12;
static final int SHOULD_BECOME_MAIN = 1 << 13; static final int SHOULD_BECOME_MAIN = 1 << 13;
...@@ -264,10 +263,6 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo ...@@ -264,10 +263,6 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
// defaults style bits // defaults style bits
int styleBits = DECORATED | HAS_SHADOW | CLOSEABLE | MINIMIZABLE | ZOOMABLE | RESIZABLE; int styleBits = DECORATED | HAS_SHADOW | CLOSEABLE | MINIMIZABLE | ZOOMABLE | RESIZABLE;
if (target.getName() == "###overrideRedirect###") {
styleBits = SET(styleBits, POPUP, true);
}
if (isNativelyFocusableWindow()) { if (isNativelyFocusableWindow()) {
styleBits = SET(styleBits, SHOULD_BECOME_KEY, true); styleBits = SET(styleBits, SHOULD_BECOME_KEY, true);
styleBits = SET(styleBits, SHOULD_BECOME_MAIN, true); styleBits = SET(styleBits, SHOULD_BECOME_MAIN, true);
...@@ -275,6 +270,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo ...@@ -275,6 +270,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
final boolean isFrame = (target instanceof Frame); final boolean isFrame = (target instanceof Frame);
final boolean isDialog = (target instanceof Dialog); final boolean isDialog = (target instanceof Dialog);
final boolean isPopup = (target.getType() == Window.Type.POPUP);
if (isDialog) { if (isDialog) {
styleBits = SET(styleBits, MINIMIZABLE, false); styleBits = SET(styleBits, MINIMIZABLE, false);
} }
...@@ -304,8 +300,10 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo ...@@ -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 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); 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) { if (target instanceof javax.swing.RootPaneContainer) {
...@@ -498,12 +496,19 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo ...@@ -498,12 +496,19 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
// If it ain't blocked, or is being hidden, go regular way // If it ain't blocked, or is being hidden, go regular way
if (visible) { if (visible) {
CWrapper.NSWindow.makeFirstResponder(nsWindowPtr, contentView.getAWTView()); CWrapper.NSWindow.makeFirstResponder(nsWindowPtr, contentView.getAWTView());
boolean isKeyWindow = CWrapper.NSWindow.isKeyWindow(nsWindowPtr);
if (!isKeyWindow) { boolean isPopup = (target.getType() == Window.Type.POPUP);
CWrapper.NSWindow.makeKeyAndOrderFront(nsWindowPtr); if (isPopup) {
// Popups in applets don't activate applet's process
CWrapper.NSWindow.orderFrontRegardless(nsWindowPtr);
} else { } else {
CWrapper.NSWindow.orderFront(nsWindowPtr); CWrapper.NSWindow.orderFront(nsWindowPtr);
} }
boolean isKeyWindow = CWrapper.NSWindow.isKeyWindow(nsWindowPtr);
if (!isKeyWindow) {
CWrapper.NSWindow.makeKeyWindow(nsWindowPtr);
}
} else { } else {
CWrapper.NSWindow.orderOut(nsWindowPtr); CWrapper.NSWindow.orderOut(nsWindowPtr);
} }
...@@ -599,8 +604,21 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo ...@@ -599,8 +604,21 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
nativeSetNSWindowMinMax(nsWindowPtr, min.getWidth(), min.getHeight(), max.getWidth(), max.getHeight()); 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 @Override
public boolean requestWindowFocus() { public boolean requestWindowFocus() {
long ptr = getNSWindowPtr(); long ptr = getNSWindowPtr();
if (CWrapper.NSWindow.canBecomeMainWindow(ptr)) { if (CWrapper.NSWindow.canBecomeMainWindow(ptr)) {
CWrapper.NSWindow.makeMainWindow(ptr); CWrapper.NSWindow.makeMainWindow(ptr);
...@@ -751,6 +769,11 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo ...@@ -751,6 +769,11 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
* Callbacks from the AWTWindow and AWTView objc classes. * Callbacks from the AWTWindow and AWTView objc classes.
*************************************************************/ *************************************************************/
private void deliverWindowFocusEvent(boolean gained){ 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); peer.notifyActivation(gained);
} }
......
...@@ -47,6 +47,7 @@ public final class CWrapper { ...@@ -47,6 +47,7 @@ public final class CWrapper {
public static native void setLevel(long window, int level); public static native void setLevel(long window, int level);
public static native void makeKeyAndOrderFront(long window); public static native void makeKeyAndOrderFront(long window);
public static native void makeKeyWindow(long window);
public static native void makeMainWindow(long window); public static native void makeMainWindow(long window);
public static native boolean canBecomeMainWindow(long window); public static native boolean canBecomeMainWindow(long window);
public static native boolean isKeyWindow(long window); public static native boolean isKeyWindow(long window);
......
...@@ -686,7 +686,10 @@ public class LWCToolkit extends LWToolkit { ...@@ -686,7 +686,10 @@ public class LWCToolkit extends LWToolkit {
return sunAwtDisableCALayers.booleanValue(); return sunAwtDisableCALayers.booleanValue();
} }
@Override
/*
* Returns true if the application (one of its windows) owns keyboard focus.
*/
public native boolean isApplicationActive(); public native boolean isApplicationActive();
/************************ /************************
......
...@@ -812,7 +812,7 @@ JNF_CLASS_CACHE(jc_CInputMethod, "sun/lwawt/macosx/CInputMethod"); ...@@ -812,7 +812,7 @@ JNF_CLASS_CACHE(jc_CInputMethod, "sun/lwawt/macosx/CInputMethod");
// Unicode value. // Unicode value.
NSUInteger utf8Length = [aString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; NSUInteger utf8Length = [aString lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
if ([self hasMarkedText] || !fProcessingKeystroke || (utf8Length > 2)) { if ([self hasMarkedText] || !fProcessingKeystroke || (utf8Length > 1)) {
JNIEnv *env = [ThreadUtilities getJNIEnv]; JNIEnv *env = [ThreadUtilities getJNIEnv];
static JNF_MEMBER_CACHE(jm_selectPreviousGlyph, jc_CInputMethod, "selectPreviousGlyph", "()V"); static JNF_MEMBER_CACHE(jm_selectPreviousGlyph, jc_CInputMethod, "selectPreviousGlyph", "()V");
......
...@@ -107,6 +107,7 @@ static JNF_CLASS_CACHE(jc_CPlatformWindow, "sun/lwawt/macosx/CPlatformWindow"); ...@@ -107,6 +107,7 @@ static JNF_CLASS_CACHE(jc_CPlatformWindow, "sun/lwawt/macosx/CPlatformWindow");
if (IS(styleBits, UTILITY)) type |= NSUtilityWindowMask; if (IS(styleBits, UTILITY)) type |= NSUtilityWindowMask;
if (IS(styleBits, HUD)) type |= NSHUDWindowMask; if (IS(styleBits, HUD)) type |= NSHUDWindowMask;
if (IS(styleBits, SHEET)) type |= NSDocModalWindowMask; if (IS(styleBits, SHEET)) type |= NSDocModalWindowMask;
if (IS(styleBits, NONACTIVATING)) type |= NSNonactivatingPanelMask;
return type; return type;
} }
......
...@@ -74,6 +74,26 @@ JNF_COCOA_ENTER(env); ...@@ -74,6 +74,26 @@ JNF_COCOA_ENTER(env);
JNF_COCOA_EXIT(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 * Class: sun_lwawt_macosx_CWrapper$NSWindow
* Method: makeMainWindow * Method: makeMainWindow
......
...@@ -403,12 +403,15 @@ JNIEXPORT jboolean JNICALL Java_sun_lwawt_macosx_LWCToolkit_isApplicationActive ...@@ -403,12 +403,15 @@ JNIEXPORT jboolean JNICALL Java_sun_lwawt_macosx_LWCToolkit_isApplicationActive
{ {
__block jboolean active = JNI_FALSE; __block jboolean active = JNI_FALSE;
AWT_ASSERT_NOT_APPKIT_THREAD;
JNF_COCOA_ENTER(env); JNF_COCOA_ENTER(env);
if ([NSThread isMainThread]) {
active = (jboolean)[NSRunningApplication currentApplication].active;
} else {
[JNFRunLoop performOnMainThreadWaiting:YES withBlock:^() { [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^() {
active = (jboolean)[NSRunningApplication currentApplication].active; active = (jboolean)[NSRunningApplication currentApplication].active;
}]; }];
}
JNF_COCOA_EXIT(env); JNF_COCOA_EXIT(env);
......
...@@ -31,33 +31,31 @@ ...@@ -31,33 +31,31 @@
#import <JavaRuntimeSupport/JavaRuntimeSupport.h> #import <JavaRuntimeSupport/JavaRuntimeSupport.h>
// returns 10.7 for Lion, 10.6 for SnowLeopard etc. // returns 107 for Lion, 106 for SnowLeopard etc.
double getOSXMajorVersion() { int getOSXMajorVersion() {
char *version = JRSCopyOSVersion(); char *ver = JRSCopyOSVersion();
if (ver == NULL) {
return 0;
}
if (version == NULL) return 0.0; int len = strlen(ver);
int v = 0;
char temp[32]; // Third char must be a '.'
strlcpy(temp, version, sizeof(temp)); if (len >= 3 && ver[2] == '.') {
free(version); int i;
if (strlen(temp) < 3) { v = (ver[0] - '0') * 10 + (ver[1] - '0');
return 0.0; for (i = 3; i < len && isdigit(ver[i]); ++i) {
v = v * 10 + (ver[i] - '0');
} }
if (temp[2] != '.') { // Third char must be a '.'
return 0.0;
} }
char *ptr = strchr(temp+3, '.'); // remove the second . if one exists. free(ver);
if (ptr != NULL) {
*ptr = 0;
}
return atof(temp); return v;
} }
BOOL isSnowLeopardOrLower() { BOOL isSnowLeopardOrLower() {
return (getOSXMajorVersion() < 10.7); return (getOSXMajorVersion() < 107);
} }
...@@ -26,8 +26,7 @@ ...@@ -26,8 +26,7 @@
formatVersion=1 formatVersion=1
# Version of the currency code information in this class. # Version of the currency code information in this class.
# It is a serial number that accompanies with each amendment, such as # It is a serial number that accompanies with each amendment.
# 'MAxxx.doc'
dataVersion=153 dataVersion=153
...@@ -49,7 +48,7 @@ all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036 ...@@ -49,7 +48,7 @@ all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036
NIO558-NLG528-NOK578-NPR524-NZD554-OMR512-PAB590-PEN604-PGK598-PHP608-\ NIO558-NLG528-NOK578-NPR524-NZD554-OMR512-PAB590-PEN604-PGK598-PHP608-\
PKR586-PLN985-PTE620-PYG600-QAR634-ROL946-RON946-RSD941-RUB643-RUR810-RWF646-SAR682-\ PKR586-PLN985-PTE620-PYG600-QAR634-ROL946-RON946-RSD941-RUB643-RUR810-RWF646-SAR682-\
SBD090-SCR690-SDD736-SDG938-SEK752-SGD702-SHP654-SIT705-SKK703-SLL694-SOS706-\ SBD090-SCR690-SDD736-SDG938-SEK752-SGD702-SHP654-SIT705-SKK703-SLL694-SOS706-\
SRD968-SRG740-STD678-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\ SRD968-SRG740-SSP728-STD678-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\
TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-\ TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-\
UYU858-UZS860-VEB862-VEF937-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\ UYU858-UZS860-VEB862-VEF937-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\ XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
...@@ -463,6 +462,8 @@ VC=XCD ...@@ -463,6 +462,8 @@ VC=XCD
WS=WST WS=WST
# SAN MARINO # SAN MARINO
SM=EUR SM=EUR
# SOUTH SUDAN
SS=SSP
# SAO TOME AND PRINCIPE # SAO TOME AND PRINCIPE
ST=STD ST=STD
# SAUDI ARABIA # SAUDI ARABIA
......
/* /*
* 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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -433,6 +433,7 @@ class LocaleISOData { ...@@ -433,6 +433,7 @@ class LocaleISOData {
+ "SN" + "SEN" // Senegal, Republic of + "SN" + "SEN" // Senegal, Republic of
+ "SO" + "SOM" // Somalia, Somali Republic + "SO" + "SOM" // Somalia, Somali Republic
+ "SR" + "SUR" // Suriname, Republic of + "SR" + "SUR" // Suriname, Republic of
+ "SS" + "SSD" // South Sudan
+ "ST" + "STP" // Sao Tome and Principe, Democratic Republic of + "ST" + "STP" // Sao Tome and Principe, Democratic Republic of
+ "SV" + "SLV" // El Salvador, Republic of + "SV" + "SLV" // El Salvador, Republic of
+ "SX" + "SXM" // Sint Maarten (Dutch part) + "SX" + "SXM" // Sint Maarten (Dutch part)
......
...@@ -252,6 +252,10 @@ public class DefaultListSelectionModel implements ListSelectionModel, Cloneable, ...@@ -252,6 +252,10 @@ public class DefaultListSelectionModel implements ListSelectionModel, Cloneable,
// Updates first and last change indices // Updates first and last change indices
private void markAsDirty(int r) { private void markAsDirty(int r) {
if (r == -1) {
return;
}
firstAdjustedIndex = Math.min(firstAdjustedIndex, r); firstAdjustedIndex = Math.min(firstAdjustedIndex, r);
lastAdjustedIndex = Math.max(lastAdjustedIndex, r); lastAdjustedIndex = Math.max(lastAdjustedIndex, r);
} }
...@@ -358,16 +362,12 @@ public class DefaultListSelectionModel implements ListSelectionModel, Cloneable, ...@@ -358,16 +362,12 @@ public class DefaultListSelectionModel implements ListSelectionModel, Cloneable,
private void updateLeadAnchorIndices(int anchorIndex, int leadIndex) { private void updateLeadAnchorIndices(int anchorIndex, int leadIndex) {
if (leadAnchorNotificationEnabled) { if (leadAnchorNotificationEnabled) {
if (this.anchorIndex != anchorIndex) { if (this.anchorIndex != anchorIndex) {
if (this.anchorIndex != -1) { // The unassigned state.
markAsDirty(this.anchorIndex); markAsDirty(this.anchorIndex);
}
markAsDirty(anchorIndex); markAsDirty(anchorIndex);
} }
if (this.leadIndex != leadIndex) { if (this.leadIndex != leadIndex) {
if (this.leadIndex != -1) { // The unassigned state.
markAsDirty(this.leadIndex); markAsDirty(this.leadIndex);
}
markAsDirty(leadIndex); markAsDirty(leadIndex);
} }
} }
......
# #
# 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. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
# #
# COPYRIGHT AND PERMISSION NOTICE # COPYRIGHT AND PERMISSION NOTICE
# #
# Copyright (C) 1991-2011 Unicode, Inc. All rights reserved. # Copyright (C) 1991-2012 Unicode, Inc. All rights reserved.
# Distributed under the Terms of Use in http://www.unicode.org/copyright.html. # Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
# #
# Permission is hereby granted, free of charge, to any person obtaining # Permission is hereby granted, free of charge, to any person obtaining
...@@ -226,6 +226,7 @@ SLL=SLL ...@@ -226,6 +226,7 @@ SLL=SLL
SOS=SOS SOS=SOS
SRD=SRD SRD=SRD
SRG=SRG SRG=SRG
SSP=SSP
STD=STD STD=STD
SVC=SVC SVC=SVC
SYP=SYP SYP=SYP
...@@ -443,6 +444,7 @@ sll=Sierra Leonean Leone ...@@ -443,6 +444,7 @@ sll=Sierra Leonean Leone
sos=Somali Shilling sos=Somali Shilling
srd=Surinamese Dollar srd=Surinamese Dollar
srg=Surinamese Guilder srg=Surinamese Guilder
ssp=South Sudanese Pound
std=S\u00e3o Tom\u00e9 and Pr\u00edncipe Dobra std=S\u00e3o Tom\u00e9 and Pr\u00edncipe Dobra
svc=Salvadoran Col\u00f3n svc=Salvadoran Col\u00f3n
syp=Syrian Pound syp=Syrian Pound
...@@ -486,7 +488,9 @@ xof=CFA Franc BCEAO ...@@ -486,7 +488,9 @@ xof=CFA Franc BCEAO
xpd=Palladium xpd=Palladium
xpf=CFP Franc xpf=CFP Franc
xpt=Platinum xpt=Platinum
xsu=Sucre
xts=Testing Currency Code xts=Testing Currency Code
xua=ADB Unit of Account
xxx=Unknown Currency xxx=Unknown Currency
yer=Yemeni Rial yer=Yemeni Rial
yum=Yugoslavian New Dinar (1994-2002) yum=Yugoslavian New Dinar (1994-2002)
......
# #
# 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. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
# #
# This code is free software; you can redistribute it and/or modify it # This code is free software; you can redistribute it and/or modify it
...@@ -1077,6 +1077,7 @@ SM=San Marino ...@@ -1077,6 +1077,7 @@ SM=San Marino
SN=Senegal SN=Senegal
SO=Somalia SO=Somalia
SR=Suriname SR=Suriname
SS=South Sudan
ST=Sao Tome And Principe ST=Sao Tome And Principe
SV=El Salvador SV=El Salvador
SX=Sint Maarten (Dutch part) SX=Sint Maarten (Dutch part)
......
...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux) ...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.c=%.o) OBJECTS=$(SOURCES:%.c=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES=-lc LIBRARIES=-lc
# Building a shared library # Building a shared library
......
...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux) ...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.c=%.o) OBJECTS=$(SOURCES:%.c=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES=-lc LIBRARIES=-lc
# Building a shared library # Building a shared library
......
...@@ -94,7 +94,7 @@ ifeq ($(OSNAME), linux) ...@@ -94,7 +94,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.c=%.o) OBJECTS=$(SOURCES:%.c=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES=-L $(JDK)/jre/lib/$(LIBARCH) -ljava_crw_demo -lc LIBRARIES=-L $(JDK)/jre/lib/$(LIBARCH) -ljava_crw_demo -lc
# Building a shared library # Building a shared library
......
...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux) ...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.c=%.o) OBJECTS=$(SOURCES:%.c=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES=-lc LIBRARIES=-lc
# Building a shared library # Building a shared library
......
...@@ -130,7 +130,7 @@ ifeq ($(OSNAME), linux) ...@@ -130,7 +130,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.c=%.o) OBJECTS=$(SOURCES:%.c=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES= -ldl -lc LIBRARIES= -ldl -lc
# Building a shared library # Building a shared library
......
...@@ -308,7 +308,7 @@ For X86: ...@@ -308,7 +308,7 @@ For X86:
<code><ul> <code><ul>
gcc -O2 -fPIC -pthread -DLINUX -c <i>*.c</i> gcc -O2 -fPIC -pthread -DLINUX -c <i>*.c</i>
<br> <br>
gcc -z defs -static-libgcc -shared -mimpure-text -o <i>libXXX.so *.o</i> -lc gcc -z defs -static-libgcc -shared -o <i>libXXX.so *.o</i> -lc
</code></ul> </code></ul>
<br> <br>
For AMD64: For AMD64:
...@@ -316,7 +316,7 @@ For AMD64: ...@@ -316,7 +316,7 @@ For AMD64:
<code><ul> <code><ul>
gcc -O2 -fPIC -pthread -DLINUX -D_LP64=1 -c <i>*.c</i> gcc -O2 -fPIC -pthread -DLINUX -D_LP64=1 -c <i>*.c</i>
<br> <br>
gcc -z defs -static-libgcc -shared -mimpure-text -o <i>libXXX.so *.o</i> -lc gcc -z defs -static-libgcc -shared -o <i>libXXX.so *.o</i> -lc
</code></ul> </code></ul>
<br> <br>
</li> </li>
...@@ -339,7 +339,7 @@ option. ...@@ -339,7 +339,7 @@ option.
</li> </li>
<li> <li>
Library: Use -static-libgcc -mimpure-text. Library: Use -static-libgcc.
<br> <br>
When building the shared library (-shared option), this option When building the shared library (-shared option), this option
allows for maximum portability of the library between different allows for maximum portability of the library between different
......
...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux) ...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.c=%.o) OBJECTS=$(SOURCES:%.c=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES=-lc LIBRARIES=-lc
# Building a shared library # Building a shared library
......
...@@ -94,7 +94,7 @@ ifeq ($(OSNAME), linux) ...@@ -94,7 +94,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.c=%.o) OBJECTS=$(SOURCES:%.c=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES=-L $(JDK)/jre/lib/$(LIBARCH) -ljava_crw_demo -lc LIBRARIES=-L $(JDK)/jre/lib/$(LIBARCH) -ljava_crw_demo -lc
# Building a shared library # Building a shared library
......
...@@ -94,7 +94,7 @@ ifeq ($(OSNAME), linux) ...@@ -94,7 +94,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.c=%.o) OBJECTS=$(SOURCES:%.c=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES=-L $(JDK)/jre/lib/$(LIBARCH) -ljava_crw_demo -lc LIBRARIES=-L $(JDK)/jre/lib/$(LIBARCH) -ljava_crw_demo -lc
# Building a shared library # Building a shared library
......
...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux) ...@@ -90,7 +90,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.c=%.o) OBJECTS=$(SOURCES:%.c=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES=-lc LIBRARIES=-lc
# Building a shared library # Building a shared library
......
...@@ -91,7 +91,7 @@ ifeq ($(OSNAME), linux) ...@@ -91,7 +91,7 @@ ifeq ($(OSNAME), linux)
OBJECTS=$(SOURCES:%.cpp=%.o) OBJECTS=$(SOURCES:%.cpp=%.o)
# Library name and options needed to build it # Library name and options needed to build it
LIBRARY=lib$(LIBNAME).so LIBRARY=lib$(LIBNAME).so
LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc
# Libraries we are dependent on # Libraries we are dependent on
LIBRARIES= LIBRARIES=
# Building a shared library # Building a shared library
......
...@@ -541,6 +541,8 @@ XImage* X11SD_CreateSharedImage(X11SDOps *xsdo, ...@@ -541,6 +541,8 @@ XImage* X11SD_CreateSharedImage(X11SDOps *xsdo,
J2dRlsTraceLn1(J2D_TRACE_ERROR, J2dRlsTraceLn1(J2D_TRACE_ERROR,
"X11SD_SetupSharedSegment shmget has failed: %s", "X11SD_SetupSharedSegment shmget has failed: %s",
strerror(errno)); strerror(errno));
free((void *)shminfo);
XDestroyImage(img);
return NULL; return NULL;
} }
...@@ -550,6 +552,8 @@ XImage* X11SD_CreateSharedImage(X11SDOps *xsdo, ...@@ -550,6 +552,8 @@ XImage* X11SD_CreateSharedImage(X11SDOps *xsdo,
J2dRlsTraceLn1(J2D_TRACE_ERROR, J2dRlsTraceLn1(J2D_TRACE_ERROR,
"X11SD_SetupSharedSegment shmat has failed: %s", "X11SD_SetupSharedSegment shmat has failed: %s",
strerror(errno)); strerror(errno));
free((void *)shminfo);
XDestroyImage(img);
return NULL; return NULL;
} }
...@@ -570,6 +574,9 @@ XImage* X11SD_CreateSharedImage(X11SDOps *xsdo, ...@@ -570,6 +574,9 @@ XImage* X11SD_CreateSharedImage(X11SDOps *xsdo,
J2dRlsTraceLn1(J2D_TRACE_ERROR, J2dRlsTraceLn1(J2D_TRACE_ERROR,
"X11SD_SetupSharedSegment XShmAttach has failed: %s", "X11SD_SetupSharedSegment XShmAttach has failed: %s",
strerror(errno)); strerror(errno));
shmdt(shminfo->shmaddr);
free((void *)shminfo);
XDestroyImage(img);
return NULL; return NULL;
} }
...@@ -1345,13 +1352,10 @@ void X11SD_DisposeXImage(XImage * image) { ...@@ -1345,13 +1352,10 @@ void X11SD_DisposeXImage(XImage * image) {
#ifdef MITSHM #ifdef MITSHM
if (image->obdata != NULL) { if (image->obdata != NULL) {
X11SD_DropSharedSegment((XShmSegmentInfo*)image->obdata); X11SD_DropSharedSegment((XShmSegmentInfo*)image->obdata);
} else { image->obdata = NULL;
free(image->data);
} }
#else
free(image->data);
#endif /* MITSHM */ #endif /* MITSHM */
XFree(image); XDestroyImage(image);
} }
} }
......
...@@ -302,6 +302,7 @@ void AwtComponent::Dispose() ...@@ -302,6 +302,7 @@ void AwtComponent::Dispose()
delete m_childList; delete m_childList;
DestroyDropTarget(); DestroyDropTarget();
ReleaseDragCapture(0);
if (m_myControlID != 0) { if (m_myControlID != 0) {
AwtComponent* parent = GetParent(); AwtComponent* parent = GetParent();
......
/*
* 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!");
}
}
}
# #
# #
# Based on BSi's ISO4217 data - "TABLE A1.doc" + amendments up until MA153.doc # Amendments up until ISO 4217 AMENDMENT NUMBER 153
# (As of 12 January 2012) # (As of 12 January 2012)
# #
...@@ -227,6 +227,7 @@ SI EUR 978 2 ...@@ -227,6 +227,7 @@ SI EUR 978 2
SB SBD 90 2 SB SBD 90 2
SO SOS 706 2 SO SOS 706 2
ZA ZAR 710 2 ZA ZAR 710 2
SS SSP 728 2
ES EUR 978 2 ES EUR 978 2
LK LKR 144 2 LK LKR 144 2
SD SDG 938 2 SD SDG 938 2
......
/* /*
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
* @bug 4052404 4052440 4084688 4092475 4101316 4105828 4107014 4107953 4110613 * @bug 4052404 4052440 4084688 4092475 4101316 4105828 4107014 4107953 4110613
* 4118587 4118595 4122371 4126371 4126880 4135316 4135752 4139504 4139940 4143951 * 4118587 4118595 4122371 4126371 4126880 4135316 4135752 4139504 4139940 4143951
* 4147315 4147317 4147552 4335196 4778440 4940539 5010672 6475525 6544471 6627549 * 4147315 4147317 4147552 4335196 4778440 4940539 5010672 6475525 6544471 6627549
* 6786276 7066203 * 6786276 7066203 7085757
* @summary test Locales * @summary test Locales
*/ */
/* /*
...@@ -400,7 +400,7 @@ public class LocaleTest extends LocaleTestFmwk { ...@@ -400,7 +400,7 @@ public class LocaleTest extends LocaleTestFmwk {
} }
/** /**
* @bug 4106155 4118587 7066203 * @bug 4106155 4118587 7066203 7085757
*/ */
public void TestGetLangsAndCountries() { public void TestGetLangsAndCountries() {
// It didn't seem right to just do an exhaustive test of everything here, so I check // It didn't seem right to just do an exhaustive test of everything here, so I check
...@@ -440,8 +440,8 @@ public class LocaleTest extends LocaleTestFmwk { ...@@ -440,8 +440,8 @@ public class LocaleTest extends LocaleTestFmwk {
String[] spotCheck2 = { "US", "CA", "GB", "FR", "DE", "IT", "JP", "KR", "CN", "TW", "TH" }; String[] spotCheck2 = { "US", "CA", "GB", "FR", "DE", "IT", "JP", "KR", "CN", "TW", "TH" };
if (test.length != 249) if (test.length != 250)
errln("Expected getISOCountries to return 249 countries; it returned " + test.length); errln("Expected getISOCountries to return 250 countries; it returned " + test.length);
else { else {
for (int i = 0; i < spotCheck2.length; i++) { for (int i = 0; i < spotCheck2.length; i++) {
int j; int j;
......
/*
* 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");
}
}
...@@ -7019,3 +7019,11 @@ FormatData/bg/DateTimePatterns/4=dd MMMM y, EEEE ...@@ -7019,3 +7019,11 @@ FormatData/bg/DateTimePatterns/4=dd MMMM y, EEEE
FormatData/bg/DateTimePatterns/5=dd MMMM y FormatData/bg/DateTimePatterns/5=dd MMMM y
FormatData/bg/DateTimePatterns/6=dd.MM.yyyy FormatData/bg/DateTimePatterns/6=dd.MM.yyyy
FormatData/bg/DateTimePatterns/7=dd.MM.yy FormatData/bg/DateTimePatterns/7=dd.MM.yy
# bug 7085757
CurrencyNames//SSP=SSP
CurrencyNames//ssp=South Sudanese Pound
CurrencyNames//xsu=Sucre
CurrencyNames//xua=ADB Unit of Account
LocaleNames//SS=South Sudan
LocaleNames/en/SS=South Sudan
\ No newline at end of file
/* /*
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
* 6509039 6609737 6610748 6645271 6507067 6873931 6450945 6645268 6646611 * 6509039 6609737 6610748 6645271 6507067 6873931 6450945 6645268 6646611
* 6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413 6916787 * 6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413 6916787
* 6919624 6998391 7019267 7020960 7025837 7020583 7036905 7066203 7101495 * 6919624 6998391 7019267 7020960 7025837 7020583 7036905 7066203 7101495
* 7003124 * 7003124 7085757
* @summary Verify locale data * @summary Verify locale data
* *
*/ */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册