TAP5-2234: Refreshing the browser in Eclipse on Windows sometimes fails with a locking exception
diff --git a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/CoffeeScriptCompiler.java b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/CoffeeScriptCompiler.java
index 849fc22..5871b61 100644
--- a/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/CoffeeScriptCompiler.java
+++ b/tapestry-webresources/src/main/java/org/apache/tapestry5/internal/webresources/CoffeeScriptCompiler.java
@@ -5,6 +5,7 @@
 import org.apache.tapestry5.ioc.OperationTracker;
 import org.apache.tapestry5.ioc.Resource;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
+import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 import org.apache.tapestry5.services.assets.ResourceDependencies;
 import org.apache.tapestry5.services.assets.ResourceTransformer;
 import org.mozilla.javascript.NativeObject;
@@ -56,7 +57,17 @@
 
     public InputStream transform(Resource source, ResourceDependencies dependencies) throws IOException
     {
-        String content = IOUtils.toString(source.openStream(), UTF8);
+        InputStream is = null;
+        String content;
+
+        try
+        {
+            is = source.openStream();
+            content = IOUtils.toString(is, UTF8);
+        } finally
+        {
+            InternalUtils.close(is);
+        }
 
         RhinoExecutor executor = executorPool.get();