You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by dv...@apache.org on 2012/02/01 04:00:59 UTC

svn commit: r1238917 - in /pig/trunk: CHANGES.txt src/org/apache/pig/impl/PigContext.java

Author: dvryaboy
Date: Wed Feb  1 03:00:59 2012
New Revision: 1238917

URL: http://svn.apache.org/viewvc?rev=1238917&view=rev
Log:
PIG-2496: Cache resolved classes in PigContext

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/src/org/apache/pig/impl/PigContext.java

Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1238917&r1=1238916&r2=1238917&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Wed Feb  1 03:00:59 2012
@@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES
 
 IMPROVEMENTS
 
+PIG-2496: Cache resolved classes in PigContext (dvryaboy)
+
 PIG-2482: Integrate HCat DDL command into Pig (daijy)
 
 PIG-2479: changingPattern should be used with checkmodified in ivysettings.xml (abayer via azaroth)

Modified: pig/trunk/src/org/apache/pig/impl/PigContext.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/impl/PigContext.java?rev=1238917&r1=1238916&r2=1238917&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/impl/PigContext.java (original)
+++ pig/trunk/src/org/apache/pig/impl/PigContext.java Wed Feb  1 03:00:59 2012
@@ -54,7 +54,6 @@ import org.apache.pig.backend.hadoop.str
 import org.apache.pig.impl.streaming.ExecutableManager;
 import org.apache.pig.impl.streaming.StreamingCommand;
 import org.apache.pig.impl.util.JarManager;
-import org.apache.pig.parser.QueryParserDriver;
 
 public class PigContext implements Serializable {
     private static final long serialVersionUID = 1L;
@@ -134,6 +133,8 @@ public class PigContext implements Seria
 
     static private ClassLoader classloader = PigContext.class.getClassLoader();
     
+    private static Map<String, Class> classCache = new HashMap<String, Class>();;
+
     private List<String> params;
     public List<String> getParams() {
         return params;
@@ -468,11 +469,14 @@ public class PigContext implements Seria
         
     @SuppressWarnings("rawtypes")
     public static Class resolveClassName(String name) throws IOException{
-
+        if (classCache.containsKey(name)) {
+            return classCache.get(name);
+        }
         for(String prefix: getPackageImportList()) {
             Class c;
             try {
                 c = Class.forName(prefix+name,true, PigContext.classloader);
+                classCache.put(name, c);
                 return c;
             } 
             catch (ClassNotFoundException e) {