From 1e066bbb99474531848e40eadb9e79d732057766 Mon Sep 17 00:00:00 2001 From: Andrey Turbanov Date: Sat, 2 Oct 2021 12:14:23 +0300 Subject: [PATCH 1/2] [PATCH] Simplify equals() call on nullable variable and a constant Flipping arguments of 'equals' method, allows simplifying boolean expressions: now we can remove redundant null check before. --- .../macosx/classes/sun/lwawt/macosx/CMenuItem.java | 4 ++-- src/java.desktop/share/classes/java/awt/Window.java | 4 ++-- .../classes/javax/swing/DefaultDesktopManager.java | 6 +++--- .../share/classes/javax/swing/JEditorPane.java | 2 +- .../share/classes/javax/swing/JLayeredPane.java | 4 ++-- .../share/classes/javax/swing/JSplitPane.java | 12 +++++------- .../javax/swing/filechooser/FileSystemView.java | 2 +- .../javax/swing/plaf/basic/BasicTextAreaUI.java | 6 ++---- .../classes/javax/swing/text/AbstractDocument.java | 2 +- .../classes/javax/swing/text/ParagraphView.java | 6 +++--- .../classes/javax/swing/text/TextLayoutStrategy.java | 5 ++--- .../classes/javax/swing/text/html/HTMLDocument.java | 2 +- .../classes/javax/swing/text/html/HTMLEditorKit.java | 2 +- .../classes/javax/swing/text/html/InlineView.java | 5 ++--- .../classes/javax/swing/text/html/TableView.java | 4 ++-- .../share/classes/sun/java2d/SurfaceDataProxy.java | 3 +-- .../share/classes/sun/print/RasterPrinterJob.java | 2 +- .../unix/classes/sun/awt/X11/XTaskbarPeer.java | 2 +- .../unix/classes/sun/print/UnixPrintJob.java | 2 +- .../classes/sun/awt/windows/WDesktopProperties.java | 2 +- 20 files changed, 35 insertions(+), 42 deletions(-) diff --git a/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java b/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java index c29268e0e9f54..c4b2640efb845 100644 --- a/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java +++ b/src/java.desktop/macosx/classes/sun/lwawt/macosx/CMenuItem.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2021, 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 @@ -55,7 +55,7 @@ protected void initialize(MenuItem target) { private boolean isSeparator() { String label = ((MenuItem)getTarget()).getLabel(); - return (label != null && label.equals("-")); + return "-".equals(label); } @Override diff --git a/src/java.desktop/share/classes/java/awt/Window.java b/src/java.desktop/share/classes/java/awt/Window.java index a14591d66704b..d81dc9426e206 100644 --- a/src/java.desktop/share/classes/java/awt/Window.java +++ b/src/java.desktop/share/classes/java/awt/Window.java @@ -417,11 +417,11 @@ public static enum Type { @SuppressWarnings("removal") String s = java.security.AccessController.doPrivileged( new GetPropertyAction("java.awt.syncLWRequests")); - systemSyncLWRequests = (s != null && s.equals("true")); + systemSyncLWRequests = "true".equals(s); @SuppressWarnings("removal") String s2 = java.security.AccessController.doPrivileged( new GetPropertyAction("java.awt.Window.locationByPlatform")); - locationByPlatformProp = (s2 != null && s2.equals("true")); + locationByPlatformProp = "true".equals(s2); } /** diff --git a/src/java.desktop/share/classes/javax/swing/DefaultDesktopManager.java b/src/java.desktop/share/classes/javax/swing/DefaultDesktopManager.java index a0ac9e9996ab0..0e6460abf2055 100644 --- a/src/java.desktop/share/classes/javax/swing/DefaultDesktopManager.java +++ b/src/java.desktop/share/classes/javax/swing/DefaultDesktopManager.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2021, 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 @@ -328,9 +328,9 @@ private void setupDragMode(JComponent f) { Window window = SwingUtilities.getWindowAncestor(f); if (window != null && !window.isOpaque()) { dragMode = DEFAULT_DRAG_MODE; - } else if (mode != null && mode.equals("outline")) { + } else if ("outline".equals(mode)) { dragMode = OUTLINE_DRAG_MODE; - } else if (mode != null && mode.equals("faster") + } else if ("faster".equals(mode) && f instanceof JInternalFrame && ((JInternalFrame)f).isOpaque() && (parent == null || parent.isOpaque())) { diff --git a/src/java.desktop/share/classes/javax/swing/JEditorPane.java b/src/java.desktop/share/classes/javax/swing/JEditorPane.java index 6d708f1b8b8d9..c9f2036f994d4 100644 --- a/src/java.desktop/share/classes/javax/swing/JEditorPane.java +++ b/src/java.desktop/share/classes/javax/swing/JEditorPane.java @@ -2192,7 +2192,7 @@ public View create(Element elem) { Document doc = elem.getDocument(); Object i18nFlag = doc.getProperty("i18n"/*AbstractDocument.I18NProperty*/); - if ((i18nFlag != null) && i18nFlag.equals(Boolean.TRUE)) { + if (Boolean.TRUE.equals(i18nFlag)) { // build a view that support bidi return createI18N(elem); } else { diff --git a/src/java.desktop/share/classes/javax/swing/JLayeredPane.java b/src/java.desktop/share/classes/javax/swing/JLayeredPane.java index 4e4f0215f3e0d..3ff321dfcf213 100644 --- a/src/java.desktop/share/classes/javax/swing/JLayeredPane.java +++ b/src/java.desktop/share/classes/javax/swing/JLayeredPane.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2021, 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 @@ -205,7 +205,7 @@ private void validateOptimizedDrawing() { (layer = (Integer)((JComponent)c). getClientProperty(LAYER_PROPERTY)) != null)) { - if(layer != null && layer.equals(FRAME_CONTENT_LAYER)) + if (FRAME_CONTENT_LAYER.equals(layer)) continue; layeredComponentFound = true; break; diff --git a/src/java.desktop/share/classes/javax/swing/JSplitPane.java b/src/java.desktop/share/classes/javax/swing/JSplitPane.java index bd5e85ed4a643..79a3b8416a40f 100644 --- a/src/java.desktop/share/classes/javax/swing/JSplitPane.java +++ b/src/java.desktop/share/classes/javax/swing/JSplitPane.java @@ -989,25 +989,23 @@ protected void addImpl(Component comp, Object constraints, int index) } /* Find the Component that already exists and remove it. */ - if (constraints != null && (constraints.equals(JSplitPane.LEFT) || - constraints.equals(JSplitPane.TOP))) { + if (JSplitPane.LEFT.equals(constraints) || + JSplitPane.TOP.equals(constraints)) { toRemove = getLeftComponent(); if (toRemove != null) { remove(toRemove); } leftComponent = comp; index = -1; - } else if (constraints != null && - (constraints.equals(JSplitPane.RIGHT) || - constraints.equals(JSplitPane.BOTTOM))) { + } else if (JSplitPane.RIGHT.equals(constraints) || + JSplitPane.BOTTOM.equals(constraints)) { toRemove = getRightComponent(); if (toRemove != null) { remove(toRemove); } rightComponent = comp; index = -1; - } else if (constraints != null && - constraints.equals(JSplitPane.DIVIDER)) { + } else if (JSplitPane.DIVIDER.equals(constraints)) { index = -1; } /* LayoutManager should raise for else condition here. */ diff --git a/src/java.desktop/share/classes/javax/swing/filechooser/FileSystemView.java b/src/java.desktop/share/classes/javax/swing/filechooser/FileSystemView.java index b1cbc21d60f57..17a3b196b07e4 100644 --- a/src/java.desktop/share/classes/javax/swing/filechooser/FileSystemView.java +++ b/src/java.desktop/share/classes/javax/swing/filechooser/FileSystemView.java @@ -824,7 +824,7 @@ public boolean isFloppyDrive(File dir) { public boolean isComputerNode(File dir) { if (dir != null) { String parent = dir.getParent(); - if (parent != null && parent.equals("/net")) { + if ("/net".equals(parent)) { return true; } } diff --git a/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java b/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java index 9cd49dca1d6bb..5637bc9672c11 100644 --- a/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java +++ b/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2021, 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 @@ -26,8 +26,6 @@ import java.beans.*; import java.awt.*; -import java.awt.event.KeyEvent; -import java.awt.event.InputEvent; import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.text.*; @@ -146,7 +144,7 @@ public Dimension getMinimumSize(JComponent c) { public View create(Element elem) { Document doc = elem.getDocument(); Object i18nFlag = doc.getProperty("i18n"/*AbstractDocument.I18NProperty*/); - if ((i18nFlag != null) && i18nFlag.equals(Boolean.TRUE)) { + if (Boolean.TRUE.equals(i18nFlag)) { // build a view that support bidi return createI18N(elem); } else { diff --git a/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java b/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java index 1b97006bc3472..373deefb90c6c 100644 --- a/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java +++ b/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java @@ -765,7 +765,7 @@ private void handleInsertString(int offs, String str, AttributeSet a) // if a default direction of right-to-left has been specified, // we want complex layout even if the text is all left to right. Object d = getProperty(TextAttribute.RUN_DIRECTION); - if ((d != null) && (d.equals(TextAttribute.RUN_DIRECTION_RTL))) { + if (TextAttribute.RUN_DIRECTION_RTL.equals(d)) { putProperty( I18NProperty, Boolean.TRUE); } else { char[] chars = str.toCharArray(); diff --git a/src/java.desktop/share/classes/javax/swing/text/ParagraphView.java b/src/java.desktop/share/classes/javax/swing/text/ParagraphView.java index f8d0e390cb2a8..41fedaf0becbf 100644 --- a/src/java.desktop/share/classes/javax/swing/text/ParagraphView.java +++ b/src/java.desktop/share/classes/javax/swing/text/ParagraphView.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -60,7 +60,7 @@ public ParagraphView(Element elem) { setPropertiesFromAttributes(); Document doc = elem.getDocument(); Object i18nFlag = doc.getProperty(AbstractDocument.I18NProperty); - if ((i18nFlag != null) && i18nFlag.equals(Boolean.TRUE)) { + if (Boolean.TRUE.equals(i18nFlag)) { try { // the classname should probably come from a property file. strategy = new TextLayoutStrategy(); @@ -115,7 +115,7 @@ protected void setPropertiesFromAttributes() { if (a == null) { Document doc = getElement().getDocument(); Object o = doc.getProperty(TextAttribute.RUN_DIRECTION); - if ((o != null) && o.equals(TextAttribute.RUN_DIRECTION_RTL)) { + if (TextAttribute.RUN_DIRECTION_RTL.equals(o)) { alignment = StyleConstants.ALIGN_RIGHT; } else { alignment = StyleConstants.ALIGN_LEFT; diff --git a/src/java.desktop/share/classes/javax/swing/text/TextLayoutStrategy.java b/src/java.desktop/share/classes/javax/swing/text/TextLayoutStrategy.java index 581b52041084f..dc419621f7a9a 100644 --- a/src/java.desktop/share/classes/javax/swing/text/TextLayoutStrategy.java +++ b/src/java.desktop/share/classes/javax/swing/text/TextLayoutStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2021, 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 @@ -29,7 +29,6 @@ import java.text.AttributedCharacterIterator; import java.text.BreakIterator; import java.awt.font.*; -import java.awt.geom.AffineTransform; import javax.swing.JComponent; import javax.swing.event.DocumentEvent; import sun.font.BidiUtils; @@ -127,7 +126,7 @@ protected int layoutRow(FlowView fv, int rowIndex, int p0) { View row = fv.getView(rowIndex); Document doc = fv.getDocument(); Object i18nFlag = doc.getProperty(AbstractDocument.I18NProperty); - if ((i18nFlag != null) && i18nFlag.equals(Boolean.TRUE)) { + if (Boolean.TRUE.equals(i18nFlag)) { int n = row.getViewCount(); if (n > 1) { AbstractDocument d = (AbstractDocument)fv.getDocument(); diff --git a/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java b/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java index bf9ebcfe6515d..ca12f454fdc0e 100644 --- a/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java +++ b/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java @@ -2755,7 +2755,7 @@ public void handleText(char[] data, int pos) { // if a default direction of right-to-left has been specified, // we want complex layout even if the text is all left to right. Object d = getProperty(TextAttribute.RUN_DIRECTION); - if ((d != null) && (d.equals(TextAttribute.RUN_DIRECTION_RTL))) { + if (TextAttribute.RUN_DIRECTION_RTL.equals(d)) { HTMLDocument.this.putProperty( I18NProperty, Boolean.TRUE); } else { if (SwingUtilities2.isComplexLayout(data, 0, data.length)) { diff --git a/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java b/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java index 46a311c05a2e3..b6b0b789eefc3 100644 --- a/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java +++ b/src/java.desktop/share/classes/javax/swing/text/html/HTMLEditorKit.java @@ -1326,7 +1326,7 @@ public View create(Element elem) { } else if (kind == HTML.Tag.IMPLIED) { String ws = (String) elem.getAttributes().getAttribute( CSS.Attribute.WHITE_SPACE); - if ((ws != null) && ws.equals("pre")) { + if ("pre".equals(ws)) { return new LineView(elem); } return new javax.swing.text.html.ParagraphView(elem); diff --git a/src/java.desktop/share/classes/javax/swing/text/html/InlineView.java b/src/java.desktop/share/classes/javax/swing/text/html/InlineView.java index c6fe5fe01fca3..fb6b6ab3a6971 100644 --- a/src/java.desktop/share/classes/javax/swing/text/html/InlineView.java +++ b/src/java.desktop/share/classes/javax/swing/text/html/InlineView.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2021, 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 @@ -25,7 +25,6 @@ package javax.swing.text.html; import java.awt.*; -import java.text.BreakIterator; import javax.swing.event.DocumentEvent; import javax.swing.text.*; @@ -200,7 +199,7 @@ protected void setPropertiesFromAttributes() { setSubscript(s); Object whitespace = a.getAttribute(CSS.Attribute.WHITE_SPACE); - if ((whitespace != null) && whitespace.equals("nowrap")) { + if ("nowrap".equals(whitespace)) { nowrap = true; } else { nowrap = false; diff --git a/src/java.desktop/share/classes/javax/swing/text/html/TableView.java b/src/java.desktop/share/classes/javax/swing/text/html/TableView.java index cbcef3bab4a0f..3c620d0383265 100644 --- a/src/java.desktop/share/classes/javax/swing/text/html/TableView.java +++ b/src/java.desktop/share/classes/javax/swing/text/html/TableView.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2021, 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 @@ -214,7 +214,7 @@ void updateInsets() { short h = (short) caption.getPreferredSpan(Y_AXIS); AttributeSet a = caption.getAttributes(); Object align = a.getAttribute(CSS.Attribute.CAPTION_SIDE); - if ((align != null) && (align.equals("bottom"))) { + if ("bottom".equals(align)) { bottom += h; } else { top += h; diff --git a/src/java.desktop/share/classes/sun/java2d/SurfaceDataProxy.java b/src/java.desktop/share/classes/sun/java2d/SurfaceDataProxy.java index c0a599c53927c..6a84c7fc22bee 100644 --- a/src/java.desktop/share/classes/sun/java2d/SurfaceDataProxy.java +++ b/src/java.desktop/share/classes/sun/java2d/SurfaceDataProxy.java @@ -37,7 +37,6 @@ import sun.java2d.loops.Blit; import sun.java2d.loops.BlitBg; import sun.awt.image.SurfaceManager; -import sun.awt.image.SurfaceManager.FlushableCacheData; import java.security.AccessController; import sun.security.action.GetPropertyAction; @@ -74,7 +73,7 @@ public abstract class SurfaceDataProxy @SuppressWarnings("removal") String manimg = AccessController.doPrivileged( new GetPropertyAction("sun.java2d.managedimages")); - if (manimg != null && manimg.equals("false")) { + if ("false".equals(manimg)) { cachingAllowed = false; System.out.println("Disabling managed images"); } diff --git a/src/java.desktop/share/classes/sun/print/RasterPrinterJob.java b/src/java.desktop/share/classes/sun/print/RasterPrinterJob.java index 28f493c423e19..075bdefb1458e 100644 --- a/src/java.desktop/share/classes/sun/print/RasterPrinterJob.java +++ b/src/java.desktop/share/classes/sun/print/RasterPrinterJob.java @@ -1547,7 +1547,7 @@ public void print(PrintRequestAttributeSet attributes) * PrintRequestAttributeSet while calling print(attributes) */ JobSheets js = (JobSheets)psvc.getDefaultAttributeValue(JobSheets.class); - if (js != null && js.equals(JobSheets.NONE)) { + if (JobSheets.NONE.equals(js)) { noJobSheet = true; } diff --git a/src/java.desktop/unix/classes/sun/awt/X11/XTaskbarPeer.java b/src/java.desktop/unix/classes/sun/awt/X11/XTaskbarPeer.java index 0afdd5001637f..33bebe77de7d4 100644 --- a/src/java.desktop/unix/classes/sun/awt/X11/XTaskbarPeer.java +++ b/src/java.desktop/unix/classes/sun/awt/X11/XTaskbarPeer.java @@ -48,7 +48,7 @@ final class XTaskbarPeer implements TaskbarPeer { String de = AccessController.doPrivileged( (PrivilegedAction) () -> System.getenv("XDG_CURRENT_DESKTOP")); - isUnity = de != null && de.equals("Unity"); + isUnity = "Unity".equals(de); } private static void initWithLock() { diff --git a/src/java.desktop/unix/classes/sun/print/UnixPrintJob.java b/src/java.desktop/unix/classes/sun/print/UnixPrintJob.java index 89e76d20c5776..2184e8a3fcf4d 100644 --- a/src/java.desktop/unix/classes/sun/print/UnixPrintJob.java +++ b/src/java.desktop/unix/classes/sun/print/UnixPrintJob.java @@ -128,7 +128,7 @@ public class UnixPrintJob implements CancelablePrintJob { mDestType = UnixPrintJob.DESTPRINTER; JobSheets js = (JobSheets)(service. getDefaultAttributeValue(JobSheets.class)); - if (js != null && js.equals(JobSheets.NONE)) { + if (JobSheets.NONE.equals(js)) { mNoJobSheet = true; } } diff --git a/src/java.desktop/windows/classes/sun/awt/windows/WDesktopProperties.java b/src/java.desktop/windows/classes/sun/awt/windows/WDesktopProperties.java index 8126c31b95cef..99ae400cf012d 100644 --- a/src/java.desktop/windows/classes/sun/awt/windows/WDesktopProperties.java +++ b/src/java.desktop/windows/classes/sun/awt/windows/WDesktopProperties.java @@ -268,7 +268,7 @@ synchronized RenderingHints getDesktopAAHints() { Boolean smoothingOn = (Boolean)map.get("win.text.fontSmoothingOn"); - if (smoothingOn != null && smoothingOn.equals(Boolean.TRUE)) { + if (Boolean.TRUE.equals(smoothingOn)) { Integer typeID = (Integer)map.get("win.text.fontSmoothingType"); /* "1" is GASP/Standard but we'll also use that if the return * value is anything other than "2" for LCD. From 02b25450590d1bbef726530dd46c974c56c6ca93 Mon Sep 17 00:00:00 2001 From: Andrey Turbanov Date: Tue, 5 Oct 2021 19:16:25 +0300 Subject: [PATCH 2/2] [PATCH] Simplify equals() call on nullable variable and a constant in java.desktop revert cases where 'equals' is called on unknown class to preserve original behaviour --- .../share/classes/javax/swing/JEditorPane.java | 2 +- .../share/classes/javax/swing/JSplitPane.java | 12 +++++++----- .../javax/swing/plaf/basic/BasicTextAreaUI.java | 6 ++++-- .../classes/javax/swing/text/AbstractDocument.java | 2 +- .../classes/javax/swing/text/ParagraphView.java | 6 +++--- .../classes/javax/swing/text/TextLayoutStrategy.java | 5 +++-- .../classes/javax/swing/text/html/HTMLDocument.java | 2 +- .../classes/javax/swing/text/html/InlineView.java | 5 +++-- .../classes/javax/swing/text/html/TableView.java | 4 ++-- 9 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/java.desktop/share/classes/javax/swing/JEditorPane.java b/src/java.desktop/share/classes/javax/swing/JEditorPane.java index c9f2036f994d4..6d708f1b8b8d9 100644 --- a/src/java.desktop/share/classes/javax/swing/JEditorPane.java +++ b/src/java.desktop/share/classes/javax/swing/JEditorPane.java @@ -2192,7 +2192,7 @@ public View create(Element elem) { Document doc = elem.getDocument(); Object i18nFlag = doc.getProperty("i18n"/*AbstractDocument.I18NProperty*/); - if (Boolean.TRUE.equals(i18nFlag)) { + if ((i18nFlag != null) && i18nFlag.equals(Boolean.TRUE)) { // build a view that support bidi return createI18N(elem); } else { diff --git a/src/java.desktop/share/classes/javax/swing/JSplitPane.java b/src/java.desktop/share/classes/javax/swing/JSplitPane.java index 79a3b8416a40f..bd5e85ed4a643 100644 --- a/src/java.desktop/share/classes/javax/swing/JSplitPane.java +++ b/src/java.desktop/share/classes/javax/swing/JSplitPane.java @@ -989,23 +989,25 @@ protected void addImpl(Component comp, Object constraints, int index) } /* Find the Component that already exists and remove it. */ - if (JSplitPane.LEFT.equals(constraints) || - JSplitPane.TOP.equals(constraints)) { + if (constraints != null && (constraints.equals(JSplitPane.LEFT) || + constraints.equals(JSplitPane.TOP))) { toRemove = getLeftComponent(); if (toRemove != null) { remove(toRemove); } leftComponent = comp; index = -1; - } else if (JSplitPane.RIGHT.equals(constraints) || - JSplitPane.BOTTOM.equals(constraints)) { + } else if (constraints != null && + (constraints.equals(JSplitPane.RIGHT) || + constraints.equals(JSplitPane.BOTTOM))) { toRemove = getRightComponent(); if (toRemove != null) { remove(toRemove); } rightComponent = comp; index = -1; - } else if (JSplitPane.DIVIDER.equals(constraints)) { + } else if (constraints != null && + constraints.equals(JSplitPane.DIVIDER)) { index = -1; } /* LayoutManager should raise for else condition here. */ diff --git a/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java b/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java index 5637bc9672c11..9cd49dca1d6bb 100644 --- a/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java +++ b/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2014, 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 @@ -26,6 +26,8 @@ import java.beans.*; import java.awt.*; +import java.awt.event.KeyEvent; +import java.awt.event.InputEvent; import javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.text.*; @@ -144,7 +146,7 @@ public Dimension getMinimumSize(JComponent c) { public View create(Element elem) { Document doc = elem.getDocument(); Object i18nFlag = doc.getProperty("i18n"/*AbstractDocument.I18NProperty*/); - if (Boolean.TRUE.equals(i18nFlag)) { + if ((i18nFlag != null) && i18nFlag.equals(Boolean.TRUE)) { // build a view that support bidi return createI18N(elem); } else { diff --git a/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java b/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java index 373deefb90c6c..1b97006bc3472 100644 --- a/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java +++ b/src/java.desktop/share/classes/javax/swing/text/AbstractDocument.java @@ -765,7 +765,7 @@ private void handleInsertString(int offs, String str, AttributeSet a) // if a default direction of right-to-left has been specified, // we want complex layout even if the text is all left to right. Object d = getProperty(TextAttribute.RUN_DIRECTION); - if (TextAttribute.RUN_DIRECTION_RTL.equals(d)) { + if ((d != null) && (d.equals(TextAttribute.RUN_DIRECTION_RTL))) { putProperty( I18NProperty, Boolean.TRUE); } else { char[] chars = str.toCharArray(); diff --git a/src/java.desktop/share/classes/javax/swing/text/ParagraphView.java b/src/java.desktop/share/classes/javax/swing/text/ParagraphView.java index 41fedaf0becbf..f8d0e390cb2a8 100644 --- a/src/java.desktop/share/classes/javax/swing/text/ParagraphView.java +++ b/src/java.desktop/share/classes/javax/swing/text/ParagraphView.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -60,7 +60,7 @@ public ParagraphView(Element elem) { setPropertiesFromAttributes(); Document doc = elem.getDocument(); Object i18nFlag = doc.getProperty(AbstractDocument.I18NProperty); - if (Boolean.TRUE.equals(i18nFlag)) { + if ((i18nFlag != null) && i18nFlag.equals(Boolean.TRUE)) { try { // the classname should probably come from a property file. strategy = new TextLayoutStrategy(); @@ -115,7 +115,7 @@ protected void setPropertiesFromAttributes() { if (a == null) { Document doc = getElement().getDocument(); Object o = doc.getProperty(TextAttribute.RUN_DIRECTION); - if (TextAttribute.RUN_DIRECTION_RTL.equals(o)) { + if ((o != null) && o.equals(TextAttribute.RUN_DIRECTION_RTL)) { alignment = StyleConstants.ALIGN_RIGHT; } else { alignment = StyleConstants.ALIGN_LEFT; diff --git a/src/java.desktop/share/classes/javax/swing/text/TextLayoutStrategy.java b/src/java.desktop/share/classes/javax/swing/text/TextLayoutStrategy.java index dc419621f7a9a..581b52041084f 100644 --- a/src/java.desktop/share/classes/javax/swing/text/TextLayoutStrategy.java +++ b/src/java.desktop/share/classes/javax/swing/text/TextLayoutStrategy.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2017, 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 @@ -29,6 +29,7 @@ import java.text.AttributedCharacterIterator; import java.text.BreakIterator; import java.awt.font.*; +import java.awt.geom.AffineTransform; import javax.swing.JComponent; import javax.swing.event.DocumentEvent; import sun.font.BidiUtils; @@ -126,7 +127,7 @@ protected int layoutRow(FlowView fv, int rowIndex, int p0) { View row = fv.getView(rowIndex); Document doc = fv.getDocument(); Object i18nFlag = doc.getProperty(AbstractDocument.I18NProperty); - if (Boolean.TRUE.equals(i18nFlag)) { + if ((i18nFlag != null) && i18nFlag.equals(Boolean.TRUE)) { int n = row.getViewCount(); if (n > 1) { AbstractDocument d = (AbstractDocument)fv.getDocument(); diff --git a/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java b/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java index ca12f454fdc0e..bf9ebcfe6515d 100644 --- a/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java +++ b/src/java.desktop/share/classes/javax/swing/text/html/HTMLDocument.java @@ -2755,7 +2755,7 @@ public void handleText(char[] data, int pos) { // if a default direction of right-to-left has been specified, // we want complex layout even if the text is all left to right. Object d = getProperty(TextAttribute.RUN_DIRECTION); - if (TextAttribute.RUN_DIRECTION_RTL.equals(d)) { + if ((d != null) && (d.equals(TextAttribute.RUN_DIRECTION_RTL))) { HTMLDocument.this.putProperty( I18NProperty, Boolean.TRUE); } else { if (SwingUtilities2.isComplexLayout(data, 0, data.length)) { diff --git a/src/java.desktop/share/classes/javax/swing/text/html/InlineView.java b/src/java.desktop/share/classes/javax/swing/text/html/InlineView.java index fb6b6ab3a6971..c6fe5fe01fca3 100644 --- a/src/java.desktop/share/classes/javax/swing/text/html/InlineView.java +++ b/src/java.desktop/share/classes/javax/swing/text/html/InlineView.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2013, 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 @@ -25,6 +25,7 @@ package javax.swing.text.html; import java.awt.*; +import java.text.BreakIterator; import javax.swing.event.DocumentEvent; import javax.swing.text.*; @@ -199,7 +200,7 @@ protected void setPropertiesFromAttributes() { setSubscript(s); Object whitespace = a.getAttribute(CSS.Attribute.WHITE_SPACE); - if ("nowrap".equals(whitespace)) { + if ((whitespace != null) && whitespace.equals("nowrap")) { nowrap = true; } else { nowrap = false; diff --git a/src/java.desktop/share/classes/javax/swing/text/html/TableView.java b/src/java.desktop/share/classes/javax/swing/text/html/TableView.java index 3c620d0383265..cbcef3bab4a0f 100644 --- a/src/java.desktop/share/classes/javax/swing/text/html/TableView.java +++ b/src/java.desktop/share/classes/javax/swing/text/html/TableView.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2018, 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 @@ -214,7 +214,7 @@ void updateInsets() { short h = (short) caption.getPreferredSpan(Y_AXIS); AttributeSet a = caption.getAttributes(); Object align = a.getAttribute(CSS.Attribute.CAPTION_SIDE); - if ("bottom".equals(align)) { + if ((align != null) && (align.equals("bottom"))) { bottom += h; } else { top += h;