--- GroovyScriptEngine.java-orig 2010-10-28 13:58:31.393419444 +0200 +++ GroovyScriptEngine.java 2010-10-29 01:31:23.973395378 +0200 @@ -539,14 +539,16 @@ URLConnection conn = rc.getResourceConnection(scriptName); long lastMod = conn.getLastModified(); + // getLastModified() truncates up to 999 ms from the true modification time, let's fix that + lastMod = ((lastMod /1000)+1)*1000-1; // getResourceConnection() opening the inputstream, let's ensure all streams are closed forceClose(conn); - if (nextPossibleRecompilationTime < lastMod) { + if (depEntry.lastModified < lastMod) { ScriptCacheEntry newEntry = new ScriptCacheEntry(depEntry.scriptClass, lastMod, depEntry.dependencies); scriptCache.put(scriptName, newEntry); + return true; } - return true; } return false;