You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by no...@apache.org on 2009/11/21 08:38:53 UTC

svn commit: r882838 - in /lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport: ContextImpl.java ScriptTransformer.java

Author: noble
Date: Sat Nov 21 07:38:51 2009
New Revision: 882838

URL: http://svn.apache.org/viewvc?rev=882838&view=rev
Log:
SOLR-1522

Modified:
    lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java
    lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ScriptTransformer.java

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java?rev=882838&r1=882837&r2=882838&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ContextImpl.java Sat Nov 21 07:38:51 2009
@@ -89,6 +89,7 @@
 
   public DataSource getDataSource() {
     if (ds != null) return ds;
+    if(entity == null) return  null;
     if (entity.dataSrc == null) {
       entity.dataSrc = dataImporter.getDataSourceInstance(entity, entity.dataSource, this);
     }

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ScriptTransformer.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ScriptTransformer.java?rev=882838&r1=882837&r2=882838&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ScriptTransformer.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/ScriptTransformer.java Sat Nov 21 07:38:51 2009
@@ -16,6 +16,9 @@
  */
 package org.apache.solr.handler.dataimport;
 
+import static org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow;
+import static org.apache.solr.handler.dataimport.DataImportHandlerException.SEVERE;
+
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Map;
@@ -55,24 +58,27 @@
     } catch (DataImportHandlerException e) {
       throw e;
     } catch (InvocationTargetException e) {
-      throw new DataImportHandlerException(DataImportHandlerException.SEVERE,
+      wrapAndThrow(SEVERE,e,
               "Could not invoke method :"
                       + functionName
                       + "\n <script>\n"
-                      + context.getVariableResolver().resolve(
-                      DataConfig.IMPORTER_NS + "." + DataConfig.SCRIPT)
-                      + "</script>", e);
+                      + context.getScript()
+                      + "</script>");
     } catch (Exception e) {
-      throw new DataImportHandlerException(DataImportHandlerException.SEVERE,
-              "Error invoking script for entity "
-                      + context.getEntityAttribute("name"), e);
+      wrapAndThrow(SEVERE,e, "Error invoking script for entity " + context.getEntityAttribute("name"));
     }
+    //will not reach here
+    return null;
   }
 
   private void initEngine(Context context) {
     try {
       String scriptText = context.getScript();
       String scriptLang = context.getScriptLanguage();
+      if(scriptText == null ){
+        throw new DataImportHandlerException(SEVERE,
+              "<script> tag is not present under <dataConfig>");
+      }
       Object scriptEngineMgr = Class
               .forName("javax.script.ScriptEngineManager").newInstance();
       // create a Script engine
@@ -84,8 +90,7 @@
               String.class, Object[].class);
       evalMethod.invoke(engine, scriptText);
     } catch (Exception e) {
-      throw new DataImportHandlerException(DataImportHandlerException.SEVERE,
-              "<script> can be used only in java 6 or above", e);
+      wrapAndThrow(SEVERE,e, "<script> can be used only in java 6 or above");
     }
   }