From f4a6fc45a0063973ca0ed220cd180a5e5164f1d9 Mon Sep 17 00:00:00 2001 From: Lars Vogel Date: Fri, 14 Nov 2025 09:54:33 +0100 Subject: [PATCH 1/2] JDT Clean-up Use String.replace() instead of String.replaceAll() when possible In https://github.com/eclipse-platform/eclipse.platform.ui/issues/3517 we discuss which automatic clean-ups we should add. This is the result of a manual run in eclipse-platform to see if this clean-up has issues. Also by running it manually before enabling the clean-ups we avoid creating PR per bundle. --- .../ui/views/actions/SearchForBuildFilesDialog.java | 6 +++--- .../ui/org/eclipse/debug/internal/ui/ResourceExtender.java | 4 ++-- .../internal/variables/BuildFilesResolver.java | 2 +- .../org/eclipse/core/tests/filesystem/FileStoreTest.java | 2 +- .../src/org/eclipse/team/core/ScmUrlImportDescription.java | 2 +- .../internal/ui/dialogs/PreferencePageContainerDialog.java | 2 +- .../terminal/view/ui/internal/tabs/TabFolderManager.java | 2 +- .../src/org/eclipse/help/ui/internal/ContextHelpDialog.java | 4 ++-- .../help/ui/internal/browser/embedded/EmbeddedBrowser.java | 2 +- .../src/org/eclipse/help/ui/internal/util/EscapeUtils.java | 2 +- .../org/eclipse/help/ui/internal/views/ContextHelpPart.java | 4 ++-- .../help/internal/webapp/servlet/EclipseConnector.java | 4 ++-- .../base/org/eclipse/ua/tests/util/FileUtil.java | 2 +- .../base/org/eclipse/ua/tests/util/XHTMLUtil.java | 2 +- .../ua/tests/intro/util/IntroModelSerializerTest.java | 2 +- 15 files changed, 21 insertions(+), 21 deletions(-) diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/SearchForBuildFilesDialog.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/SearchForBuildFilesDialog.java index 71588617b77..00d7a0d5814 100644 --- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/SearchForBuildFilesDialog.java +++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/SearchForBuildFilesDialog.java @@ -387,11 +387,11 @@ class ResourceProxyVisitor implements IResourceProxyVisitor { // The character "." must be escaped in regex String input = getInput(); // replace "." with "\\." - input = input.replaceAll("\\.", "\\\\."); //$NON-NLS-1$ //$NON-NLS-2$ + input = input.replace(".", "\\."); //$NON-NLS-1$ //$NON-NLS-2$ // replace "*" with ".*" - input = input.replaceAll("\\*", "\\.\\*"); //$NON-NLS-1$ //$NON-NLS-2$ + input = input.replace("*", ".*"); //$NON-NLS-1$ //$NON-NLS-2$ // replace "?" with ".?" - input = input.replaceAll("\\?", "\\.\\?"); //$NON-NLS-1$ //$NON-NLS-2$ + input = input.replace("?", ".?"); //$NON-NLS-1$ //$NON-NLS-2$ pattern = Pattern.compile(input); } diff --git a/debug/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ResourceExtender.java b/debug/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ResourceExtender.java index dafe59865f7..c684521eccf 100644 --- a/debug/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ResourceExtender.java +++ b/debug/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/ResourceExtender.java @@ -74,8 +74,8 @@ public boolean test(Object receiver, String method, Object[] args, Object expect if (PROPERTY_MATCHES_PATTERN.equals(method)) { String fileName = resource.getName(); String expected = (String) expectedValue; - expected = expected.replaceAll("\\.", "\\\\."); //$NON-NLS-1$//$NON-NLS-2$ - expected = expected.replaceAll("\\*", "\\.\\*"); //$NON-NLS-1$//$NON-NLS-2$ + expected = expected.replace(".", "\\."); //$NON-NLS-1$//$NON-NLS-2$ + expected = expected.replace("*", ".*"); //$NON-NLS-1$//$NON-NLS-2$ Pattern pattern = Pattern.compile(expected); boolean retVal = pattern.matcher(fileName).find(); return retVal; diff --git a/debug/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildFilesResolver.java b/debug/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildFilesResolver.java index 68789c57efe..c01094b9c16 100644 --- a/debug/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildFilesResolver.java +++ b/debug/org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildFilesResolver.java @@ -123,7 +123,7 @@ public String resolveValue(IDynamicVariable variable, String argument) throws Co // the filename so they don't conflict with these // special quotes. // - osPath = osPath.replaceAll("\"", "\\\\\""); //$NON-NLS-1$ //$NON-NLS-2$ + osPath = osPath.replace("\"", "\\\""); //$NON-NLS-1$ //$NON-NLS-2$ fileList.append("\"" + osPath + "\""); //$NON-NLS-1$ //$NON-NLS-2$ } } diff --git a/resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/filesystem/FileStoreTest.java b/resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/filesystem/FileStoreTest.java index e37e349224c..7843161939e 100755 --- a/resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/filesystem/FileStoreTest.java +++ b/resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/filesystem/FileStoreTest.java @@ -756,7 +756,7 @@ public void testSortOrderPaths() { List pathsTrimmed = paths.stream().map(s -> s // .replaceAll("/$", "") // remove trailing slashes .replaceAll("/[^/]+/\\.\\./", "/") // collapse /a/../ to / - .replaceAll("/\\./", "/") // collapse /./ to / + .replace("/./", "/") // collapse /./ to / ).toList(); paths = new ArrayList<>(paths); // to get a mutable copy for shuffling Collections.shuffle(paths); diff --git a/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ScmUrlImportDescription.java b/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ScmUrlImportDescription.java index 469232c552f..09332855303 100644 --- a/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ScmUrlImportDescription.java +++ b/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ScmUrlImportDescription.java @@ -59,7 +59,7 @@ public String getUrl() { } public URI getUri() { - return URI.create(url.replaceAll("\"", "")); //$NON-NLS-1$//$NON-NLS-2$ + return URI.create(url.replace("\"", "")); //$NON-NLS-1$//$NON-NLS-2$ } public void setUrl(String url) { diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/dialogs/PreferencePageContainerDialog.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/dialogs/PreferencePageContainerDialog.java index 025439adad2..6d37ed29268 100644 --- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/dialogs/PreferencePageContainerDialog.java +++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/dialogs/PreferencePageContainerDialog.java @@ -387,7 +387,7 @@ public void updateMessage() { } else { //remove mnemonic see bug 75886 String title = currentPage.getTitle(); - title = title.replaceAll("&", "");//$NON-NLS-1$ //$NON-NLS-2$ + title = title.replace("&", "");//$NON-NLS-1$ //$NON-NLS-2$ setMessage(title); } } else { diff --git a/terminal/bundles/org.eclipse.terminal.view.ui/src/org/eclipse/terminal/view/ui/internal/tabs/TabFolderManager.java b/terminal/bundles/org.eclipse.terminal.view.ui/src/org/eclipse/terminal/view/ui/internal/tabs/TabFolderManager.java index e415a31910a..3d91ff2c46c 100644 --- a/terminal/bundles/org.eclipse.terminal.view.ui/src/org/eclipse/terminal/view/ui/internal/tabs/TabFolderManager.java +++ b/terminal/bundles/org.eclipse.terminal.view.ui/src/org/eclipse/terminal/view/ui/internal/tabs/TabFolderManager.java @@ -888,7 +888,7 @@ protected String state2msg(CTabItem item, TerminalState state) { // Get he current terminal state as string String stateStr = state.toString(); // Lookup a matching text representation of the state - String key = "TabFolderManager_state_" + stateStr.replaceAll("\\.", " ").trim().toLowerCase(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + String key = "TabFolderManager_state_" + stateStr.replace('.', ' ').trim().toLowerCase(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ String stateMsg = null; if (properties != null) { stateMsg = properties.get(key) instanceof String ? (String) properties.get(key) : null; diff --git a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java index 7851842efe5..dd7fe4d49d2 100644 --- a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java +++ b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java @@ -227,8 +227,8 @@ private Control createInfoArea(Composite parent) { } if (styledText == null && context.getText() != null) { styledText = context.getText(); - styledText= styledText.replaceAll("","<@#\\$b>"); //$NON-NLS-1$ //$NON-NLS-2$ - styledText= styledText.replaceAll("", ""); //$NON-NLS-1$ //$NON-NLS-2$ + styledText= styledText.replace("","<@#$b>"); //$NON-NLS-1$ //$NON-NLS-2$ + styledText= styledText.replace("", ""); //$NON-NLS-1$ //$NON-NLS-2$ } if (styledText == null) { // no description found in context objects. styledText = Messages.ContextHelpPart_noDescription; diff --git a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java index 538d6ac2f68..d9ba9e64a53 100644 --- a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java +++ b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowser.java @@ -326,7 +326,7 @@ private void initializeStatusBar(Browser browser) { // Text browser.addStatusTextListener(event -> { - event.text = event.text.replaceAll("&", "&&"); //$NON-NLS-1$ //$NON-NLS-2$ + event.text = event.text.replace("&", "&&"); //$NON-NLS-1$ //$NON-NLS-2$ if (!event.text.equals(statusText)) { statusText = event.text; statusBarText.setText(statusText); diff --git a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/EscapeUtils.java b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/EscapeUtils.java index cf1ef022933..ae679d153af 100644 --- a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/EscapeUtils.java +++ b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/util/EscapeUtils.java @@ -43,7 +43,7 @@ public static String escapeSpecialCharsLeavinggBold(String value) { } public static String escapeAmpersand(String value) { - return value.replaceAll("&", "&"); //$NON-NLS-1$ //$NON-NLS-2$ + return value.replace("&", "&"); //$NON-NLS-1$ //$NON-NLS-2$ } /** diff --git a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java index 8633bb9c604..09541595444 100644 --- a/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java +++ b/ua/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/views/ContextHelpPart.java @@ -702,8 +702,8 @@ private String decodeContextBoldTags(IContext context) { if (styledText == null) { return Messages.ContextHelpPart_noDescription; } - String decodedString = styledText.replaceAll("<@#\\$b>", ""); //$NON-NLS-1$ //$NON-NLS-2$ - decodedString = decodedString.replaceAll("", ""); //$NON-NLS-1$ //$NON-NLS-2$ + String decodedString = styledText.replace("<@#$b>", ""); //$NON-NLS-1$ //$NON-NLS-2$ + decodedString = decodedString.replace("", ""); //$NON-NLS-1$ //$NON-NLS-2$ decodedString = EscapeUtils.escapeSpecialCharsLeavinggBold(decodedString); decodedString = decodedString.replaceAll("\r\n|\n|\r", "
"); //$NON-NLS-1$ //$NON-NLS-2$ return decodedString; diff --git a/ua/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java b/ua/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java index dcfbbccee90..aa3018a6190 100644 --- a/ua/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java +++ b/ua/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/servlet/EclipseConnector.java @@ -342,8 +342,8 @@ private URLConnection openConnection(String url, String jar = url.substring(0, excl); String path = url.length() > excl + 2 ? url.substring(excl + 2) : ""; //$NON-NLS-1$ - url = jar.replaceAll("!", "%21") + "!/" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - + path.replaceAll("!", "%21"); //$NON-NLS-1$ //$NON-NLS-2$ + url = jar.replace("!", "%21") + "!/" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + + path.replace("!", "%21"); //$NON-NLS-1$ //$NON-NLS-2$ } helpURL = new URL(url); } diff --git a/ua/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/FileUtil.java b/ua/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/FileUtil.java index 55677811b46..95f020b85d4 100644 --- a/ua/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/FileUtil.java +++ b/ua/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/FileUtil.java @@ -62,7 +62,7 @@ public static String readString(InputStream in) throws IOException { String result = new String(out.toByteArray(), StandardCharsets.UTF_8); if (result.length() > 0) { // filter windows-specific newline - result = result.replaceAll("\r", ""); + result = result.replace("\r", ""); } // ignore whitespace at start or end return result.trim(); diff --git a/ua/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/XHTMLUtil.java b/ua/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/XHTMLUtil.java index f0ebb7f3c7d..a98b7fafa5a 100644 --- a/ua/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/XHTMLUtil.java +++ b/ua/org.eclipse.ua.tests/base/org/eclipse/ua/tests/util/XHTMLUtil.java @@ -36,7 +36,7 @@ public static String removeEnvironmentSpecificContent(String xhtml) { * becomes: * */ - xhtml = xhtml.replaceAll(" />", "/>"); + xhtml = xhtml.replace(" />", "/>"); /* * The base tag is added before showing in browser. It contains an diff --git a/ua/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/util/IntroModelSerializerTest.java b/ua/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/util/IntroModelSerializerTest.java index 18dab90d102..7f83f4635a8 100644 --- a/ua/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/util/IntroModelSerializerTest.java +++ b/ua/org.eclipse.ua.tests/intro/org/eclipse/ua/tests/intro/util/IntroModelSerializerTest.java @@ -135,7 +135,7 @@ public static Map getXHTMLFiles(IntroModelRoot model) { }); xhtml = XHTMLUtil.removeEnvironmentSpecificContent(xhtml); // filter windows-specific newline - xhtml = xhtml.replaceAll("\r", ""); + xhtml = xhtml.replace("\r", ""); // ignore all beginning and ending whitespace xhtml = xhtml.trim(); map.put(page.getInitialBase() + page.getRawContent(), xhtml); From 53af68d29da4954be35d011094d1dd2acf13f2c6 Mon Sep 17 00:00:00 2001 From: Eclipse Platform Bot Date: Fri, 14 Nov 2025 10:16:11 +0000 Subject: [PATCH 2/2] Version bump(s) for 4.38 stream --- ua/org.eclipse.help.ui/META-INF/MANIFEST.MF | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ua/org.eclipse.help.ui/META-INF/MANIFEST.MF b/ua/org.eclipse.help.ui/META-INF/MANIFEST.MF index 7593a417641..31c1079a58a 100644 --- a/ua/org.eclipse.help.ui/META-INF/MANIFEST.MF +++ b/ua/org.eclipse.help.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %help_system_plugin_name Bundle-SymbolicName: org.eclipse.help.ui; singleton:=true -Bundle-Version: 4.8.200.qualifier +Bundle-Version: 4.8.300.qualifier Bundle-Activator: org.eclipse.help.ui.internal.HelpUIPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin