From f889624d86b2306dbb25346e2a8f9e492782aaec Mon Sep 17 00:00:00 2001 From: hns Date: Wed, 13 Apr 2005 09:22:59 +0000 Subject: [PATCH] Fix bug in getSkin() that could result in skins not being fully read. --- src/helma/framework/core/Skin.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/helma/framework/core/Skin.java b/src/helma/framework/core/Skin.java index 0e3b129f..c73821a8 100644 --- a/src/helma/framework/core/Skin.java +++ b/src/helma/framework/core/Skin.java @@ -93,10 +93,19 @@ public final class Skin { reader = new InputStreamReader(res.getInputStream(), encoding); } - char[] characterBuffer = new char[(int) res.getLength()]; - int length = reader.read(characterBuffer); - - reader.close(); + int length = (int) res.getLength(); + char[] characterBuffer = new char[length]; + int read = 0; + try { + while (read < length) { + int r = reader.read(characterBuffer, read, length - read); + if (r == -1) + break; + read += r; + } + } finally { + reader.close(); + } return new Skin(characterBuffer, length, app); }