|
4 | 4 | import com.intellij.openapi.vfs.VirtualFile;
|
5 | 5 | import org.apache.commons.io.IOUtils;
|
6 | 6 |
|
| 7 | +import java.io.Closeable; |
7 | 8 | import java.io.IOException;
|
8 | 9 | import java.io.InputStream;
|
9 | 10 | import java.io.OutputStream;
|
@@ -31,18 +32,37 @@ public void run() {
|
31 | 32 | VirtualFile arduinoToolchain = cmakeDirectory.createChildData(this, "ArduinoToolchain.cmake");
|
32 | 33 | VirtualFile arduino = platformDirectory.createChildData(this, "Arduino.cmake");
|
33 | 34 |
|
34 |
| - try (OutputStream arduinoToolchainOutputStream = arduinoToolchain.getOutputStream(this); |
35 |
| - OutputStream arduinoOutputStream = arduino.getOutputStream(this); |
36 |
| - InputStream arduinoToolchainInputStream = getArduinoToolchainCmake(); |
37 |
| - InputStream arduinoInputStream = getArduinoCmake()) { |
| 35 | + OutputStream arduinoToolchainOutputStream = arduinoToolchain.getOutputStream(this); |
| 36 | + OutputStream arduinoOutputStream = arduino.getOutputStream(this); |
38 | 37 |
|
| 38 | + InputStream arduinoToolchainInputStream = getArduinoToolchainCmake(); |
| 39 | + InputStream arduinoInputStream = getArduinoCmake(); |
| 40 | + |
| 41 | + try { |
39 | 42 | IOUtils.copy(arduinoToolchainInputStream, arduinoToolchainOutputStream);
|
40 | 43 | IOUtils.copy(arduinoInputStream, arduinoOutputStream);
|
| 44 | + } finally { |
| 45 | + closeStreams(arduinoToolchainOutputStream, |
| 46 | + arduinoOutputStream, |
| 47 | + arduinoToolchainInputStream, |
| 48 | + arduinoInputStream); |
41 | 49 | }
|
42 | 50 | } catch (IOException e) {
|
43 | 51 | e.printStackTrace();
|
44 | 52 | }
|
45 | 53 | }
|
46 | 54 | });
|
47 | 55 | }
|
| 56 | + |
| 57 | + private static void closeStreams(Closeable... streams) { |
| 58 | + for (Closeable c : streams) { |
| 59 | + if (c != null) { |
| 60 | + try { |
| 61 | + c.close(); |
| 62 | + } catch (IOException e) { |
| 63 | + e.printStackTrace(); |
| 64 | + } |
| 65 | + } |
| 66 | + } |
| 67 | + } |
48 | 68 | }
|
0 commit comments