Skip to content

Commit ad73987

Browse files
committed
Fix memory leak (#666)
Let maps implement Closeable.
1 parent d8fe91a commit ad73987

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

metamorph-api/src/main/java/org/metafacture/metamorph/api/helpers/AbstractReadOnlyMap.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.metafacture.metamorph.api.helpers;
1818

19+
import java.io.Closeable;
1920
import java.util.Collection;
2021
import java.util.Map;
2122
import java.util.Set;
@@ -29,7 +30,7 @@
2930
* @param <V> type of values
3031
* @author Markus Michael Geipel
3132
*/
32-
public abstract class AbstractReadOnlyMap<K, V> implements Map<K, V> {
33+
public abstract class AbstractReadOnlyMap<K, V> implements Map<K, V>, Closeable {
3334

3435
@Override
3536
public final int size() {

metamorph/src/main/java/org/metafacture/metamorph/maps/FileMap.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,4 +290,9 @@ public Set<String> keySet() {
290290
return Collections.unmodifiableSet(map.keySet());
291291
}
292292

293+
@Override
294+
public void close() throws IOException {
295+
map.clear();
296+
fileOpener.closeStream();
297+
}
293298
}

metamorph/src/main/java/org/metafacture/metamorph/maps/RestMap.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,4 +107,8 @@ public void setCharsetName(final String name) {
107107
charsetName = name;
108108
}
109109

110+
@Override
111+
public void close() throws IOException {
112+
113+
}
110114
}

0 commit comments

Comments
 (0)