### Eclipse Workspace Patch 1.0
#P Nutch
Index: src/java/org/apache/nutch/crawl/GeneratorReducer.java
===================================================================
--- src/java/org/apache/nutch/crawl/GeneratorReducer.java	(revision 1506051)
+++ src/java/org/apache/nutch/crawl/GeneratorReducer.java	(working copy)
@@ -72,7 +72,8 @@
         }
         hostCountMap.put(hostordomain, hostCount + 1);
       }
-
+      //NUTCH-1457
+      page.putToMarkers(DbUpdaterJob.SCHEDULED, DbUpdaterJob.TRUE);
       Mark.GENERATE_MARK.putMark(page, batchId);
       try {
         context.write(TableUtil.reverseUrl(key.url), page);
Index: src/java/org/apache/nutch/crawl/DbUpdateReducer.java
===================================================================
--- src/java/org/apache/nutch/crawl/DbUpdateReducer.java	(revision 1506051)
+++ src/java/org/apache/nutch/crawl/DbUpdateReducer.java	(working copy)
@@ -104,6 +104,9 @@
       } catch (ScoringFilterException e) {
         page.setScore(0.0f);
       }
+    } else if(!(DbUpdaterJob.TRUE.equals(page.getFromMarkers(DbUpdaterJob.SCHEDULED)))){//nutch-1457
+    	if(maxInterval < page.getFetchInterval())
+    		schedule.forceRefetch(url, page, false);
     } else {
       byte status = (byte)page.getStatus();
       switch (status) {
@@ -190,6 +193,7 @@
     if (page.getFromMetadata(FetcherJob.REDIRECT_DISCOVERED) != null) {
       page.removeFromMetadata(FetcherJob.REDIRECT_DISCOVERED);
     }
+    page.removeFromMarkers(DbUpdaterJob.SCHEDULED);//nutch-1457
     Mark.GENERATE_MARK.removeMarkIfExist(page);
     Mark.FETCH_MARK.removeMarkIfExist(page);
     Utf8 parse_mark = Mark.PARSE_MARK.checkMark(page);
Index: src/java/org/apache/nutch/parse/ParseUtil.java
===================================================================
--- src/java/org/apache/nutch/parse/ParseUtil.java	(revision 1506050)
+++ src/java/org/apache/nutch/parse/ParseUtil.java	(working copy)
@@ -188,8 +188,7 @@
       return;
     }
 
-    final byte[] signature = sig.calculate(page);
-
+ 
     org.apache.nutch.storage.ParseStatus pstatus = parse.getParseStatus();
     page.setParseStatus(pstatus);
     if (ParseStatusUtils.isSuccess(pstatus)) {
@@ -231,6 +230,8 @@
         page.setText(new Utf8(parse.getText()));
         page.setTitle(new Utf8(parse.getTitle()));
         ByteBuffer prevSig = page.getSignature();
+        //Calculating the page signature after setting the parsed text content in the page.
+        final byte[] signature = sig.calculate(page);
         if (prevSig != null) {
           page.setPrevSignature(prevSig);
         }
Index: src/java/org/apache/nutch/crawl/AbstractFetchSchedule.java
===================================================================
--- src/java/org/apache/nutch/crawl/AbstractFetchSchedule.java	(revision 1506051)
+++ src/java/org/apache/nutch/crawl/AbstractFetchSchedule.java	(working copy)
@@ -176,6 +176,8 @@
         page.setFetchInterval(Math.round(maxInterval * 0.9f));
       }
       page.setFetchTime(curTime);
+      //Resetting the fetchTime
+      fetchTime = curTime;
     }
     return fetchTime <= curTime;
   }
Index: src/java/org/apache/nutch/crawl/DbUpdaterJob.java
===================================================================
--- src/java/org/apache/nutch/crawl/DbUpdaterJob.java	(revision 1506051)
+++ src/java/org/apache/nutch/crawl/DbUpdaterJob.java	(working copy)
@@ -62,6 +62,9 @@
   }
 
   public static final Utf8 DISTANCE = new Utf8("dist");
+  //NUTCH-1457
+  public static final Utf8 SCHEDULED = new Utf8("scheduled");
+  public static final Utf8 TRUE = new Utf8("true");
 
   public DbUpdaterJob() {
 
