ProcedureRunner runner = null;
VoltProcedure procedure = null;
if (proc.getHasjava()) {
final String className = proc.getClassname();
Language lang;
try {
lang = Language.valueOf(proc.getLanguage());
} catch (IllegalArgumentException e) {
// default to java for earlier compiled catalogs
lang = Language.JAVA;
}
Class<?> procClass = null;
try {
procClass = catalogContext.classForProcedure(className);
}
catch (final ClassNotFoundException e) {
if (className.startsWith("org.voltdb.")) {
VoltDB.crashLocalVoltDB("VoltDB does not support procedures with package names " +
"that are prefixed with \"org.voltdb\". Please use a different " +
"package name and retry. Procedure name was " + className + ".",
false, null);
}
else {
VoltDB.crashLocalVoltDB("VoltDB was unable to load a procedure (" +
className + ") it expected to be in the " +
"catalog jarfile and will now exit.", false, null);
}
}
try {
procedure = lang.accept(procedureInstantiator, procClass);
}
catch (final Exception e) {
hostLog.l7dlog( Level.WARN, LogKeys.host_ExecutionSite_GenericException.name(),
new Object[] { m_siteId, m_siteIndex }, e);
}