Skip to content

Commit 824a163

Browse files
committed
Use new IFile.write() and IFile.readString() methods
1 parent a6355cf commit 824a163

File tree

3 files changed

+46
-50
lines changed

3 files changed

+46
-50
lines changed

ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/BuildFileCreator.java

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,9 @@
1717

1818
package org.eclipse.ant.internal.ui.datatransfer;
1919

20-
import java.io.ByteArrayInputStream;
2120
import java.io.File;
2221
import java.io.FilenameFilter;
2322
import java.io.IOException;
24-
import java.io.InputStream;
2523
import java.io.UnsupportedEncodingException;
2624
import java.nio.charset.StandardCharsets;
2725
import java.util.ArrayList;
@@ -188,16 +186,8 @@ private static void createBuildFilesLoop(Set<IJavaProject> projects, Shell shell
188186

189187
// write build file
190188
String xml = ExportUtil.toString(instance.doc);
191-
try (InputStream is = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8))) {
192-
if (file.exists()) {
193-
file.setContents(is, true, true, null);
194-
} else {
195-
file.create(is, true, null);
196-
}
197-
}
198-
catch (IOException closException) {
199-
// ignored
200-
}
189+
byte[] bytes = xml.getBytes(StandardCharsets.UTF_8);
190+
file.write(bytes, true, false, true, null);
201191
if (localmonitor.isCanceled()) {
202192
return;
203193
}
@@ -1022,12 +1012,8 @@ public void addApplet(Map<String, String> variable2value, ILaunchConfiguration c
10221012
{
10231013
// write build file
10241014
String html = AppletUtil.buildHTMLFile(conf);
1025-
InputStream is = new ByteArrayInputStream(html.getBytes(StandardCharsets.UTF_8));
1026-
if (file.exists()) {
1027-
file.setContents(is, true, true, null);
1028-
} else {
1029-
file.create(is, true, null);
1030-
}
1015+
byte[] bytes = html.getBytes(StandardCharsets.UTF_8);
1016+
file.write(bytes, true, false, true, null);
10311017
}
10321018

10331019
Element element = doc.createElement("target"); //$NON-NLS-1$

resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/CheckMissingNaturesListener.java

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,45 @@
1616
*******************************************************************************/
1717
package org.eclipse.core.internal.resources;
1818

19-
import java.io.*;
20-
import java.util.*;
19+
import java.util.Arrays;
20+
import java.util.Collection;
21+
import java.util.Collections;
22+
import java.util.HashMap;
23+
import java.util.HashSet;
24+
import java.util.Map;
25+
import java.util.Set;
2126
import java.util.regex.Matcher;
2227
import java.util.regex.Pattern;
23-
import org.eclipse.core.internal.utils.FileUtil;
2428
import org.eclipse.core.internal.utils.Messages;
25-
import org.eclipse.core.resources.*;
26-
import org.eclipse.core.runtime.*;
29+
import org.eclipse.core.resources.IContainer;
30+
import org.eclipse.core.resources.IFile;
31+
import org.eclipse.core.resources.IMarker;
32+
import org.eclipse.core.resources.IProject;
33+
import org.eclipse.core.resources.IProjectDescription;
34+
import org.eclipse.core.resources.IResource;
35+
import org.eclipse.core.resources.IResourceChangeEvent;
36+
import org.eclipse.core.resources.IResourceChangeListener;
37+
import org.eclipse.core.resources.IResourceDelta;
38+
import org.eclipse.core.resources.IWorkspace;
39+
import org.eclipse.core.resources.IWorkspaceRoot;
40+
import org.eclipse.core.resources.ResourcesPlugin;
41+
import org.eclipse.core.resources.WorkspaceJob;
42+
import org.eclipse.core.runtime.CoreException;
43+
import org.eclipse.core.runtime.ILog;
44+
import org.eclipse.core.runtime.IProgressMonitor;
45+
import org.eclipse.core.runtime.IStatus;
46+
import org.eclipse.core.runtime.Status;
2747
import org.eclipse.core.runtime.jobs.Job;
28-
import org.eclipse.core.runtime.preferences.*;
48+
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
2949
import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
3050
import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
51+
import org.eclipse.core.runtime.preferences.IScopeContext;
52+
import org.eclipse.core.runtime.preferences.InstanceScope;
3153
import org.eclipse.osgi.util.NLS;
32-
import org.osgi.service.component.annotations.*;
54+
import org.osgi.service.component.annotations.Activate;
55+
import org.osgi.service.component.annotations.Component;
56+
import org.osgi.service.component.annotations.Deactivate;
57+
import org.osgi.service.component.annotations.Reference;
3358

3459
@Component(service = IResourceChangeListener.class, property = IResourceChangeListener.PROPERTY_EVENT_MASK + ":Integer="
3560
+ IResourceChangeEvent.POST_CHANGE)
@@ -238,23 +263,15 @@ protected void updateRange(IMarker marker, String natureId, IFile file) {
238263
}
239264
Pattern pattern = Pattern.compile(".*<" + IModelObjectConstants.NATURE + ">\\s*(" + natureId.replace(".", "\\.") + ")\\s*</" + IModelObjectConstants.NATURE + ">.*", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
240265
Pattern.DOTALL);
241-
try (
242-
InputStream input = file.getContents();
243-
ByteArrayOutputStream output = new ByteArrayOutputStream();
244-
) {
245-
IPath path = file.getLocation();
246-
if (path == null) {
247-
path = file.getFullPath();
248-
}
249-
FileUtil.transferStreams(input, output, path.toString(), new NullProgressMonitor());
250-
String content = output.toString();
266+
try {
267+
String content = file.readString();
251268
Matcher matcher = pattern.matcher(content);
252269
if (matcher.matches() && matcher.groupCount() > 0) {
253270
marker.setAttribute(IMarker.CHAR_START, matcher.start(1));
254271
marker.setAttribute(IMarker.CHAR_END, matcher.end(1));
255272
}
256-
} catch (IOException | CoreException e) {
257-
log.log(new Status(IStatus.ERROR, ResourcesPlugin.PI_RESOURCES, e.getMessage(), e));
273+
} catch (CoreException e) {
274+
log.log(Status.error(e.getMessage(), e));
258275
}
259276
}
260277

resources/tests/org.eclipse.core.tests.resources/src/org/eclipse/core/tests/resources/NatureTest.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import static org.eclipse.core.tests.resources.ResourceTestUtil.createUniqueString;
2828
import static org.junit.Assert.assertThrows;
2929

30-
import java.io.ByteArrayOutputStream;
3130
import java.io.FileInputStream;
3231
import java.io.FileOutputStream;
3332
import java.io.IOException;
@@ -39,7 +38,6 @@
3938
import org.eclipse.core.internal.resources.CheckMissingNaturesListener;
4039
import org.eclipse.core.internal.resources.File;
4140
import org.eclipse.core.internal.resources.PreferenceInitializer;
42-
import org.eclipse.core.internal.utils.FileUtil;
4341
import org.eclipse.core.resources.IFile;
4442
import org.eclipse.core.resources.IMarker;
4543
import org.eclipse.core.resources.IProject;
@@ -380,11 +378,9 @@ public void testMissingNatureAddsMarker() throws Exception {
380378
assertThat(marker.getAttribute("natureId")).isEqualTo(NATURE_MISSING);
381379
assertThat(marker.getAttribute(IMarker.CHAR_START, -42)).isNotEqualTo(-42);
382380
assertThat(marker.getAttribute(IMarker.CHAR_END, -42)).isNotEqualTo(-42);
383-
try (ByteArrayOutputStream bos = new ByteArrayOutputStream(); InputStream input = ((IFile) marker.getResource()).getContents()) {
384-
FileUtil.transferStreams(input, bos, "whatever", createTestMonitor());
385-
String marked = bos.toString().substring(marker.getAttribute(IMarker.CHAR_START, -42), marker.getAttribute(IMarker.CHAR_END, -42));
386-
assertThat(marked).isEqualTo(NATURE_MISSING);
387-
}
381+
String content = ((IFile) marker.getResource()).readString();
382+
String marked = content.substring(marker.getAttribute(IMarker.CHAR_START, -42), marker.getAttribute(IMarker.CHAR_END, -42));
383+
assertThat(marked).isEqualTo(NATURE_MISSING);
388384
}
389385

390386
@Test
@@ -408,12 +404,9 @@ public void testMissingNatureWithWhitespacesSetChars() throws Exception {
408404
assertThat(marker.getAttribute("natureId")).isEqualTo(NATURE_MISSING);
409405
assertThat(marker.getAttribute(IMarker.CHAR_START, -42)).isNotEqualTo(-42);
410406
assertThat(marker.getAttribute(IMarker.CHAR_END, -42)).isNotEqualTo(-42);
411-
try (ByteArrayOutputStream bos = new ByteArrayOutputStream(); InputStream input = ((IFile) marker.getResource()).getContents()) {
412-
FileUtil.transferStreams(input, bos, "whatever", createTestMonitor());
413-
String marked = bos.toString().substring(marker.getAttribute(IMarker.CHAR_START, -42),
414-
marker.getAttribute(IMarker.CHAR_END, -42));
415-
assertThat(marked).isEqualTo(NATURE_MISSING);
416-
}
407+
String content = ((IFile) marker.getResource()).readString();
408+
String marked = content.substring(marker.getAttribute(IMarker.CHAR_START, -42), marker.getAttribute(IMarker.CHAR_END, -42));
409+
assertThat(marked).isEqualTo(NATURE_MISSING);
417410
}
418411

419412
@Test

0 commit comments

Comments
 (0)