Bug 574839: [R-Help] Enable DeflaterOutputStream.syncFlush
Change-Id: I2b50cf827cb3054a7212d8c5ff0c43a4332c5021
diff --git a/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/internal/rhelp/core/DataStream.java b/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/internal/rhelp/core/DataStream.java
index 24af5cb..b10df27 100644
--- a/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/internal/rhelp/core/DataStream.java
+++ b/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/internal/rhelp/core/DataStream.java
@@ -119,16 +119,20 @@
public void enableCompression() {
DataStream.this.flags |= COMPRESS;
- this.out= new DeflaterOutputStream(this.out, this.deflater, 4096);
+ this.out= new DeflaterOutputStream(this.out, this.deflater, 4096, true);
}
@Override
public void close() throws IOException {
if (this.out != null) {
- super.close();
- this.out= null;
- if ((DataStream.this.flags & COMPRESS) != 0) {
- this.deflater.reset();
+ try {
+ super.close();
+ }
+ finally {
+ this.out= null;
+ if ((DataStream.this.flags & COMPRESS) != 0) {
+ this.deflater.reset();
+ }
}
}
}
@@ -159,10 +163,14 @@
@Override
public void close() throws IOException {
if (this.in != null) {
- super.close();
- this.in= null;
- if ((DataStream.this.flags & COMPRESS) != 0) {
- this.inflater.reset();
+ try {
+ super.close();
+ }
+ finally {
+ this.in= null;
+ if ((DataStream.this.flags & COMPRESS) != 0) {
+ this.inflater.reset();
+ }
}
}
}
diff --git a/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/internal/rhelp/core/SerUtil.java b/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/internal/rhelp/core/SerUtil.java
index 0adee45..2c9c68a 100644
--- a/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/internal/rhelp/core/SerUtil.java
+++ b/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/internal/rhelp/core/SerUtil.java
@@ -530,7 +530,7 @@
final ImList<String> topics;
{ final int nTopics= in.readInt();
final String[] array= new @NonNull String[nTopics];
- for (int i= 0; i < array.length; i++) {
+ for (int i= 0; i < nTopics; i++) {
final String topic= in.readString();
array[i]= (topic == null) ? name : topic.intern();
}