Index: src/java/org/apache/nutch/crawl/Injector.java
===================================================================
--- src/java/org/apache/nutch/crawl/Injector.java	(revision 1583319)
+++ src/java/org/apache/nutch/crawl/Injector.java	(working copy)
@@ -59,23 +59,27 @@
   /** metadata key reserved for setting a fixed custom fetchInterval for a specific URL */
   public static String nutchFixedFetchIntervalMDName = "nutch.fetchInterval.fixed";
 
+  // common singletons for all InjectMapper instances to save memory
+  private static URLFilters filters; 
+  private static URLNormalizers urlNormalizers;
+  private static ScoringFilters scfilters;
+
   /** Normalize and filter injected urls. */
   public static class InjectMapper implements Mapper<WritableComparable<?>, Text, Text, CrawlDatum> {
     private URLNormalizers urlNormalizers;
     private int interval;
     private float scoreInjected;
-    private JobConf jobConf;
     private URLFilters filters;
     private ScoringFilters scfilters;
     private long curTime;
 
     public void configure(JobConf job) {
-      this.jobConf = job;
-      urlNormalizers = new URLNormalizers(job, URLNormalizers.SCOPE_INJECT);
-      interval = jobConf.getInt("db.fetch.interval.default", 2592000);
-      filters = new URLFilters(jobConf);
-      scfilters = new ScoringFilters(jobConf);
-      scoreInjected = jobConf.getFloat("db.score.injected", 1.0f);
+      // re-use common singletons from Injector
+      urlNormalizers = Injector.urlNormalizers;
+      interval = job.getInt("db.fetch.interval.default", 2592000);
+      filters = Injector.filters;
+      scfilters = Injector.scfilters;
+      scoreInjected = job.getFloat("db.score.injected", 1.0f);
       curTime = job.getLong("injector.current.time", System.currentTimeMillis());
     }
 
@@ -249,6 +253,16 @@
   public Injector(Configuration conf) {
     setConf(conf);
   }
+
+  // initialize common singletons
+  public void setConf(Configuration conf) {
+    super.setConf(conf);  
+    if (conf != null) { // conf is null when Injector is created via default ctor
+      urlNormalizers = new URLNormalizers(conf, URLNormalizers.SCOPE_INJECT);
+      filters = new URLFilters(conf);
+      scfilters = new ScoringFilters(conf);
+    }
+  }
   
   public void inject(Path crawlDb, Path urlDir) throws IOException {
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
