if (log.isErrorEnabled()) { log.error("Saving recipe " + rc.getRecipeName() + " under ID " + recipeId + " couldn't find property " + pname + ". Will continue.", new Throwable()); } continue;
prop = rc.getInvisibleProperty(pname); if (prop == null) { if (log.isErrorEnabled()) { log.error("Saving recipe " + rc.getRecipeName() + " under ID " + recipeId + " couldn't find property " + pname + ". Will continue.", new Throwable()); } continue; }
  private String insertLibRecipe(RecipeComponent rc,				 String recipeId) throws SQLException {    try {      if (recipeId != null)	removeLibRecipeNamed(rc.getRecipeName());      else	recipeId = getNextId("queryMaxRecipeId", "RECIPE-");      substitutions.put(":recipe_id:", recipeId);      substitutions.put(":java_class:", rc.getClass().getName());      substitutions.put(":description:", "No description available");      executeUpdate(dbp.getQuery("insertLibRecipe", substitutions));      int order = 0;      for (Iterator j = rc.getLocalPropertyNames(); j.hasNext(); ) {	CompositeName pname = (CompositeName) j.next();	Property prop = rc.getProperty(pname);	if (prop == null) {	  if (log.isErrorEnabled()) {	    log.error("Saving recipe " + rc.getRecipeName() + " under ID " + recipeId + " couldn't find property " + pname + ". Will continue.", new Throwable());	  }	  continue;	}	Object val = prop.getValue();	if (val == null) continue; // Don't write null values	String sval = val.toString();	if (sval.equals("")) continue; // Don't write empty values	String name = pname.last().toString();	substitutions.put(":arg_name:", name);	substitutions.put(":arg_value:", sval);	substitutions.put(":arg_order:", String.valueOf(order++));	executeUpdate(dbp.getQuery("insertLibRecipeProp", substitutions));      }      return recipeId;    } catch (SQLException sqle) {      System.out.println("Exception in insertLibRecipe: " + sqle);      Thread.dumpStack();      return null;    }  }