Compare commits

...

9 Commits

Author SHA1 Message Date
Vitaly Provodin
04ae9f156e update exclude list on results of 21.0.8_b1138.52 test runs 2025-09-26 20:26:35 +04:00
Alexey Ushakov
6893d02f69 JBR-9301 Vulkan: SwingSet2 crash window server
Clear native peer on windowClosing in Frame object

(cherry picked from commit 441bb9d12ebff4bf2e1629115b9414b0b22ec858)
2025-09-23 18:18:31 +02:00
Nikita Tsarev
7bed1e34cb JBR-9330: Set scale for drag images [WLToolkit] 2025-09-22 17:11:38 +02:00
Alexey Ushakov
c9feb0aad9 JBR-9376 Vulkan: Incorrect deallocation in VKDevice_Reset
Moved texture pool into VKRenderer

(cherry picked from commit 392514fc9daf57a501a0c1598fe2a0782045f335)
2025-09-19 12:18:29 +02:00
Nikita Gubarkov
a6d91ed520 fixup! JBR-9352 Port 8355611: Get rid of SurfaceManagerFactory 2025-09-18 14:15:02 +02:00
Nikita Gubarkov
00dbe10037 JBR-9352 Port 8355611: Get rid of SurfaceManagerFactory
Reviewed-by: serb, prr
2025-09-18 13:49:51 +02:00
Yasumasa Suenaga
b5d65d6901 8355077: Compiler error at splashscreen_gif.c due to unterminated string initialization
Reviewed-by: prr
2025-09-18 13:23:08 +02:00
Dmitry Batrak
8a5f4e6476 JBR-9365 Unnecessary operations on tree node update
(cherry picked from commit cc5d9ca55c484bf8359135498836a64cc49c3406)
2025-09-18 13:33:11 +03:00
Vitaly Provodin
c403c79a09 update exclude list on results of 21.0.8_b1115.48 test runs 2025-09-17 08:08:55 +04:00
46 changed files with 370 additions and 479 deletions

View File

@@ -41,7 +41,8 @@ public abstract class CGraphicsConfig extends GraphicsConfiguration
private final CGraphicsDevice device;
private ColorModel colorModel;
private final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
private final SurfaceManager.ProxyCache surfaceDataProxyCache =
new SurfaceManager.ProxyCache();
protected CGraphicsConfig(CGraphicsDevice device) {
this.device = device;

View File

@@ -42,9 +42,7 @@ import java.util.ListIterator;
import java.util.Map;
import sun.java2d.MacOSFlags;
import sun.java2d.MacosxSurfaceManagerFactory;
import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.metal.MTLGraphicsConfig;
import sun.util.logging.PlatformLogger;
@@ -112,9 +110,6 @@ public final class CGraphicsEnvironment extends SunGraphicsEnvironment {
metalPipelineEnabled = true;
}
}
// Install the correct surface manager factory.
SurfaceManagerFactory.setInstance(new MacosxSurfaceManagerFactory());
}
/**

View File

@@ -1,75 +0,0 @@
/*
* Copyright (c) 2011, 2022, 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* 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.
*/
package sun.java2d;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import sun.awt.CGraphicsEnvironment;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.TextureWrapperSurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.java2d.metal.MTLGraphicsConfig;
import sun.java2d.metal.MTLSurfaceData;
import sun.java2d.metal.MTLVolatileSurfaceManager;
import sun.java2d.opengl.CGLVolatileSurfaceManager;
/**
* This is a factory class with static methods for creating a
* platform-specific instance of a particular SurfaceManager. Each platform
* (Windows, Unix, etc.) has its own specialized SurfaceManagerFactory.
*/
public class MacosxSurfaceManagerFactory extends SurfaceManagerFactory {
/**
* Creates a new instance of a VolatileSurfaceManager given any
* arbitrary SunVolatileImage. An optional context Object can be supplied
* as a way for the caller to pass pipeline-specific context data to
* the VolatileSurfaceManager (such as a backbuffer handle, for example).
*
* For Mac OS X, this method returns either an CGL/MTL-specific
* VolatileSurfaceManager based on the GraphicsConfiguration
* under which the SunVolatileImage was created.
*/
public VolatileSurfaceManager createVolatileManager(SunVolatileImage vImg,
Object context)
{
return CGraphicsEnvironment.usingMetalPipeline() ? new MTLVolatileSurfaceManager(vImg, context) :
new CGLVolatileSurfaceManager(vImg, context);
}
@Override
public SurfaceManager createTextureWrapperSurfaceManager(GraphicsConfiguration gc, Image image, long texture) {
SurfaceData sd;
if (gc instanceof MTLGraphicsConfig) {
sd = MTLSurfaceData.createData((MTLGraphicsConfig) gc, image, texture);
} else {
throw new UnsupportedOperationException("Unsupported GraphicsConfiguration");
}
return new TextureWrapperSurfaceManager(sd);
}
}

View File

@@ -30,6 +30,9 @@ import sun.awt.CGraphicsDevice;
import sun.awt.CGraphicsEnvironment;
import sun.awt.image.OffScreenImage;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.TextureWrapperSurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.java2d.Disposer;
import sun.java2d.DisposerRecord;
import sun.java2d.Surface;
@@ -46,6 +49,7 @@ import java.awt.BufferCapabilities;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import java.awt.ImageCapabilities;
import java.awt.Rectangle;
@@ -67,7 +71,7 @@ import static sun.java2d.pipe.hw.ContextCapabilities.*;
import static sun.java2d.metal.MTLContext.MTLContextCaps.CAPS_EXT_BIOP_SHADER;
public final class MTLGraphicsConfig extends CGraphicsConfig
implements AccelGraphicsConfig
implements AccelGraphicsConfig, SurfaceManager.Factory, SurfaceManager.TextureWrapperFactory
{
private static boolean mtlAvailable;
private static ImageCapabilities imageCaps = new MTLImageCaps();
@@ -380,4 +384,17 @@ public final class MTLGraphicsConfig extends CGraphicsConfig
return Math.max(maxTextureSize / getDevice().getScaleFactor(),
getBounds().height);
}
@Override
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
Object context) {
return new MTLVolatileSurfaceManager(image, context);
}
@Override
public SurfaceManager createTextureWrapperSurfaceManager(
GraphicsConfiguration gc, Image image, long texture) {
SurfaceData sd = MTLSurfaceData.createData(this, image, texture);
return new TextureWrapperSurfaceManager(sd);
}
}

View File

@@ -47,6 +47,8 @@ import sun.awt.CGraphicsConfig;
import sun.awt.CGraphicsDevice;
import sun.awt.image.OffScreenImage;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.java2d.Disposer;
import sun.java2d.DisposerRecord;
import sun.java2d.Surface;
@@ -414,4 +416,10 @@ public final class CGLGraphicsConfig extends CGraphicsConfig
return Math.max(maxTextureSize / getDevice().getScaleFactor(),
getBounds().height);
}
@Override
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
Object context) {
return new CGLVolatileSurfaceManager(image, context);
}
}

View File

