summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorralph isenmann2020-12-09 13:20:35 +0100
committerralph isenmann2020-12-09 13:20:35 +0100
commit9e9890986723b779aa44c0c01c6e088b841386eb (patch)
tree05c0d30ded9a8b2ca7a78774f6425c5568887136
parent[client] fix eol separator (diff)
downloadtutor-module-9e9890986723b779aa44c0c01c6e088b841386eb.tar.gz
tutor-module-9e9890986723b779aa44c0c01c6e088b841386eb.tar.xz
tutor-module-9e9890986723b779aa44c0c01c6e088b841386eb.zip
[client] Fix reading from downloaded tar.gz file
-TarInputStream.read(..) does not read the whole.
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java
index 92ec6607..1f28ce06 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java
@@ -100,14 +100,19 @@ public class ContainerDefinition {
TarEntry entry;
while ((entry = tis.getNextEntry()) != null) {
- int size = (int) entry.getSize();
- byte[] rawData = new byte[size];
- tis.read(rawData, 0, size);
+ byte[] rawData = new byte[1024];
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ int count;
+
+ // read everything from the TarInputStream for the current Entry
+ while ((count = tis.read(rawData)) != -1) {
+ output.write(rawData, 0, count);
+ }
if (entry.getName().equals(CONTAINER_FILE))
- containerDef.setContainerRecipe(rawData);
+ containerDef.setContainerRecipe(output.toByteArray());
if (entry.getName().equals(CONTAINER_META_FILE))
- containerDef.setContainerMeta(rawData);
+ containerDef.setContainerMeta(output.toByteArray());
}
} catch (IOException e) {