code: public void setLevel2CacheLocation(String locationExpr) {
  		if (null != locationExpr) {
  			// property name handling in location
  			String location = propertyReplace(locationExpr);
  
  			// create caching directory
  			File dir = new File(location);
  			if (!dir.isDirectory()) {
  				if (dir.exists()) {
  					log.error("Location {} for 2nd level cache should be a directory.", location);
  					throw new RuntimeException("Invalid location for setLevel2CacheLocation, " + location + //NOPMD
  							" has to be a directory."); //NOPMD
  				} else {
  					if (!dir.mkdirs()) {
  						log.warn("Directory {} for 2nd level cache could not be created.", location);
  					}
  				}
  			}
  			this.location = location;
  		}
  	}
docs: Set the location for the second level cache. This needs to be a directory which is created if needed.
  <p/>
  The location can point to a system property by using the "${propertyName}" notation. If the property does not
  exist it is replaced by a temporary directory. The property needs to be at the start of the string (so
  "${cache.dir}/rebuild" is ok but "/tmp/${hostname}" is not. Note that the temporary directory is not
  automatically removed!
  
  @param locationExpr directory location for second level cache of items