Compare commits

...

3 Commits

Author SHA1 Message Date
Dmitrii Morskii
36cf861aac JBR-5724: fixed serialization and backward compatibility of Font 2023-08-02 12:29:13 +02:00
Vitaly Provodin
11113008c8 update exclude list on results of 17.0.7_b1034.2 test runs 2023-08-02 09:58:05 +07:00
Dmitry Batrak
55598693c3 JBR-5823 IDEA crashes when '-Dmain.thread.as.edt=true' vmoption is set and VoiceOver is enabled
done as part of JBR-4993 Support using 'main' thread as EDT on macOS
2023-08-01 21:19:01 +03:00
4 changed files with 89 additions and 8 deletions

View File

@@ -53,7 +53,7 @@ GET_CACCESSIBILITY_CLASS_RETURN(nil);
[value release];
value = nil;
}
value = [CommonComponentAccessibility createWithAccessible:axSelectedChild withEnv:env withView:fView];
value = [[CommonComponentAccessibility createWithAccessible:axSelectedChild withEnv:env withView:fView] retain];
return value;
}

View File

@@ -1967,7 +1967,7 @@ public class Font implements java.io.Serializable
*
* @serial
*/
private int fontSerializedDataVersion = 1;
private int fontSerializedDataVersion = 2;
/**
* Writes default serializable fields to a stream.
@@ -2036,9 +2036,13 @@ public class Font implements java.io.Serializable
} catch (Throwable t) {
throw new IOException(t);
} finally {
fRequestedAttributes = null; // don't need it any more
fRequestedAttributes = null; // don't need it any more
}
}
if (features == null) {
features = new TreeMap<>();
}
}
}
/**

View File

@@ -0,0 +1,71 @@
/*
* Copyright 2021-2023 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.
*/
/*
* @test
* @summary check serialization and backward compatibility of Font
*/
import java.awt.*;
import java.io.*;
import java.util.Base64;
public class FontSerialization {
/** Read the Font object from Base64 string. */
private static Font fontDeserialization(String s) throws IOException, ClassNotFoundException {
byte[] data = Base64.getDecoder().decode(s);
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(data));
Font font = (Font) ois.readObject();
ois.close();
return font;
}
/** Write the Font to a Base64 string. */
private static String fontSerialization(Font o) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(o);
oos.close();
return Base64.getEncoder().encodeToString(baos.toByteArray());
}
private static void checkFont(String data, String name) throws IOException, ClassNotFoundException {
Font font = fontDeserialization(data);
if (!font.getFontName().equals(name)) {
throw new Error("deserialized Font name doesn't match");
}
Font reconstructedFont = fontDeserialization(fontSerialization(font));
if ((reconstructedFont.hashCode() != font.hashCode()) || (!reconstructedFont.equals(font))) {
throw new Error("secondarily deserialized Font doesn't match with original");
}
}
public static void main(String[] args) throws Exception {
checkFont("rO0ABXNyAA1qYXZhLmF3dC5Gb250xaE15szeVnMDAAZJABlmb250U2VyaWFsaXplZERhdGFWZXJzaW9uRgAJcG9pbnRTaXplSQAEc2l6ZUkABXN0eWxlTAAUZlJlcXVlc3RlZEF0dHJpYnV0ZXN0ABVMamF2YS91dGlsL0hhc2h0YWJsZTtMAARuYW1ldAASTGphdmEvbGFuZy9TdHJpbmc7eHAAAAABP4AAAAAAAAEAAAAAcHQAC0RlamFWdSBTYW5zeA==", "DejaVu Sans");
checkFont("rO0ABXNyAA1qYXZhLmF3dC5Gb250xaE15szeVnMDAAZJABlmb250U2VyaWFsaXplZERhdGFWZXJzaW9uRgAJcG9pbnRTaXplSQAEc2l6ZUkABXN0eWxlTAAUZlJlcXVlc3RlZEF0dHJpYnV0ZXN0ABVMamF2YS91dGlsL0hhc2h0YWJsZTtMAARuYW1ldAASTGphdmEvbGFuZy9TdHJpbmc7eHAAAAABP4AAAAAAAAEAAAAAcHQAD0Ryb2lkIFNhbnMgTW9ub3g=", "Droid Sans Mono");
checkFont("rO0ABXNyAA1qYXZhLmF3dC5Gb250xaE15szeVnMDAAZJABlmb250U2VyaWFsaXplZERhdGFWZXJzaW9uRgAJcG9pbnRTaXplSQAEc2l6ZUkABXN0eWxlTAAUZlJlcXVlc3RlZEF0dHJpYnV0ZXN0ABVMamF2YS91dGlsL0hhc2h0YWJsZTtMAARuYW1ldAASTGphdmEvbGFuZy9TdHJpbmc7eHAAAAABP4AAAAAAAAEAAAAAcHQAEUZpcmEgQ29kZSBSZWd1bGFyeA==", "Fira Code Regular");
checkFont("rO0ABXNyAA1qYXZhLmF3dC5Gb250xaE15szeVnMDAAZJABlmb250U2VyaWFsaXplZERhdGFWZXJzaW9uRgAJcG9pbnRTaXplSQAEc2l6ZUkABXN0eWxlTAAUZlJlcXVlc3RlZEF0dHJpYnV0ZXN0ABVMamF2YS91dGlsL0hhc2h0YWJsZTtMAARuYW1ldAASTGphdmEvbGFuZy9TdHJpbmc7eHAAAAABP4AAAAAAAAEAAAAAcHQAFUpldEJyYWlucyBNb25vIEl0YWxpY3g=", "JetBrains Mono Italic");
}
}

