Merge jdk7u25-b06 into jdk7u25-b07
diff --git a/.hgtags-top-repo b/.hgtags-top-repo
index 1617146..5bd28e2 100644
--- a/.hgtags-top-repo
+++ b/.hgtags-top-repo
@@ -268,3 +268,4 @@
50bfbd21bf42f6ae4167226ac45cd79e0ab7758c jdk7u25-b03
a94c9aa356bbed13c1e2b4a9a380117ddff1668f jdk7u25-b04
29a789ae14dc09a50eb45d3445075642e77490a2 jdk7u25-b05
+8a7c657b7536006633b5e961d93e2173712a64fa jdk7u25-b06
diff --git a/corba/.hgtags b/corba/.hgtags
index 5832789..f7d0050 100644
--- a/corba/.hgtags
+++ b/corba/.hgtags
@@ -270,3 +270,4 @@
2057de7ee6b17ab3335ec6cd5730f88f4cfe9502 jdk7u25-b03
b180f1282ad221bde0d4d865c879c0fa7f8ef4c8 jdk7u25-b04
d97e6c162735798fe0c9f1dd582aa1114b6c5447 jdk7u25-b05
+da9301dac56c26846212db33bb20001652b6ce60 jdk7u25-b06
diff --git a/hotspot/.hgtags b/hotspot/.hgtags
index afa29d3..889167c 100644
--- a/hotspot/.hgtags
+++ b/hotspot/.hgtags
@@ -391,3 +391,4 @@
655bea6843fb7beabd8d9eeda59572c0c7055b85 jdk7u25-b03
96a4e612195c0d753be24cf38fea0ee8ce30edcf jdk7u25-b04
7151c26b838828a20cb28595ef1f70403d1868cf jdk7u25-b05
+fbb5f6083dd00ca7417e4a45311f33918bb2a5f0 jdk7u25-b06
diff --git a/jaxp/.hgtags b/jaxp/.hgtags
index 0c11782..30188c1 100644
--- a/jaxp/.hgtags
+++ b/jaxp/.hgtags
@@ -270,3 +270,4 @@
fe858d7d6a13829d0ef0a1f762bd0e769cd24fa1 jdk7u25-b03
1a2822a1d6a40c6e469f4089f39e41f642a87843 jdk7u25-b04
e927605d1678c5d94adfc44183160d6c4df05b8b jdk7u25-b05
+8dfb4db227e7795120c072781927ba7d35186559 jdk7u25-b06
diff --git a/jaxws/.hgtags b/jaxws/.hgtags
index eac1608..a553a67 100644
--- a/jaxws/.hgtags
+++ b/jaxws/.hgtags
@@ -270,3 +270,4 @@
4635a58db6b028f78a30c972ac47f9c5577bedfd jdk7u25-b03
57d4548795c39e19099fc0a760d7887f83b1564f jdk7u25-b04
35882693ee358e3a8b92d632dafa98e05fe72437 jdk7u25-b05
+c141079e609653ec700d2e71f16be4a5859e9a42 jdk7u25-b06
diff --git a/jdk/.hgtags b/jdk/.hgtags
index 0528d9e..038a498 100644
--- a/jdk/.hgtags
+++ b/jdk/.hgtags
@@ -269,3 +269,4 @@
2a444d8e36ebc7161a735b45143b22e141d9a5c0 jdk7u25-b03
7fc6c331082c3586fa6c6ead014c96f3c532bc34 jdk7u25-b04
f2d4da9ba0f05165e8a85d0fd5085d707e434eab jdk7u25-b05
+5748526c96f0d3fd5771b72a81fcd61f4e23b0d8 jdk7u25-b06
diff --git a/jdk/src/share/classes/java/awt/EventQueue.java b/jdk/src/share/classes/java/awt/EventQueue.java
index d2c81cd..2648144 100644
--- a/jdk/src/share/classes/java/awt/EventQueue.java
+++ b/jdk/src/share/classes/java/awt/EventQueue.java
@@ -174,6 +174,11 @@
*/
private volatile int waitForID;
+ /*
+ * AppContext corresponding to the queue.
+ */
+ private final AppContext appContext;
+
private final String name = "AWT-EventQueue-" + threadInitNumber.getAndIncrement();
private static final PlatformLogger eventLog = PlatformLogger.getLogger("java.awt.event.EventQueue");
@@ -220,8 +225,9 @@
* completes thus causing mess in thread group to appcontext mapping.
*/
- pushPopLock = (Lock)AppContext.getAppContext().get(AppContext.EVENT_QUEUE_LOCK_KEY);
- pushPopCond = (Condition)AppContext.getAppContext().get(AppContext.EVENT_QUEUE_COND_KEY);
+ appContext = AppContext.getAppContext();
+ pushPopLock = (Lock)appContext.get(AppContext.EVENT_QUEUE_LOCK_KEY);
+ pushPopCond = (Condition)appContext.get(AppContext.EVENT_QUEUE_COND_KEY);
}
/**
@@ -235,7 +241,7 @@
* @throws NullPointerException if <code>theEvent</code> is <code>null</code>
*/
public void postEvent(AWTEvent theEvent) {
- SunToolkit.flushPendingEvents();
+ SunToolkit.flushPendingEvents(appContext);
postEventPrivate(theEvent);
}
@@ -526,7 +532,7 @@
* of the synchronized block to avoid deadlock when
* event queues are nested with push()/pop().
*/
- SunToolkit.flushPendingEvents();
+ SunToolkit.flushPendingEvents(appContext);
pushPopLock.lock();
try {
AWTEvent event = getNextEventPrivate();
@@ -566,7 +572,7 @@
* of the synchronized block to avoid deadlock when
* event queues are nested with push()/pop().
*/
- SunToolkit.flushPendingEvents();
+ SunToolkit.flushPendingEvents(appContext);
pushPopLock.lock();
try {
for (int i = 0; i < NUM_PRIORITIES; i++) {
@@ -874,7 +880,6 @@
newEventQueue.previousQueue = topQueue;
topQueue.nextQueue = newEventQueue;
- AppContext appContext = AppContext.getAppContext();
if (appContext.get(AppContext.EVENT_QUEUE_KEY) == topQueue) {
appContext.put(AppContext.EVENT_QUEUE_KEY, newEventQueue);
}
@@ -935,7 +940,6 @@
topQueue.dispatchThread.setEventQueue(prevQueue);
}
- AppContext appContext = AppContext.getAppContext();
if (appContext.get(AppContext.EVENT_QUEUE_KEY) == this) {
appContext.put(AppContext.EVENT_QUEUE_KEY, prevQueue);
}
@@ -1028,7 +1032,6 @@
final void initDispatchThread() {
pushPopLock.lock();
try {
- AppContext appContext = AppContext.getAppContext();
if (dispatchThread == null && !threadGroup.isDestroyed() && !appContext.isDisposed()) {
dispatchThread = AccessController.doPrivileged(
new PrivilegedAction<EventDispatchThread>() {
@@ -1114,7 +1117,7 @@
* <code>removeNotify</code> method.
*/
final void removeSourceEvents(Object source, boolean removeAllEvents) {
- SunToolkit.flushPendingEvents();
+ SunToolkit.flushPendingEvents(appContext);
pushPopLock.lock();
try {
for (int i = 0; i < NUM_PRIORITIES; i++) {
diff --git a/jdk/src/share/classes/javax/swing/RepaintManager.java b/jdk/src/share/classes/javax/swing/RepaintManager.java
index ca20c5d..1706a95 100644
--- a/jdk/src/share/classes/javax/swing/RepaintManager.java
+++ b/jdk/src/share/classes/javax/swing/RepaintManager.java
@@ -342,7 +342,7 @@
// Queue a Runnable to invoke paintDirtyRegions and
// validateInvalidComponents.
- scheduleProcessingRunnable();
+ scheduleProcessingRunnable(SunToolkit.targetToAppContext(invalidComponent));
}
@@ -431,7 +431,7 @@
// Queue a Runnable to invoke paintDirtyRegions and
// validateInvalidComponents.
- scheduleProcessingRunnable();
+ scheduleProcessingRunnable(SunToolkit.targetToAppContext(c));
}
/**
@@ -1373,10 +1373,6 @@
return paintManager;
}
- private void scheduleProcessingRunnable() {
- scheduleProcessingRunnable(AppContext.getAppContext());
- }
-
private void scheduleProcessingRunnable(AppContext context) {
if (processingRunnable.markPending()) {
Toolkit tk = Toolkit.getDefaultToolkit();
diff --git a/jdk/src/share/classes/sun/awt/SunToolkit.java b/jdk/src/share/classes/sun/awt/SunToolkit.java
index 6015c39..fde8970 100644
--- a/jdk/src/share/classes/sun/awt/SunToolkit.java
+++ b/jdk/src/share/classes/sun/awt/SunToolkit.java
@@ -97,6 +97,14 @@
*/
public final static int MAX_BUTTONS_SUPPORTED = 20;
+ /**
+ * Creates and initializes EventQueue instance for the specified
+ * AppContext.
+ * Note that event queue must be created from createNewAppContext()
+ * only in order to ensure that EventQueue constructor obtains
+ * the correct AppContext.
+ * @param appContext AppContext to associate with the event queue
+ */
private static void initEQ(AppContext appContext) {
EventQueue eventQueue;
@@ -514,13 +522,17 @@
* EventQueue yet.
*/
public static void flushPendingEvents() {
+ AppContext appContext = AppContext.getAppContext();
+ flushPendingEvents(appContext);
+ }
+
+ public static void flushPendingEvents(AppContext appContext) {
flushLock.lock();
try {
// Don't call flushPendingEvents() recursively
if (!isFlushingPendingEvents) {
isFlushingPendingEvents = true;
try {
- AppContext appContext = AppContext.getAppContext();
PostEventQueue postEventQueue =
(PostEventQueue)appContext.get(POST_EVENT_QUEUE_KEY);
if (postEventQueue != null) {
diff --git a/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c b/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c
index e86fb6c..2e81b63 100644
--- a/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c
+++ b/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c
@@ -1298,20 +1298,24 @@
return 0;
}
- lut_nbands = (*env)->GetArrayLength(env, jtableArrays);
+ nbands = setImageHints(env, srcImageP, dstImageP, FALSE, TRUE,
+ FALSE, &hint);
+
+ if (nbands < 1 || nbands > srcImageP->cmodel.numComponents) {
+ /* Can't handle any custom images */
+ awt_freeParsedImage(srcImageP, TRUE);
+ awt_freeParsedImage(dstImageP, TRUE);
+ return 0;
+ }
ncomponents = srcImageP->cmodel.isDefaultCompatCM
? 4
: srcImageP->cmodel.numComponents;
- if (lut_nbands > ncomponents) {
- lut_nbands = ncomponents;
- }
-
/* Make sure that color order can be used for
* re-ordering of lookup arrays.
*/
- for (i = 0; i < ncomponents; i++) {
+ for (i = 0; i < nbands; i++) {
int idx = srcImageP->hints.colorOrder[i];
if (idx < 0 || idx >= ncomponents) {
@@ -1321,6 +1325,12 @@
}
}
+ lut_nbands = (*env)->GetArrayLength(env, jtableArrays);
+
+ if (lut_nbands > ncomponents) {
+ lut_nbands = ncomponents;
+ }
+
tbl = NULL;
if (SAFE_TO_ALLOC_2(ncomponents, sizeof(unsigned char *))) {
tbl = (unsigned char **)
@@ -1363,17 +1373,6 @@
}
}
- nbands = setImageHints(env, srcImageP, dstImageP, FALSE, TRUE,
- FALSE, &hint);
- if (nbands < 1) {
- /* Can't handle any custom images */
- free(tbl);
- free(jtable);
- awt_freeParsedImage(srcImageP, TRUE);
- awt_freeParsedImage(dstImageP, TRUE);
- return 0;
- }
-
/* Allocate the arrays */
if (allocateArray(env, srcImageP, &src, &sdata, TRUE, FALSE, FALSE) < 0) {
/* Must be some problem */
diff --git a/jdk/test/java/awt/image/mlib/MlibOpsTest.java b/jdk/test/java/awt/image/mlib/MlibOpsTest.java
index aed30d5..8f8bf7b 100644
--- a/jdk/test/java/awt/image/mlib/MlibOpsTest.java
+++ b/jdk/test/java/awt/image/mlib/MlibOpsTest.java
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 6556332
+ * @bug 6556332 8011992 8012112
* @summary Test verifies that on-demnad loading of medialib library does
* not break imageing ops based on this library.
* @run main MlibOpsTest
diff --git a/langtools/.hgtags b/langtools/.hgtags
index 416aa04..63a5f19 100644
--- a/langtools/.hgtags
+++ b/langtools/.hgtags
@@ -270,3 +270,4 @@
8dc40e209a12638ea18bb7ee436051768afa5d39 jdk7u25-b03
d7f974b867c4cf771ab749871c2ff4d3f869f13f jdk7u25-b04
e8d01d8ee8f547f97d8670157ddf5a798459b85a jdk7u25-b05
+25489e38393b7c70fb826069d50860fbc409d11d jdk7u25-b06