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) {