View File

@@ -214,6 +214,7 @@ java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java JBR-5812 linux-all
java/awt/Toolkit/SunDisplayChangerLeakTest/SunDisplayChangerLeakTest.java JBR-5051 windows-all
java/awt/Toolkit/RealSync/Test.java 8072110 linux-all,windows-all
java/awt/LightweightComponent/LightweightEventTest/LightweightEventTest.java 8159252,JBR-5050 windows-all,macosx-all
java/awt/LightweightDispatcher/LWDispatcherMemoryLeakTest.java JBR-5893 linux-aarch64
java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java 8203047 macosx-all,linux-all
java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.java 8073636,JBR-4211 macosx-all,linux-all
java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java JBR-4905 windows-all,linux-all
@@ -875,12 +876,14 @@ javax/swing/JMenu/4515762/bug4515762.java 8197552 windows-all
javax/swing/JMenu/4692443/bug4692443.java 8197552 windows-all
javax/swing/JMenu/6470128/bug6470128.java 8050988,8253184 generic-all
javax/swing/JMenu/6538132/bug6538132.java JBR-894 windows-all
javax/swing/JMenu/PopupReferenceMemoryLeak.java JBR-5890 windows-aarch64
javax/swing/JMenuBar/4750590/bug4750590.java 8197552 windows-all
javax/swing/JMenuItem/4171437/bug4171437.java 8197552 windows-all
javax/swing/JMenuItem/4654927/bug4654927.java JBR-164,JBR-4337 windows-all,linux-all
javax/swing/JMenuItem/6209975/bug6209975.java 8253184 windows-all
javax/swing/JMenuItem/6249972/bug6249972.java 8197552 windows-all
javax/swing/JMenuItem/8158566/CloseOnMouseClickPropertyTest.java JBR-5510,JBR-5545 linux-all,windows-all
javax/swing/JOptionPane/6428694/bug6428694.java JBR-5892 windows-aarch64
javax/swing/JPopupMenu/6415145/bug6415145.java 8197552 windows-all
javax/swing/JPopupMenu/6515446/bug6515446.java 8197552 windows-all
javax/swing/JRadioButton/8033699/bug8033699.java 8197552 windows-all
@@ -939,20 +942,23 @@ javax/swing/JFileChooser/6798062/bug6798062.java 8146446 windows-all
javax/swing/JComboBox/4523758/bug4523758.java 8253184 windows-all
javax/swing/JComboBox/8072767/bug8072767.java JBR-5540 windows-all
javax/swing/JComboBox/8182031/ComboPopupTest.java 8196465,8253184 linux-all,macosx-all,windows-all
javax/swing/JComboBox/bug4890345.java JBR-5799 windows-all
javax/swing/JComboBox/bug4924758.java JBR-5846 windows-all
javax/swing/JComboBox/bug5029504.java JBR-5799 windows-all
javax/swing/JComboBox/JComboBoxPopupMenuEventTest.java JBR-5210 windows-all
javax/swing/JFileChooser/6738668/bug6738668.java 8194946 generic-all
javax/swing/JInternalFrame/6288609/TestJInternalFrameDispose.java JBR-788 windows-all,linux-all
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-x64
javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java JBR-5539 windows-all
javax/swing/JInternalFrame/Test6325652.java 8224977 macosx-all,windows-all
javax/swing/JInternalFrame/Test6505027.java 8288428 linux-all
javax/swing/JInternalFrame/Test6505027.java 8288428,JBR-165 linux-all,windows-all
javax/swing/JInternalFrame/Test6802868.java 8253184 windows-all
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
javax/swing/JPopupMenu/4966112/bug4966112.java 8253184 windows-all
javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java JBR-5210 windows-all
javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java 8065099,8208565 macosx-all,linux-all,windows-all
javax/swing/dnd/8139050/NativeErrorsInTableDnD.java 8202765,JBR-5210 macosx-all,linux-all,windows-all
javax/swing/JEditorPane/6917744/bug6917744.java 8213124 macosx-all
javax/swing/JEditorPane/8195095/ImageViewTest.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
@@ -1310,7 +1316,7 @@ javax/swing/JPopupMenu/7156657/bug7156657.java JBR-5359 windows-aarch64
javax/swing/JRadioButton/8041561/bug8041561.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
javax/swing/JSplitPane/4820080/JSplitPaneDragColorTest.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
javax/swing/Popup/TaskbarPositionTest.java 8310689 windows-all,macosx-all
javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java 8298124 macosx-all
javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java 8298124,8065099,8208565 macosx-all,linux-all,windows-all
javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
javax/swing/text/html/CSS/4530474/bug4530474.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
jb/java/awt/CustomTitleBar/ActionListenerTest.java JBR-5819 macosx-all,windows-all