shuber 2005/10/05 10:24:29 CEST
Modified files:
core/src/java/org/jahia/tools/files FileWatcher.java
Log:
Added code to reduce length of job and trigger name that can become too big
for database storage.
Revision Changes Path
1.8 +24 -4
jahia/core/src/java/org/jahia/tools/files/FileWatcher.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/tools/files/FileWatcher.java.diff?r1=1.7&r2=1.8&f=h
Index: FileWatcher.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/tools/files/FileWatcher.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- FileWatcher.java 30 Aug 2005 17:42:19 -0000 1.7
+++ FileWatcher.java 5 Oct 2005 08:24:29 -0000 1.8
@@ -66,6 +66,9 @@
private JobDetail jobDetail;
private Trigger trigger;
+ private String jobName;
+ private int maxJobNameLength = 50;
+
/** Both file and directory or only file **/
private boolean m_FileOnly = true;
@@ -140,13 +143,13 @@
logger.debug("Time created, Check Interval=" + getInterval() +
" (millis) ");
- jobDetail = new JobDetail(m_FolderPath + "_Job",
Scheduler.DEFAULT_GROUP,
+ jobDetail = new JobDetail(jobName + "_Job", Scheduler.DEFAULT_GROUP,
FileWatcherJob.class);
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("fileWatcherId", m_FolderPath);
jobDetail.setJobDataMap(jobDataMap);
- trigger = new SimpleTrigger(m_FolderPath + "_Trigger",
+ trigger = new SimpleTrigger(jobName + "_Trigger",
Scheduler.DEFAULT_GROUP,
SimpleTrigger.REPEAT_INDEFINITELY,
m_Interval);
@@ -173,7 +176,7 @@
SchedulerService schedulerServ = ServicesRegistry.getInstance()
.getSchedulerService();
schedulerServ.deleteJob(
- m_FolderPath + "_Job", Scheduler.DEFAULT_GROUP);
+ jobName + "_Job", Scheduler.DEFAULT_GROUP);
} catch (JahiaException je) {
logger.error("Error while scheduling file watch for " +
m_FolderPath, je);
}
@@ -221,6 +224,15 @@
*/
protected void setFolderPath( String fullFolderPath ){
m_FolderPath = fullFolderPath;
+ jobName = m_FolderPath;
+ int jobNameLength = jobName.length();
+ if (jobNameLength > maxJobNameLength) {
+ int jobNameHashCode = jobName.hashCode();
+ String jobNameHashCodeStr = Integer.toString(jobNameHashCode);
+ jobName = "..." +
+ jobName.substring(jobNameLength - maxJobNameLength + 4
+ jobNameHashCodeStr.length())
+ + jobNameHashCodeStr;
+ }
}
/**
@@ -280,7 +292,15 @@
return m_LastCheckTime;
}
- /**
+ public int getMaxJobNameLength() {
+ return maxJobNameLength;
+ }
+
+ public void setMaxJobNameLength(int maxJobNameLength) {
+ this.maxJobNameLength = maxJobNameLength;
+ }
+
+ /**
* Verify if the Folder to watch exists.
* Create the Archive Folder if not exist.
*