@@ -27,7 +27,6 @@ package com.jetbrains.desktop.image;
import sun.awt.image.SurfaceManager;
import sun.java2d.SurfaceData;
import sun.java2d.SurfaceManagerFactory;
import java.awt.AlphaComposite;
import java.awt.GraphicsConfiguration;
@@ -71,7 +70,10 @@ public class TextureWrapperImage extends Image {
public TextureWrapperImage(GraphicsConfiguration gc, long texture)
throws UnsupportedOperationException, IllegalArgumentException {
this.gc = gc;
SurfaceManager surfaceManager = SurfaceManagerFactory.getInstance().createTextureWrapperSurfaceManager(gc, this, texture);
SurfaceManager surfaceManager;
if (gc instanceof SurfaceManager.TextureWrapperFactory factory) {
surfaceManager = factory.createTextureWrapperSurfaceManager(gc, this, texture);
} else throw new UnsupportedOperationException();
sd = surfaceManager.getPrimarySurfaceData();
SurfaceManager.setManager(this, surfaceManager);
}

View File

@@ -4547,6 +4547,11 @@ public class Window extends Container implements Accessible {
}
}
@Override
public void addWindowListener(Window w, WindowListener listener) {
w.addWindowListener(listener);
}
private static void dumpCounter(final String counterName, final double valPerSecond) {
if (USE_COUNTERS) {
doLog(String.format("%s per second: %.2f", counterName, valPerSecond),

View File

@@ -689,6 +689,27 @@ public class BasicTreeUI extends TreeUI
return bounds;
}
/**
* A potentially faster version of {@link #getPathBounds(JTree, TreePath)}
* which calculates only {@code y} and {@code height}
* of the bounding {@code Rectangle}
*/
private Rectangle getVerticalPathBounds(TreePath path) {
if (tree == null || treeState == null) {
return null;
}
int rowHeight = treeState.getRowHeight();
if (rowHeight <= 0) {
return getPathBounds(tree, path);
}
int row = treeState.getRowForPath(path);
if (row < 0) {
return null;
}
return new Rectangle(0, tree.getInsets().top + row * rowHeight,
0, rowHeight);
}
/**
* Returns the path for passed in row. If row is not visible
* null is returned.
@@ -4319,17 +4340,21 @@ public class BasicTreeUI extends TreeUI
updateSize();
}
else if (treeState.isExpanded(parentPath)) {
// Changed nodes are visible
// Find the minimum index, we only need paint from there
// down.
int minIndex = indices[0];
for (int i = indices.length - 1; i > 0; i--) {
minIndex = Math.min(indices[i], minIndex);
TreePath minPath = null;
Rectangle minBounds = null;
if (tree.isShowing()) {
// Changed nodes are visible
// Find the minimum index, we only need paint from there
// down.
int minIndex = indices[0];
for (int i = indices.length - 1; i > 0; i--) {
minIndex = Math.min(indices[i], minIndex);
}
Object minChild = treeModel.getChild(
parentPath.getLastPathComponent(), minIndex);
minPath = parentPath.pathByAddingChild(minChild);
minBounds = getVerticalPathBounds(minPath);
}
Object minChild = treeModel.getChild(
parentPath.getLastPathComponent(), minIndex);
TreePath minPath = parentPath.pathByAddingChild(minChild);
Rectangle minBounds = getPathBounds(tree, minPath);
// Forward to the treestate
treeState.treeNodesChanged(e);
@@ -4337,20 +4362,19 @@ public class BasicTreeUI extends TreeUI
// Mark preferred size as bogus.
updateSize0();
// And repaint
Rectangle newMinBounds = getPathBounds(tree, minPath);
if (minBounds == null || newMinBounds == null) {
return;
}
if (indices.length == 1 &&
newMinBounds.height == minBounds.height) {
tree.repaint(0, minBounds.y, tree.getWidth(),
minBounds.height);
}
else {
tree.repaint(0, minBounds.y, tree.getWidth(),
tree.getHeight() - minBounds.y);
if (minBounds != null) {
// And repaint
Rectangle newMinBounds = getVerticalPathBounds(minPath);
if (newMinBounds != null) {
if (indices.length == 1 &&
newMinBounds.height == minBounds.height) {
tree.repaint(0, minBounds.y, tree.getWidth(),
minBounds.height);
} else {
tree.repaint(0, minBounds.y, tree.getWidth(),
tree.getHeight() - minBounds.y);
}
}
}
}
else {

View File

@@ -37,6 +37,7 @@ import java.awt.event.InputEvent;
import java.awt.event.InvocationEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.WindowListener;
import java.awt.geom.Point2D;
import java.awt.image.BufferStrategy;
import java.awt.peer.ComponentPeer;
@@ -357,6 +358,8 @@ public final class AWTAccessor {
double getCounterPerSecond(Window w, String counterName);
void dumpStats(Window w, boolean reset, StringBuilder sb);
void addWindowListener(Window w, WindowListener listener);
}
/**

View File

@@ -37,7 +37,6 @@ import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.image.VolatileImage;
import sun.java2d.SunGraphics2D;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.DestSurfaceProvider;
import sun.java2d.Surface;
import sun.java2d.pipe.Region;
@@ -158,29 +157,19 @@ public class SunVolatileImage extends VolatileImage
return forcedAccelSurfaceType;
}
protected VolatileSurfaceManager createSurfaceManager(Object context,
ImageCapabilities caps)
{
/**
* Platform-specific SurfaceManagerFactories will return a
* manager suited to acceleration on each platform. But if
* the user is asking for a VolatileImage from a BufferedImageGC,
* then we need to return the appropriate unaccelerated manager.
* Note: this could change in the future; if some platform would
* like to accelerate BIGC volatile images, then this special-casing
* of the BIGC graphicsConfig should live in platform-specific
* code instead.
* We do the same for a Printer Device, and if user requested an
* unaccelerated VolatileImage by passing the capabilities object.
*/
if (graphicsConfig instanceof BufferedImageGraphicsConfig ||
graphicsConfig instanceof sun.print.PrinterGraphicsConfig ||
(caps != null && !caps.isAccelerated()))
{
private VolatileSurfaceManager createSurfaceManager(
Object context, ImageCapabilities caps) {
// GraphicsConfig may provide some specific surface manager
// implementation.
// In case it doesn't, or we were specifically requested to use
// an unaccelerated surface, fall back to the buffered image
// surface manager.
if ((caps == null || caps.isAccelerated()) &&
graphicsConfig instanceof SurfaceManager.Factory factory) {
return factory.createVolatileManager(this, context);
} else {
return new BufImgVolatileSurfaceManager(this, context);
}
SurfaceManagerFactory smf = SurfaceManagerFactory.getInstance();
return smf.createVolatileManager(this, context);
}
private Color getForeground() {

View File

@@ -184,6 +184,31 @@ public abstract class SurfaceManager {
}
}
/**
* See TextureWrapperImage.
*/
public interface TextureWrapperFactory {
SurfaceManager createTextureWrapperSurfaceManager(
GraphicsConfiguration gc, Image image, long texture);
}
/**
* An interface for GraphicsConfiguration objects to implement if
* they create their own VolatileSurfaceManager implementations.
*/
public interface Factory {
/**
* Creates a new instance of a VolatileSurfaceManager given a
* compatible SunVolatileImage.
* An optional context Object can be supplied as a way for the caller
* to pass pipeline-specific context data to the VolatileSurfaceManager
* (such as a backbuffer handle, for example).
*/
VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
Object context);
}
/**
* An interface for GraphicsConfiguration objects to implement if
* their surfaces accelerate images using SurfaceDataProxy objects.
@@ -202,7 +227,8 @@ public abstract class SurfaceManager {
}
public static class ProxyCache {
private final Map<SurfaceManager, SurfaceDataProxy> map = Collections.synchronizedMap(new WeakHashMap<>());
private final Map<SurfaceManager, SurfaceDataProxy> map =
Collections.synchronizedMap(new WeakHashMap<>());
/**
* Return a cached SurfaceDataProxy object for a given SurfaceManager.
@@ -253,7 +279,8 @@ public abstract class SurfaceManager {
void flush(boolean deaccelerate) {
synchronized (weakCache) {
Iterator<WeakReference<SurfaceDataProxy>> i = weakCache.values().iterator();
Iterator<WeakReference<SurfaceDataProxy>> i =
weakCache.values().iterator();
while (i.hasNext()) {
SurfaceDataProxy sdp = i.next().get();
if (sdp == null || sdp.flush(deaccelerate)) {

View File

@@ -1,97 +0,0 @@
/*
* Copyright (c) 2003, 2008, 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* 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.
*/
package sun.java2d;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
/**
* This factory creates platform specific VolatileSurfaceManager
* implementations.
*
* There are two platform specific SurfaceManagerFactories in OpenJDK,
* UnixSurfaceManagerFactory and WindowsSurfaceManagerFactory.
* The actually used SurfaceManagerFactory is set by the respective platform
* GraphicsEnvironment implementations in the static initializer.
*/
public abstract class SurfaceManagerFactory {
/**
* The single shared instance.
*/
private static SurfaceManagerFactory instance;
/**
* Returns the surface manager factory instance. This returns a factory
* that has been set by {@link #setInstance(SurfaceManagerFactory)}.
*
* @return the surface manager factory
*/
public static synchronized SurfaceManagerFactory getInstance() {
if (instance == null) {
throw new IllegalStateException("No SurfaceManagerFactory set.");
}
return instance;
}
/**
* Sets the surface manager factory. This may only be called once, and it
* may not be set back to {@code null} when the factory is already
* instantiated.
*
* @param factory the factory to set
*/
public static synchronized void setInstance(SurfaceManagerFactory factory) {
if (factory == null) {
// We don't want to allow setting this to null at any time.
throw new IllegalArgumentException("factory must be non-null");
}
if (instance != null) {
// We don't want to re-set the instance at any time.
throw new IllegalStateException("The surface manager factory is already initialized");
}
instance = factory;
}
/**
* Creates a new instance of a VolatileSurfaceManager given any
* arbitrary SunVolatileImage. An optional context Object can be supplied
* as a way for the caller to pass pipeline-specific context data to
* the VolatileSurfaceManager (such as a backbuffer handle, for example).
*/
public abstract VolatileSurfaceManager
createVolatileManager(SunVolatileImage image, Object context);
public abstract SurfaceManager createTextureWrapperSurfaceManager(GraphicsConfiguration gc, Image image, long texture);
}

View File

@@ -35,7 +35,7 @@ import sun.java2d.pipe.hw.AccelGraphicsConfig;
* methods directly from OGLSurfaceData.
*/
interface OGLGraphicsConfig extends
AccelGraphicsConfig, SurfaceManager.ProxiedGraphicsConfig
AccelGraphicsConfig, SurfaceManager.ProxiedGraphicsConfig, SurfaceManager.Factory
{
OGLContext getContext();
long getNativeConfigInfo();

View File

@@ -33,7 +33,6 @@ import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.java2d.Surface;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.pipe.BufferedContext;
import sun.java2d.pipe.hw.AccelGraphicsConfig;
import sun.java2d.pipe.hw.AccelTypedVolatileImage;
@@ -54,8 +53,9 @@ import static sun.java2d.pipe.hw.AccelSurface.TEXTURE;
* for most of the methods, including base methods of GraphicsConfiguration class.
*/
public interface VKGraphicsConfig extends AccelGraphicsConfig,
SurfaceManager.ProxiedGraphicsConfig {
SurfaceManager.ProxiedGraphicsConfig, SurfaceManager.Factory {
@Override
default VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
Object context) {
return new VKVolatileSurfaceManager(image, context);

View File

@@ -174,7 +174,8 @@ void VKBlitLoops_Blit(JNIEnv *env,
VKDevice* device = context->surface->device;
BlitSrcType type = decodeSrcType(device, srctype);
VKTexturePoolHandle* imageHandle = VKTexturePool_GetTexture(device->texturePool, sw, sh, type.format);
VKTexturePoolHandle* imageHandle =
VKTexturePool_GetTexture(VKRenderer_GetTexturePool(device->renderer), sw, sh, type.format);
VKImage* image = VKTexturePoolHandle_GetTexture(imageHandle);
VkDeviceSize dataSize = sh * sw * srcInfo.pixelStride;

View File

@@ -272,7 +272,6 @@ void VKDevice_CheckAndAdd(VKEnv* vk, VkPhysicalDevice physicalDevice) {
void VKDevice_Reset(VKDevice* device) {
if (device == NULL) return;
VKRenderer_Destroy(device->renderer);
VKTexturePool_Dispose(device->texturePool);
VKAllocator_Destroy(device->allocator);
ARRAY_FREE(device->enabledExtensions);
ARRAY_FREE(device->enabledLayers);
@@ -392,11 +391,4 @@ Java_sun_java2d_vulkan_VKGPU_init(JNIEnv *env, jclass jClass, jlong jDevice) {
JNU_ThrowByName(env, "java/lang/RuntimeException", "Vulkan: Cannot create renderer");
return;
}
device->texturePool = VKTexturePool_InitWithDevice(device);
if (!device->texturePool) {
VKDevice_Reset(device);
JNU_ThrowByName(env, "java/lang/RuntimeException", "Vulkan: Cannot create texture pool");
return;
}
}

View File

@@ -59,7 +59,6 @@ struct VKDevice {
VKAllocator* allocator;
VKRenderer* renderer;
VKTexturePool* texturePool;
DEVICE_FUNCTION_TABLE(DECL_PFN)
SWAPCHAIN_DEVICE_FUNCTION_TABLE(DECL_PFN)

View File

@@ -94,6 +94,7 @@ typedef struct {
struct VKRenderer {
VKDevice* device;
VKPipelineContext* pipelineContext;
VKTexturePool* texturePool;
POOL(VkCommandBuffer, commandBufferPool);
POOL(VkCommandBuffer, secondaryCommandBufferPool);
@@ -193,6 +194,9 @@ VKRenderingContext *VKRenderer_GetContext() {
return &context;
}
VKTexturePool *VKRenderer_GetTexturePool(VKRenderer* renderer) {
return renderer->texturePool;
}
/**
* Helper function for POOL_TAKE macro.
*/
@@ -368,6 +372,12 @@ VKRenderer* VKRenderer_Create(VKDevice* device) {
return NULL;
}
renderer->texturePool = VKTexturePool_InitWithDevice(device);
if (!renderer->texturePool) {
VKRenderer_Destroy(renderer);
return NULL;
}
// Create command pool
// TODO we currently have single command pool with VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT
// we may need to consider having multiple pools to avoid resetting buffers one-by-one
@@ -438,6 +448,9 @@ void VKRenderer_Destroy(VKRenderer* renderer) {
device->vkDestroyDescriptorPool(device->handle, renderer->descriptorPools[i], NULL);
}
ARRAY_FREE(renderer->descriptorPools);
VKTexturePool_Dispose(renderer->texturePool);
for (uint32_t i = 0; i < ARRAY_SIZE(renderer->imageDescriptorPools); i++) {
device->vkDestroyDescriptorPool(device->handle, renderer->imageDescriptorPools[i], NULL);
}

View File

@@ -29,6 +29,7 @@
#include "VKTypes.h"
#include "VKPipelines.h"
#include "VKTexturePool.h"
#define NO_CLIP ((VkRect2D) {{0, 0}, {0x7FFFFFFFU, 0x7FFFFFFFU}})
@@ -147,5 +148,6 @@ void VKRenderer_DrawImage(VKImage* image, VkFormat format,
float dx1, float dy1, float dx2, float dy2);
VKRenderingContext* VKRenderer_GetContext();
VKTexturePool* VKRenderer_GetTexturePool(VKRenderer* );
#endif //VKRenderer_h_Included

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2025, 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
@@ -48,7 +48,7 @@
// restore the area overwritten by the graphic with
// what was there prior to rendering the graphic.
static const char szNetscape20ext[11] = "NETSCAPE2.0";
static const char szNetscape20ext[] = "NETSCAPE2.0";
#define NSEXT_LOOP 0x01 // Loop Count field code
@@ -181,7 +181,7 @@ SplashDecodeGif(Splash * splash, GifFileType * gif)
}
case APPLICATION_EXT_FUNC_CODE:
{
if (size == sizeof(szNetscape20ext)
if (size == strlen(szNetscape20ext)
&& memcmp(pExtension, szNetscape20ext, size) == 0) {
int iSubCode;

View File

@@ -47,6 +47,7 @@ import java.awt.image.WritableRaster;
import sun.awt.image.OffScreenImage;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.java2d.Disposer;
import sun.java2d.DisposerRecord;
import sun.java2d.SurfaceData;
@@ -55,6 +56,7 @@ import sun.java2d.loops.RenderLoops;
import sun.java2d.loops.SurfaceType;
import sun.java2d.pipe.Region;
import sun.java2d.x11.X11SurfaceData;
import sun.java2d.x11.X11VolatileSurfaceManager;
/**
* This is an implementation of a GraphicsConfiguration object for a
@@ -64,7 +66,7 @@ import sun.java2d.x11.X11SurfaceData;
* @see GraphicsDevice
*/
public class X11GraphicsConfig extends GraphicsConfiguration
implements SurfaceManager.ProxiedGraphicsConfig
implements SurfaceManager.ProxiedGraphicsConfig, SurfaceManager.Factory
{
private final X11GraphicsDevice device;
protected int visual;
@@ -500,4 +502,10 @@ public class X11GraphicsConfig extends GraphicsConfiguration
}
private native boolean isTranslucencyCapable(long x11ConfigData);
@Override
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
Object context) {
return new X11VolatileSurfaceManager(image, context);
}
}

View File

@@ -67,7 +67,8 @@ public final class X11GraphicsDevice extends GraphicsDevice
* therefore methods, which is using this id should be ready to it.
*/
private volatile int screen;
Map<SurfaceType, SurfaceManager.ProxyCache> x11ProxyCacheMap = Collections.synchronizedMap(new HashMap<>());
Map<SurfaceType, SurfaceManager.ProxyCache> x11ProxyCacheMap =
Collections.synchronizedMap(new HashMap<>());
private static AWTPermission fullScreenExclusivePermission;
private static Boolean xrandrExtSupported;
@@ -118,7 +119,8 @@ public final class X11GraphicsDevice extends GraphicsDevice
}
public SurfaceManager.ProxyCache getProxyCacheFor(SurfaceType st) {
return x11ProxyCacheMap.computeIfAbsent(st, unused -> new SurfaceManager.ProxyCache());
return x11ProxyCacheMap.computeIfAbsent(st,
unused -> new SurfaceManager.ProxyCache());
}
/**

View File

@@ -42,8 +42,6 @@ import java.util.Map;
import sun.awt.X11.XToolkit;
import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.UnixSurfaceManagerFactory;
import sun.java2d.xr.XRSurfaceData;
/**
@@ -136,10 +134,6 @@ public final class X11GraphicsEnvironment extends SunGraphicsEnvironment impleme
return null;
}
});
// Install the correct surface manager factory.
SurfaceManagerFactory.setInstance(new UnixSurfaceManagerFactory());
}
private static boolean isVMWare() {

View File

@@ -47,7 +47,7 @@ public class WLDataSource {
private static native void setDnDActionsImpl(long nativePtr, int actions);
private static native void setDnDIconImpl(long nativePtr, int width, int height, int offsetX, int offsetY, int[] pixels);
private static native void setDnDIconImpl(long nativePtr, int scale, int width, int height, int offsetX, int offsetY, int[] pixels);
WLDataSource(WLDataDevice dataDevice, int protocol, Transferable data) {
var wlDataTransferer = (WLDataTransferer) WLDataTransferer.getInstance();
@@ -96,7 +96,7 @@ public class WLDataSource {
setDnDActionsImpl(nativePtr, actions);
}
public void setDnDIcon(Image image, int offsetX, int offsetY) {
public void setDnDIcon(Image image, int scale, int offsetX, int offsetY) {
if (nativePtr == 0) {
throw new IllegalStateException("Native pointer is null");
}
@@ -118,7 +118,7 @@ public class WLDataSource {
bufferedImage.getRGB(0, 0, width, height, pixels, 0, width);
}
setDnDIconImpl(nativePtr, width, height, offsetX, offsetY, pixels);
setDnDIconImpl(nativePtr, scale, width, height, offsetX, offsetY, pixels);
}
public synchronized void destroy() {

View File

@@ -92,21 +92,33 @@ public class WLDragSourceContextPeer extends SunDragSourceContextPeer {
this.dataDevice = dataDevice;
}
private long getComponentWlSurfacePtr() {
private WLComponentPeer getPeer() {
var comp = getComponent();
while (comp != null) {
var peer = AWTAccessor.getComponentAccessor().getPeer(comp);
if (peer instanceof WLComponentPeer wlPeer) {
return wlPeer.getSurface().getWlSurfacePtr();
return wlPeer;
}
comp = comp.getParent();
}
return null;
}
return 0;
private WLMainSurface getSurface() {
WLComponentPeer peer = getPeer();
if (peer != null) {
return peer.getSurface();
}
return null;
}
@Override
protected void startDrag(Transferable trans, long[] formats, Map<Long, DataFlavor> formatMap) {
var mainSurface = getSurface();
if (mainSurface == null) {
return;
}
// formats and formatMap are unused, because WLDataSource already references the same DataTransferer singleton
var source = new WLDragSource(trans);
@@ -118,13 +130,14 @@ public class WLDragSourceContextPeer extends SunDragSourceContextPeer {
var dragImage = getDragImage();
if (dragImage != null) {
var dragImageOffset = getDragImageOffset();
source.setDnDIcon(dragImage, dragImageOffset.x, dragImageOffset.y);
source.setDnDIcon(dragImage,
mainSurface.getGraphicsDevice().getDisplayScale(),
dragImageOffset.x, dragImageOffset.y);
}
long eventSerial = WLToolkit.getInputState().pointerButtonSerial();
var wlSurface = getComponentWlSurfacePtr();
dataDevice.startDrag(source, wlSurface, eventSerial);
dataDevice.startDrag(source, mainSurface.getWlSurfacePtr(), eventSerial);
}
@Override

View File

@@ -26,6 +26,7 @@
package sun.awt.wl;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.peer.FramePeer;
import sun.awt.AWTAccessor;
@@ -42,6 +43,12 @@ public class WLFramePeer extends WLDecoratedPeer implements FramePeer {
super(target, target.isUndecorated(),
Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.ICONIFIED),
Toolkit.getDefaultToolkit().isFrameStateSupported(Frame.MAXIMIZED_BOTH));
AWTAccessor.getWindowAccessor().addWindowListener(target, new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
getFrame().removeNotify();
}
});
}
@Override

View File

@@ -36,8 +36,6 @@ import java.util.Optional;
import sun.awt.HiDPIInfoProvider;
import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.UnixSurfaceManagerFactory;
import sun.util.logging.PlatformLogger;
import sun.util.logging.PlatformLogger.Level;
@@ -58,7 +56,6 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment implements HiD
static {
System.loadLibrary("awt");
SurfaceManagerFactory.setInstance(new UnixSurfaceManagerFactory());
debugScaleEnabled = SunGraphicsEnvironment.isUIScaleEnabled() && SunGraphicsEnvironment.getDebugScale() >= 1;

View File

@@ -1,85 +0,0 @@
/*
* Copyright (c) 2003, 2023, 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* 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.
*/
package sun.java2d;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import sun.awt.X11GraphicsConfig;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.java2d.opengl.GLXGraphicsConfig;
import sun.java2d.opengl.GLXVolatileSurfaceManager;
import sun.java2d.vulkan.VKOffscreenGraphicsConfig;
import sun.java2d.vulkan.WLVKGraphicsConfig;
import sun.java2d.vulkan.VKVolatileSurfaceManager;
import sun.java2d.wl.WLVolatileSurfaceManager;
import sun.java2d.x11.X11VolatileSurfaceManager;
import sun.java2d.xr.*;
/**
* The SurfaceManagerFactory that creates VolatileSurfaceManager
* implementations for the Unix volatile images.
*/
public class UnixSurfaceManagerFactory extends SurfaceManagerFactory {
/**
* Creates a new instance of a VolatileSurfaceManager given any
* arbitrary SunVolatileImage. An optional context Object can be supplied
* as a way for the caller to pass pipeline-specific context data to
* the VolatileSurfaceManager (such as a backbuffer handle, for example).
*
* For Unix platforms, this method returns either an X11- or a GLX-
* specific VolatileSurfaceManager based on the GraphicsConfiguration
* under which the SunVolatileImage was created.
*/
public VolatileSurfaceManager createVolatileManager(SunVolatileImage vImg,
Object context)
{
GraphicsConfiguration gc = vImg.getGraphicsConfig();
if (gc instanceof GLXGraphicsConfig) {
return new GLXVolatileSurfaceManager(vImg, context);
} else if(gc instanceof XRGraphicsConfig) {
return new XRVolatileSurfaceManager(vImg, context);
} else if (gc instanceof X11GraphicsConfig){
return new X11VolatileSurfaceManager(vImg, context);
} else if (gc instanceof WLVKGraphicsConfig) {
return new VKVolatileSurfaceManager(vImg, context);
} else if (gc instanceof VKOffscreenGraphicsConfig) {
return new VKVolatileSurfaceManager(vImg, context);
} else {
return new WLVolatileSurfaceManager(vImg, context);
}
}
@Override
public SurfaceManager createTextureWrapperSurfaceManager(GraphicsConfiguration gc, Image image, long texture) {
throw new UnsupportedOperationException();
}
}

View File

@@ -49,6 +49,7 @@ import sun.awt.X11GraphicsEnvironment;
import sun.awt.image.OffScreenImage;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.java2d.SunGraphics2D;
import sun.java2d.Surface;
import sun.java2d.SurfaceData;
@@ -72,7 +73,8 @@ public final class GLXGraphicsConfig
private long pConfigInfo;
private ContextCapabilities oglCaps;
private final OGLContext context;
private final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
private final SurfaceManager.ProxyCache surfaceDataProxyCache =
new SurfaceManager.ProxyCache();
private static native long getGLXConfigInfo(int screennum, int visualnum);
private static native int getOGLCapabilities(long configInfo);
@@ -413,4 +415,10 @@ public final class GLXGraphicsConfig
public ContextCapabilities getContextCapabilities() {
return oglCaps;
}
@Override
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
Object context) {
return new GLXVolatileSurfaceManager(image, context);
}
}

View File

@@ -30,11 +30,14 @@ import sun.awt.X11GraphicsConfig;
import sun.awt.X11GraphicsDevice;
import sun.awt.X11GraphicsEnvironment;
import sun.awt.image.SurfaceManager;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.VolatileSurfaceManager;
import sun.java2d.SurfaceData;
public class XRGraphicsConfig extends X11GraphicsConfig implements
SurfaceManager.ProxiedGraphicsConfig {
private final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
private final SurfaceManager.ProxyCache surfaceDataProxyCache =
new SurfaceManager.ProxyCache();
private XRGraphicsConfig(X11GraphicsDevice device, int visualnum,
int depth, int colormap, boolean doubleBuffer) {
@@ -59,4 +62,10 @@ public class XRGraphicsConfig extends X11GraphicsConfig implements
public SurfaceManager.ProxyCache getSurfaceDataProxyCache() {
return surfaceDataProxyCache;
}
@Override
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
Object context) {
return new XRVolatileSurfaceManager(image, context);
}
}

View File

@@ -1073,7 +1073,8 @@ Java_sun_awt_wl_WLDataSource_setDnDActionsImpl(JNIEnv *env,
}
JNIEXPORT void JNICALL Java_sun_awt_wl_WLDataSource_setDnDIconImpl
(JNIEnv * env, jclass clazz, jlong nativePtr, jint width, jint height, jint offsetX, jint offsetY, jintArray pixels)
(JNIEnv * env, jclass clazz, jlong nativePtr, jint scale,
jint width, jint height, jint offsetX, jint offsetY, jintArray pixels)
{
struct DataSource *source = jlong_to_ptr(nativePtr);
@@ -1126,6 +1127,10 @@ JNIEXPORT void JNICALL Java_sun_awt_wl_WLDataSource_setDnDIconImpl
wl_surface_attach(source->dragIcon, source->dragIconBuffer, offsetX, offsetY);
#endif
if (scale >= 1) {
wl_surface_set_buffer_scale(source->dragIcon, scale);
}
wl_surface_damage_buffer(source->dragIcon, 0, 0, width, height);
// NOTE: we still need to commit the surface, this is done immediately after start_drag

View File

@@ -91,7 +91,8 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
private float scaleX;
private float scaleY;
final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
final SurfaceManager.ProxyCache surfaceDataProxyCache =
new SurfaceManager.ProxyCache();
static {

View File

@@ -36,8 +36,6 @@ import java.util.ListIterator;
import sun.awt.windows.WToolkit;
import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.WindowsSurfaceManagerFactory;
import sun.java2d.d3d.D3DGraphicsDevice;
import sun.java2d.windows.WindowsFlags;
@@ -68,9 +66,6 @@ public final class Win32GraphicsEnvironment extends SunGraphicsEnvironment {
WindowsFlags.initFlags();
initDisplayWrapper();
// Install correct surface manager factory.
SurfaceManagerFactory.setInstance(new WindowsSurfaceManagerFactory());
double sx = -1;
double sy = -1;
if (isUIScaleEnabled()) {

View File

@@ -1,72 +0,0 @@
/*
* Copyright (c) 2003, 2008, 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* 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.
*/
package sun.java2d;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import sun.awt.image.BufImgVolatileSurfaceManager;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.java2d.d3d.D3DGraphicsConfig;
import sun.java2d.d3d.D3DVolatileSurfaceManager;
import sun.java2d.opengl.WGLGraphicsConfig;
import sun.java2d.opengl.WGLVolatileSurfaceManager;
/**
* The SurfaceManagerFactory that creates VolatileSurfaceManager
* implementations for the Windows volatile images.
*/
public class WindowsSurfaceManagerFactory extends SurfaceManagerFactory {
/**
* Creates a new instance of a VolatileSurfaceManager given any
* arbitrary SunVolatileImage. An optional context Object can be supplied
* as a way for the caller to pass pipeline-specific context data to
* the VolatileSurfaceManager (such as a backbuffer handle, for example).
*
* For Windows platforms, this method returns a Windows-specific
* VolatileSurfaceManager.
*/
public VolatileSurfaceManager createVolatileManager(SunVolatileImage vImg,
Object context)
{
GraphicsConfiguration gc = vImg.getGraphicsConfig();
if (gc instanceof D3DGraphicsConfig) {
return new D3DVolatileSurfaceManager(vImg, context);
} else if (gc instanceof WGLGraphicsConfig) {
return new WGLVolatileSurfaceManager(vImg, context);
} else {
return new BufImgVolatileSurfaceManager(vImg, context);
}
}
@Override
public SurfaceManager createTextureWrapperSurfaceManager(GraphicsConfiguration gc, Image image, long texture) {
throw new UnsupportedOperationException("Not supported");
}
}

View File

@@ -39,6 +39,7 @@ import java.awt.image.VolatileImage;
import sun.awt.Win32GraphicsConfig;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.awt.windows.WComponentPeer;
import sun.java2d.Surface;
import sun.java2d.SurfaceData;
@@ -51,7 +52,7 @@ import static sun.java2d.d3d.D3DContext.D3DContextCaps.*;
public final class D3DGraphicsConfig
extends Win32GraphicsConfig
implements AccelGraphicsConfig
implements AccelGraphicsConfig, SurfaceManager.Factory
{
private static ImageCapabilities imageCaps = new D3DImageCaps();
@@ -307,4 +308,10 @@ public final class D3DGraphicsConfig
public ContextCapabilities getContextCapabilities() {
return device.getContextCapabilities();
}
@Override
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
Object context) {
return new D3DVolatileSurfaceManager(image, context);
}
}

View File

@@ -43,6 +43,7 @@ import sun.awt.Win32GraphicsConfig;
import sun.awt.Win32GraphicsDevice;
import sun.awt.image.SunVolatileImage;
import sun.awt.image.SurfaceManager;
import sun.awt.image.VolatileSurfaceManager;
import sun.awt.windows.WComponentPeer;
import sun.java2d.Disposer;
import sun.java2d.DisposerRecord;
@@ -73,7 +74,8 @@ public final class WGLGraphicsConfig
private ContextCapabilities oglCaps;
private final OGLContext context;
private Object disposerReferent = new Object();
private final SurfaceManager.ProxyCache surfaceDataProxyCache = new SurfaceManager.ProxyCache();
private final SurfaceManager.ProxyCache surfaceDataProxyCache =
new SurfaceManager.ProxyCache();
public static native int getDefaultPixFmt(int screennum);
private static native boolean initWGL();
@@ -432,4 +434,10 @@ public final class WGLGraphicsConfig
public ContextCapabilities getContextCapabilities() {
return oglCaps;
}
@Override
public VolatileSurfaceManager createVolatileManager(SunVolatileImage image,
Object context) {
return new WGLVolatileSurfaceManager(image, context);
}
}

View File

@@ -249,6 +249,8 @@ vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded005
vmTestbase/nsk/jdb/options/listconnectors/listconnectors001/listconnectors001.java initial_run windows-all
vmTestbase/nsk/jdi/Event/_itself_/event001/TestDescription.java JBR-8550 windows-all
vmTestbase/nsk/jdi/Event/_itself_/event002/TestDescription.java JBR-8550 windows-all
vmTestbase/nsk/jdi/LaunchingConnector/launch/launch001/TestDescription.java initial_run windows-all
vmTestbase/nsk/jdi/LaunchingConnector/launch/launch003/TestDescription.java initial_run windows-all
vmTestbase/nsk/jdi/LaunchingConnector/launchnosuspend/launchnosuspend001/TestDescription.java initial_run windows-all

View File

@@ -0,0 +1,72 @@
/*
* Copyright 2025 JetBrains s.r.o.
* 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.
*/
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.util.Objects;
/*
* @test
* @summary regression test for JBR-9365 Unnecessary operations on tree node update
*/
public class NodeUpdatePerformance {
private static int countBefore;
private static int countAfter;
public static void main(String[] args) throws Exception {
SwingUtilities.invokeAndWait(() -> {
DefaultMutableTreeNode root = new DefaultMutableTreeNode();
DefaultMutableTreeNode child = new DefaultMutableTreeNode();
root.add(child);
DefaultTreeModel model = new DefaultTreeModel(root);
JTree tree = new JTree(model);
tree.setRowHeight(10);
tree.setLargeModel(true);
OurRenderer renderer = new OurRenderer();
tree.setCellRenderer(renderer);
countBefore = renderer.invocationCount;
model.valueForPathChanged(new TreePath(child.getPath()), "newValue");
countAfter = renderer.invocationCount;
});
if (countBefore != countAfter) {
throw new RuntimeException("Unexpected renderer access: countBefore=" + countBefore + ", countAfter=" + countAfter);
}
}
private static class OurRenderer extends JLabel implements TreeCellRenderer {
private int invocationCount;
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
invocationCount++;
setText(Objects.toString(value));
return this;
}
}
}

View File

@@ -23,7 +23,7 @@ javax/swing/JFileChooser/8021253/bug8021253.java JBR-6510 macosx-all
javax/swing/JList/4618767/JListSelectedElementTest.java JBR-6510 macosx-all
javax/swing/JSplitPane/4164779/JSplitPaneKeyboardNavigationTest.java JBR-6510 macosx-all
javax/swing/JSplitPane/4820080/JSplitPaneDragColorTest.java JBR-7247 macosx-all
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java JBR-8217 macosx-15.6,macosx-15.6.1
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java JBR-8217 macosx-15.6,macosx-15.6.1,macosx-15.7
javax/swing/SwingGraphics/TranslateTest.java JBR-7510 macosx-aarch64
jb/java/awt/CustomTitleBar/FrameNativeControlsTest.java JBR-6998 macosx-all

View File

@@ -120,7 +120,6 @@ java/awt/Focus/6981400/Test1.java 8029675,JBR-6702 windows-all,macosx-all,linux-
java/awt/Focus/8013611/JDK8013611.java JBR-7338,JBR-7506 linux-all,windows-all
java/awt/Focus/8073453/SwingFocusTransitionTest.java JBR-7339 linux-all,windows-all
java/awt/Focus/8282640/ScrollPaneFocusBugTest.java JBR-7340 linux-all
java/awt/Focus/ActivateFocusTest.java JBR-7888 linux-all
java/awt/Focus/ChoiceFocus/ChoiceFocus.java JBR-7341 linux-all
java/awt/Focus/RollbackFocusFromAnotherWindowTest/RollbackFocusFromAnotherWindowTest.java JBR-8233 linux-x64
java/awt/Graphics2D/TextPerf.java JBR-8541 linux-all,windows-all

View File

@@ -27,7 +27,7 @@ java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedT
java/awt/MenuShortcut/ActionCommandTest.java JBR-8822 windows-x64
java/awt/Robot/Delay/InterruptOfDelay.java 8265986,JBR-8148 macosx-all,linux-x64
java/awt/Robot/MouseLocationOnScreen/MouseLocationOnScreen.java JBR-5390,JBR-9209 macosx-all,linux-all,linux-6.15.8-100.fc41.x86_64
java/awt/Robot/NonEmptyErrorStream.java JBR-5442 macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
java/awt/Robot/NonEmptyErrorStream.java JBR-5442 macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
java/awt/Robot/RobotMoveMultiscreen.java JBR-5442 linux-all
java/awt/Robot/SpuriousMouseEvents/SpuriousMouseEvents.java JBR-6572 linux-all
java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java JBR-7822 linux-x64
@@ -37,8 +37,8 @@ java/awt/Window/WindowSizeDifferentScreens/WindowSizeDifferentScreens.java JBR-5
javax/swing/event/FocusEventCauseTest.java JBR-8811 windows-all
javax/swing/JButton/bug4234034.java JBR-8997 windows-all
javax/swing/JTextField/4532513/DefaultCaretRequestsFocusTest.java JBR-8330 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
javax/swing/JTextArea/4514331/TabShiftsFocusToNextComponent.java JBR-8329 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
javax/swing/JTextField/4532513/DefaultCaretRequestsFocusTest.java JBR-8330 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
javax/swing/JTextArea/4514331/TabShiftsFocusToNextComponent.java JBR-8329 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java JBR-5442 linux-all
javax/swing/SwingWorker/TestDoneBeforeDoInBackground.java JBR-5442 linux-all
javax/swing/system/6799345/TestShutdown.java JBR-6020 windows-all

View File

@@ -116,7 +116,7 @@
java/awt/AlphaComposite/WindowAlphaCompositeTest.java JBR-6553 macosx-all
java/awt/Button/DisabledButtonPress.java JBR-5799 windows-aarch64
java/awt/Desktop/8064934/bug8064934.java JBR-5764,JBR-5799 windows-all
java/awt/Debug/DumpOnKey/DumpOnKey.java JBR-5225,JBR-9350 windows-all,macosx-all
java/awt/Debug/DumpOnKey/DumpOnKey.java JBR-5225 windows-all
java/awt/event/HierarchyEvent/SpecTest.java JBR-7589 windows-all
java/awt/event/KeyEvent/CorrectTime/CorrectTime.java JBR-6665 linux-all,windows-all
java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java 8224055,JBR-5906 macosx-all,linux-all
@@ -164,8 +164,8 @@ java/awt/Frame/HideMaximized/HideMaximized.java JBR-8310 linux-all
java/awt/Frame/Iconify/IconifyTest.java JBR-8836 linux-all
java/awt/Frame/InitialIconifiedTest.java 7144049,8203920 macosx-all,linux-all
java/awt/Frame/MaximizeUndecoratedTest.java JBR-8064 linux-all
java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java JBR-7509,JBR-8889 macosx-15.4.1,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-all
java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java JBR-7786,JBR-7947 linux-all,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-26.0
java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java JBR-7509,JBR-8889 macosx-15.4.1,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7,macosx-all
java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java JBR-7786,JBR-7947 linux-all,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7,macosx-26.0
java/awt/Frame/MaximizedToOppositeScreen/MaximizedToOppositeScreenBig.java JBR-5303 windows-all
java/awt/Frame/MaximizedUndecorated/MaximizedUndecorated.java 8022302 generic-all
java/awt/Frame/MinimizeUndecoratedTest.java 8330731 linux-all
@@ -221,7 +221,7 @@ java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java 7080150,JBR-4880,825318
java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java 8169109,JBR-4880 linux-all,windows-all
java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java 8168646 generic-all
java/awt/MenuBar/8007006/bug8007006.java JBR-9213 macosx-26.0
java/awt/MenuShortcut/FunctionKeyShortcut.java JBR-9207 linux-6.15.8-100.fc41.x86_64
java/awt/MenuShortcut/FunctionKeyShortcut.java JBR-9207 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java 8049405,8253184 generic-all
java/awt/Mixing/AWT_Mixing/MixingFrameResizing.java 8049405,8253184 generic-all
java/awt/Mixing/AWT_Mixing/OpaqueOverlapping.java 8294264 windows-x64
@@ -266,7 +266,7 @@ java/awt/Mixing/MixingInHwPanel.java 8253184 windows-all
java/awt/Mixing/NonOpaqueInternalFrame.java 7124549 macosx-all
java/awt/Mixing/ValidBounds.java 8253184,JBR-5845 windows-all,linux-all
java/awt/Mixing/Validating.java JBR-5908 linux-all
java/awt/Focus/ActivateFocusTest.java JBR-7888 linux-6.15.8-100.fc41.x86_64
java/awt/Focus/ActivateFocusTest.java JBR-7888 linux-all
java/awt/Focus/ActivateOnProperAppContextTest.java 8136516 macosx-all
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 8252772,JBR-5799 linux-all,windows-all
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java 6829264 generic-all
@@ -351,7 +351,7 @@ java/awt/Window/ShapedAndTranslucentWindows/ShapedTranslucentWindowClick.java 80
java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java 8253184 windows-all
java/awt/Window/ShapedAndTranslucentWindows/TranslucentWindowClick.java 8253184 windows-all
java/awt/Window/setLocRelativeTo/SetLocationRelativeToTest.java 8253184 windows-all
java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java JBR-7312,JBR-9192 macosx-all,linux-6.15.8-100.fc41.x86_64
java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java JBR-7312,JBR-9192 macosx-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/awt/Window/MultiWindowApp/MultiWindowAppTest.java 8253184,JBR-6463 windows-all,linux-all
java/awt/Window/ShapedAndTranslucentWindows/FocusAWTTest.java 8222328 windows-all,linux-all,macosx-all
java/awt/Window/ShapedAndTranslucentWindows/Shaped.java 8222328 windows-all,linux-all,macosx-all
@@ -378,7 +378,7 @@ java/awt/image/multiresolution/MultiresolutionIconTest.java 8252812 windows-all,
java/awt/image/multiresolution/MultiResolutionJOptionPaneIconTest.java 8253184 windows-all
java/awt/print/Headless/HeadlessPrinterJob.java 8196088 windows-all
sun/awt/datatransfer/SuplementaryCharactersTransferTest.java 8011371 generic-all
sun/awt/font/TestArabicHebrew.java JBR-8826,JBR-9210 linux-6.15.8-100.fc41.x86_64
sun/awt/font/TestArabicHebrew.java JBR-8826,JBR-9210 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
sun/awt/font/TestDevTransform.java 8347618,JBR-9122 linux-all,windows-all
sun/awt/shell/ShellFolderMemoryLeak.java 8197794 windows-all
sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java 8301177 generic-all
@@ -391,7 +391,8 @@ sun/java2d/SunGraphics2D/DrawImageBilinear.java 8297175 linux-all
java/awt/Graphics/NativeWin32Clear.java JBR-8689 linux-aarch64
java/awt/Graphics/XORPaint.java#id1 JBR-8642 macosx-aarch64
java/awt/Graphics2D/CopyAreaOOB.java JBR-5354,JBR-9206 macosx-all,windows-all,linux-6.15.8-100.fc41.x86_64
java/awt/Graphics/XORPaint.java#id2 JBR-9348 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/awt/Graphics2D/CopyAreaOOB.java JBR-5354,JBR-9206 macosx-all,windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/awt/Graphics2D/DrawString/DisposerTest.java JBR-5010 linux-aarch64
java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java 8266283 generic-all
sun/java2d/SunGraphics2D/PolyVertTest.java 6986565 generic-all
@@ -583,7 +584,7 @@ java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java 8198665,8253184 macosx-
java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java 8177326,8253184,JBR-6305 macosx-all,windows-all,linux-all
java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8253184,8298823 windows-all,macosx-all
java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java 8253184,JBR-5811 windows-all,linux-all
java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java 8005021,8253184,JBR-9208 macosx-all,windows-all,linux-6.15.8-100.fc41.x86_64
java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java 8005021,8253184,JBR-9208 macosx-all,windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java 8051455 macosx-all
java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.java 8253184,JBR-5709 windows-all,linux-all
java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java 8253184,JBR-6752 windows-all,linux-all
@@ -719,9 +720,9 @@ java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersInKeyEvent.java 8157147 linu
java/awt/Mouse/MouseWheelAbsXY/MouseWheelAbsXY.java 8253184,JBR-7076 windows-all,linux-all
java/awt/xembed/server/RunTestXEmbed.java 7034201 linux-all
java/awt/Modal/ModalFocusTransferTests/FocusTransferDialogsDocModalTest.java 8164473 linux-all
java/awt/Frame/DecoratedFrameInsets/DecoratedFrameInsetsTest.java JBR-5205,JBR-9204 linux-5.4.0-1103-aws,linux-6.15.8-100.fc41.x86_64
java/awt/Frame/DecoratedFrameInsets/DecoratedFrameInsetsTest.java JBR-5205,JBR-9204 linux-5.4.0-1103-aws,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/awt/Frame/DisposeParentGC/DisposeParentGC.java 8079786 macosx-all
java/awt/Frame/DynamicLayout/DynamicLayout.java JBR-9205 linux-6.15.8-100.fc41.x86_64
java/awt/Frame/DynamicLayout/DynamicLayout.java JBR-9205 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/awt/GraphicsDevice/DisplayModes/CycleDMImage.java 7099223,8274106 macosx-all,linux-all,windows-all
java/awt/GraphicsDevice/DisplayModes/ExtraAllocationTest.java JBR-6384 macosx-all
@@ -745,7 +746,7 @@ java/awt/Paint/bug8024864.java JBR-6544 generic-all
java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java 8253184,JBR-6844 windows-all,linux-all
java/awt/Paint/ListRepaint.java JBR-5060 linux-all
java/awt/Paint/PaintNativeOnUpdate.java 8253184 windows-all
java/awt/PopupMenu/PopupMenuLocation.java 8238720,JBR-7035,JBR-9251 windows-all,macosx-all,linux-6.15.8-100.fc41.x86_64
java/awt/PopupMenu/PopupMenuLocation.java 8238720,JBR-7035,JBR-9251 windows-all,macosx-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.java 8253184 windows-all
java/awt/GridLayout/ChangeGridSize/ChangeGridSize.java 8238720,8324782 windows-all,macosx-all
java/awt/GridLayout/ComponentPreferredSize/ComponentPreferredSize.java 8238720,8324782 windows-all,macosx-all
@@ -764,7 +765,7 @@ java/awt/MenuBar/TestNoScreenMenuBar.java 8265987 macosx-all
java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java JBR-5210 windows-all
java/awt/Dialog/MakeWindowAlwaysOnTop/MakeWindowAlwaysOnTop.java 8266243,JBR-6632 macosx-all,linux-all
java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java JBR-5225,JBR-9350 windows-all,macosx-all
java/awt/Dialog/ModalDialogPermission/ModalDialogPermission.java JBR-5225 windows-all
java/awt/Dialog/SiblingChildOrder/SiblingChildOrderTest.java JBR-5082 linux-all
java/awt/Window/GetScreenLocation/GetScreenLocationTest.java 8225787,8253184 linux-all,windows-all
java/awt/dnd/DragSourceMotionListenerTest.java 8225131 windows-all
@@ -874,16 +875,16 @@ javax/net/ssl/SSLSocket/Tls13PacketSize.java 8354235 windows-all
java/nio/channels/AsynchronousSocketChannel/StressLoopback.java JBR-8817 windows-aarch64
java/nio/channels/DatagramChannel/AdaptorMulticasting.java 8144003,JBR-8455,JBR-8456,8308807,JBR-9219 macosx-all,aix-ppc64,linux-6.15.8-100.fc41.x86_64
java/nio/channels/DatagramChannel/AdaptorMulticasting.java 8144003,JBR-8455,JBR-8456,8308807,JBR-9219 macosx-all,aix-ppc64,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/nio/channels/DatagramChannel/BasicMulticastTests.java 8144003 macosx-all
java/nio/channels/DatagramChannel/Loopback.java JBR-9219 linux-6.15.8-100.fc41.x86_64
java/nio/channels/DatagramChannel/Loopback.java JBR-9219 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/nio/channels/DatagramChannel/ManySourcesAndTargets.java 8264385 macosx-aarch64
java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java 8144003,JBR-9218 macosx-all,linux-6.15.8-100.fc41.x86_64
java/nio/channels/DatagramChannel/Promiscuous.java 8144003,JBR-9218 macosx-all,linux-6.15.8-100.fc41.x86_64
java/nio/channels/DatagramChannel/PromiscuousIPv6.java JBR-8828,JBR-9218 macosx-x64,linux-6.15.8-100.fc41.x86_64
java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java 8144003,JBR-9218 macosx-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/nio/channels/DatagramChannel/Promiscuous.java 8144003,JBR-9218 macosx-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/nio/channels/DatagramChannel/PromiscuousIPv6.java JBR-8828,JBR-9218 macosx-x64,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/nio/channels/DatagramChannel/Unref.java 8233437 generic-all
java/nio/channels/FileChannel/LargeGatheringWrite.java JBR-9316 linux-6.15.8-100.fc41.x86_64
java/nio/channels/FileChannel/LargeGatheringWrite.java JBR-9316 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/nio/channels/Selector/Wakeup.java 6963118 windows-all
@@ -1019,7 +1020,7 @@ javax/swing/plaf/windows/WindowsRootPaneUI/WrongAltProcessing/WrongAltProcessing
javax/swing/Box/TestBoxFiller.java JBR-5210 windows-all
javax/swing/DataTransfer/bug4655513.java JBR-8849 windows-all
javax/swing/DefaultButtonModel/DefaultButtonModelCrashTest.java JBR-5210,JBR-5799 windows-all
javax/swing/GraphicsConfigNotifier/StalePreferredSize.java JBR-5210,JBR-9211 windows-all,macosx-26.0
javax/swing/GraphicsConfigNotifier/StalePreferredSize.java JBR-5210 windows-all
javax/swing/JButton/4368790/bug4368790.java JBR-5210 windows-all
javax/swing/JButton/4659800/SpaceKeyActivatesButton.java JBR-4949 linux-all,windows-all
javax/swing/JButton/8151303/PressedIconTest.java JBR-5210 windows-all
@@ -1043,7 +1044,7 @@ javax/swing/JComboBox/TestComboBoxComponentRendering.java JBR-8270 linux-all
javax/swing/JComponent/6683775/bug6683775.java 8172337 generic-all
javax/swing/JDialog/Transparency/TransparencyTest.java 8253184 windows-all
javax/swing/JLabel/4138746/JLabelMnemonicsTest.java JBR-4949 linux-all,windows-all
javax/swing/JLabel/6596966/bug6596966.java 8197552,JBR-9195 windows-all,linux-6.15.8-100.fc41.x86_64
javax/swing/JLabel/6596966/bug6596966.java 8197552,JBR-9195 windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
javax/swing/JLabel/7004134/bug7004134.java JBR-5437 linux-all
javax/swing/JLabel/bug4822331.java JBR-7422 windows-10.0
javax/swing/JList/4618767/JListSelectedElementTest.java JBR-4955 windows-all
@@ -1064,11 +1065,11 @@ javax/swing/JMenuItem/8158566/CloseOnMouseClickPropertyTest.java JBR-5545,JBR-65
javax/swing/JMenuItem/bug4839464.java JBR-5911 windows-all
javax/swing/JMenuItem/6249972/bug6249972.java 8197552 windows-all
javax/swing/JOptionPane/7138665/bug7138665.java JBR-5799 windows-all
javax/swing/JOptionPane/8081019/bug8081019.java JBR-5767,JBR-9350 windows-all,macosx-all
javax/swing/JOptionPane/8081019/bug8081019.java JBR-5767 windows-all
javax/swing/JPasswordField/TestSelectedTextBackgroundColor.java JBR-8665 linux-6.8.0-1017-raspi
javax/swing/JProgressBar/8015748/JProgressBarOrientationRobotTest.java JBR-8571 linux-all
javax/swing/JProgressBar/8161664/ProgressBarMemoryLeakTest.java JBR-8926 macosx-x64
javax/swing/JProgressBar/TestJProgressBarHighlightColor.java JBR-9199 linux-6.15.8-100.fc41.x86_64
javax/swing/JProgressBar/TestJProgressBarHighlightColor.java JBR-9199 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
javax/swing/JPopupMenu/4634626/bug4634626.java 8253184 windows-all
javax/swing/JPopupMenu/4760494/bug4760494.java 8253184 windows-all
javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all,linux-all
@@ -1096,10 +1097,10 @@ javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java 8
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java 8194128,8253184,JBR-6515 macosx-all,windows-all,linux-all
javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java 8013450,8253184 macosx-all,windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java 8024627,8253184 macosx-all,windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java JBR-8327 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java JBR-8327 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java 8253184 windows-all
javax/swing/LookAndFeel/8145547/DemandGTK2.sh JBR-9202 linux-6.15.8-100.fc41.x86_64
javax/swing/LookAndFeel/8145547/DemandGTK3.sh JBR-9202 linux-6.15.8-100.fc41.x86_64
javax/swing/LookAndFeel/8145547/DemandGTK2.sh JBR-9202 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
javax/swing/LookAndFeel/8145547/DemandGTK3.sh JBR-9202 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
# The next test below is an intermittent failure
javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java 8159131 linux-all
@@ -1138,12 +1139,12 @@ javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelO
javax/swing/JTabbedPane/4361477/bug4361477.java JBR-5932 linux-all
javax/swing/JTabbedPane/8007563/Test8007563.java 8051591 generic-all
javax/swing/JTabbedPane/4624207/bug4624207.java 8064922,8197552,JBR-6235 macosx-all,windows-all,linux-all 8064922:macosx-all, 8197552:windows-all
javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java 8253184,JBR-8498 windows-all,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
javax/swing/JTabbedPane/TestJTabbedPaneBackgroundColor.java JBR-8493 macosx-15.4.1,macosx-15.6,macosx-15.6.1
javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java 8253184,JBR-8498 windows-all,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
javax/swing/JTabbedPane/TestJTabbedPaneBackgroundColor.java JBR-8493 macosx-15.4.1,macosx-15.6,macosx-15.6.1,macosx-15.7
javax/swing/JToggleButton/TestSelectedKey.java JBR-5846 windows-all
javax/swing/JToolBar/4529206/bug4529206.java JBR-5387 linux-all
javax/swing/JToolTip/6219960/bug6219960.java 8253184 windows-all
javax/swing/JToolTip/TestTooltipBackgroundColor.java JBR-9201 linux-6.15.8-100.fc41.x86_64
javax/swing/JToolTip/TestTooltipBackgroundColor.java JBR-9201 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
javax/swing/SwingUtilities/TestBadBreak/TestBadBreak.java 8160720 generic-all
javax/swing/system/6799345/TestShutdown.java JBR-6881 windows-all,macosx-all
javax/swing/text/AbstractDocument/8190763/TestCCEOnEditEvent.java JBR-5799 windows-all
@@ -1160,8 +1161,8 @@ javax/swing/JInternalFrame/6288609/TestJInternalFrameDispose.java JBR-788 window
javax/swing/JInternalFrame/6647340/bug6647340.java 8253184 windows-all
javax/swing/JInternalFrame/8145060/TestJInternalFrameMinimize.java JBR-788 windows-all,linux-all
javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java JBR-5539 windows-all
javax/swing/JInternalFrame/JInternalFrameTest.java JBR-9193 linux-6.15.8-100.fc41.x86_64
javax/swing/JInternalFrame/Test6325652.java JBR-6111,JBR-9194 windows-all,linux-6.15.8-100.fc41.x86_64
javax/swing/JInternalFrame/JInternalFrameTest.java JBR-9193 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
javax/swing/JInternalFrame/Test6325652.java JBR-6111,JBR-9194 windows-all,linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
javax/swing/JInternalFrame/Test6505027.java JBR-5954 linux-all,macosx-all
javax/swing/JInternalFrame/Test6802868.java 8253184 windows-all
javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java JBR-5210 windows-all
@@ -1200,7 +1201,7 @@ java/awt/Robot/HiDPIScreenCapture/HiDPIRobotScreenCaptureTest.java 8253184,JBR-1
java/awt/Robot/HiDPIScreenCapture/ScreenCaptureTest.java 8253184 windows-all
java/awt/Robot/CheckCommonColors/CheckCommonColors.java 8253184 windows-all
java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java JBR-5802 windows-all
java/awt/Robot/MouseLocationOnScreen/MouseLocationOnScreen.java JBR-9209 linux-6.15.8-100.fc41.x86_64
java/awt/Robot/MouseLocationOnScreen/MouseLocationOnScreen.java JBR-9209 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
java/awt/Robot/MultiScreenRobotPosition/MultiScreenRobotPosition.java JBR-830 windows-all
javax/swing/SwingGraphics/TranslateTest.java JBR-7470 linux-all
@@ -1313,9 +1314,9 @@ jdk/jfr/startupargs/TestStartDuration.java 8214685 windows-
jdk/jfr/jvm/TestDumpOnCrash.java JBR-8780 windows-aarch64
jdk/jfr/jvm/TestWaste.java 8282427 generic-all
jdk/jfr/api/consumer/recordingstream/TestOnEvent.java 8255404 linux-x64
jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java JBR-8460 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
jdk/jfr/api/consumer/streaming/TestJVMCrash.java JBR-8459 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
jdk/jfr/api/consumer/streaming/TestJVMExit.java JBR-8460 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
jdk/jfr/api/consumer/streaming/TestOutOfProcessMigration.java JBR-8460 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
jdk/jfr/api/consumer/streaming/TestJVMCrash.java JBR-8459 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
jdk/jfr/api/consumer/streaming/TestJVMExit.java JBR-8460 macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
############################################################################
@@ -1355,7 +1356,7 @@ javax/swing/JFileChooser/6698013/bug6698013.java 8024419 macosx-all
javax/swing/JColorChooser/8065098/bug8065098.java 8065647 macosx-all
java/awt/Modal/PrintDialogsTest/PrintDialogsTest.java 8068378 generic-all
javax/swing/JTabbedPane/4666224/bug4666224.html 8144124 macosx-all
javax/swing/JTextArea/4697612/bug4697612.java JBR-9200 linux-6.15.8-100.fc41.x86_64
javax/swing/JTextArea/4697612/bug4697612.java JBR-9200 linux-6.15.8-100.fc41.x86_64,linux-6.16.7-100.fc41.x86_64
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java 8253184 windows-all
javax/swing/JTextArea/7049024/bug7049024.java JBR-5836 linux-all
java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java JBR-6353 linux-all,windows-aarch64,macosx-all
@@ -1429,7 +1430,7 @@ jb/java/awt/CustomTitleBar/FrameNativeControlsTest.java JBR-9196 macosx-26.0
jb/java/awt/CustomTitleBar/JDialogNativeControlsTest.java JBR-9196 macosx-26.0
jb/java/awt/CustomTitleBar/MinimizingWindowTest.java JBR-9196 macosx-26.0
jb/java/awt/Graphics2D/TextRender/OGLMetalTextRender.java JBR-4091,JBR-5392 windows-aarch64,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1
jb/java/awt/Graphics2D/TextRender/OGLMetalTextRender.java JBR-4091,JBR-5392 windows-aarch64,macosx-15.3,macosx-15.3.1,macosx-15.3.2,macosx-15.4,macosx-15.5,macosx-15.6,macosx-15.6.1,macosx-15.7
jb/java/awt/event/MouseEvent/MouseMoveEventFallThroughTest.java JBR-8789 windows-all
jb/java/awt/event/TouchScreenEvent/TouchScreenEventsTestLinux.sh JBR-4078 linux-all
jb/java/awt/Font/font430.sh JBR-4956 linux-all

View File

@@ -20,7 +20,6 @@ java/awt/event/StressTest/MouseAndKeyEventStressTest.java JBR-6479,JBR-6090 gene
java/awt/Focus/6378278/InputVerifierTest.java JBR-5799,JBR-6090 windows-all
java/awt/Focus/6382144/EndlessLoopTest.java JBR-6090 windows-all
java/awt/Focus/8282640/ScrollPaneFocusBugTest.java JBR-6090 windows-all
java/awt/Focus/ActivateFocusTest.java JBR-7888 linux-all
java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 8252772,JBR-5799,JBR-6031 linux-all,windows-all
java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java 8198618,JBR-814,JBR-6090 macosx-all,linux-all,windows-all
java/awt/Focus/LabelScrollBarFocus.java JBR-6090 windows-x64
@@ -165,6 +164,7 @@ javax/swing/JComboBox/DisabledComboBoxFontTestAuto.java nobug generic-all
javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java nobug generic-all
javax/swing/JInternalFrame/8069348/bug8069348.java nobug generic-all
javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java nobug generic-all
javax/swing/JInternalFrame/Ctrli.java JBR-9362 windows-all
javax/swing/JLabel/GetSpanHiDpiBug.java nobug generic-all
javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java nobug generic-all
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java nobug generic-all

View File

@@ -7,4 +7,11 @@ javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java JBR-8357 linux
javax/swing/text/ParagraphView/6364882/bug6364882.java JBR-8324 linux-all
jb/java/awt/wayland/RobotGetPixelTest.java JBR-8434 linux-all
jb/java/awt/wayland/RobotGetPixelsTest.java JBR-8434 linux-all
jb/java/awt/wayland/RobotGetPixelsTest.java JBR-8434 linux-all
#
# the below tests are not intended to be executed in S2 configurations because
# the tests contains tags to be launched for various scales including S2
#
jb/javax/swing/wayland/WLPopupMoves.java.WLPopupMoves nobug linux-all

View File

@@ -11,6 +11,7 @@ java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java JBR-8295 linux-x64
javax/swing/GraphicsConfigNotifier/StalePreferredSize.java JBR-7269 linux-all
javax/swing/GraphicsConfigNotifier/TestMultiScreenGConfigNotify.java JBR-8266 linux-x64
javax/swing/InputVerifier/VerifyTarget/VerifyTargetTest.java JBR-7520,JBR-9320 linux-6.8.0-1036-aws,linux-6.14.9-arch1-1
javax/swing/JComboBox/ShowPopupAfterHidePopupTest/ShowPopupAfterHidePopupTest.java JBR-9384 linux-all
javax/swing/JComponent/6989617/bug6989617.java JBR-8796 linux-all
javax/swing/JDesktopPane/TestDesktopManagerNPE.java JBR-8449 linux-x64
javax/swing/JEditorPane/JEditorPaneFontFallback.java JBR-8305 linux-all

View File

@@ -9,4 +9,10 @@ javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java JBR-8357 linux
javax/swing/text/ParagraphView/6364882/bug6364882.java JBR-8324 linux-all
jb/java/awt/wayland/RobotGetPixelTest.java JBR-8434 linux-all
jb/java/awt/wayland/RobotGetPixelsTest.java JBR-8434 linux-all
jb/java/awt/wayland/RobotGetPixelsTest.java JBR-8434 linux-all
#
# the below tests are not intended to be executed in S2 configurations because
# the tests contains tags to be launched for various scales including S2
#
jb/javax/swing/wayland/WLPopupMoves.java.WLPopupMoves nobug linux-all