Commit graph

2539 commits

Author SHA1 Message Date
hns
4539f0f74a Renamed some variables in the cron job section of the run() method.
Rewrote cron job cleanup code at the end of run().
2005-07-20 13:55:40 +00:00
hns
06fa3713a7 Remove debugging output. 2005-07-20 13:50:36 +00:00
hns
6d4978f652 * Fix bug 435, cron jobs are run even if the function name is not defined
* Fix a bug that caused the scheduler thread to awaken twice in immedate
   succession because of imprecise timing in Thread.sleep()
2005-07-20 13:49:37 +00:00
hns
37e51812d6 Should fix bug 434 <http://helma.org/bugs/show_bug.cgi?id=434>
* Synchronize all methods that call/rely on update().
* Make sure repositories and resources are not null after update() has been called.
2005-07-20 11:42:16 +00:00
hns
bea4c3a5b7 Invoke setReadonly(boolean) on the db connection depending on the type of statement we're about to send. 2005-07-12 09:42:00 +00:00
hns
eafca524bc Do not ignore case (i.e. switch property names to lower case) for db properties. 2005-07-12 09:40:26 +00:00
hns
3b539848c0 Add new constructor that takes ignoreCase flag, because it can't be set later for app/resource name properties. 2005-07-12 09:39:54 +00:00
hns
ab5694092e Use Context.get/putThreadLocal() to register per-thread scopes for DynamicGlobalObject.
This is to fix some very obscure behaviour that was likely caused by the WeakHashMap code.
2005-07-07 15:28:09 +00:00
grob
38b4f265ce Look up variables in per-thread scope first, then in shared global scope. 2005-07-06 14:10:02 +00:00
grob
5ebbfe70a3 Synchronize set/getSubnodeRelation() to prevent problems on multiprocessor machines 2005-07-06 11:42:36 +00:00
grob
d8feb2620b Set req and res fields to volatile to prevent invalid reads on multiprocessor machines 2005-07-06 11:41:20 +00:00
grob
fa38fbc172 Synchronize thread -> scope map 2005-07-06 11:40:16 +00:00
hns
6bdb02ec6a Fix registerUser(): user addNode() instead of setNode() so user nodes are stored as child nodes, not properties. 2005-06-28 10:27:05 +00:00
hns
9e43503ced Remove setDbMapping() which is never used and might be hazardous if it was. 2005-06-28 10:08:18 +00:00
hns
7209fd9709 make class not final 2005-06-28 10:03:55 +00:00
hns
5e2494462a sznchronizing all methods that manipulate/access the buffer field
to avoid bogus rendering on multiprocessor machines.
2005-06-24 13:37:54 +00:00
hns
7991eb888f Add proxy method for Application.getSkin(String protoname, String skinname, Object[] skinpath) 2005-06-22 09:40:45 +00:00
hns
d743c82c89 Go back to old log file rotation code layout a bit, but still only use one thread to gzip all rotated files:
- GZipper class is with FileLogger again and takes either a list of files or a single file
- Log file rotation is done synchronously in the Logging.Runner thread, only gzipping is done in
  a separate thread
2005-06-22 08:37:25 +00:00
hns
365fab6a63 Rewrote log file rotation to use just one thread for zipping all log files. 2005-06-16 19:57:15 +00:00
hns
0c8b653c1e Cleaned up constructor a bit, use direct assignment instead of setter for prototype. 2005-06-16 17:51:04 +00:00
hns
27a31bd736 Do not try to set DbMapping in Node.setPrototype() - it has disastrous effects for prototyped groupby nodes. 2005-06-16 17:45:56 +00:00
hns
8f4bfdd54b Set parent in MultiFileRepository child repositories, otherwise order is lost in Application.addRepository() 2005-06-16 12:12:43 +00:00
hns
0ecfcd0fba - Make sure collections on transient nodes are set to transient when making persitable
to avoid collection objects being loaded from database.
- Allow getKey() to be called on transient nodes iff primary key is set
- Do set DbMapping in setPrototype() method
- Unified Node constructors and initializers a bit
2005-06-15 14:40:57 +00:00
hns
879015efd5 Fix bug 431
http://www.helma.org/bugs/show_bug.cgi?id=431
2005-06-14 10:34:34 +00:00
hns
df88235e04 MultiFileRepository contributed by Barbara Ondrisek:
A subclass of FileRepository that treats all subdirectories as top-level file repositories
(instead of than treating them as prototype directories)
2005-06-10 12:35:10 +00:00
hns
96a8d6f95e ignore-dirs patch contributed by Barbara Ondrisek:
appname.ignore = dir1,dir2 prevents Prototypes to be created for the given directories.
2005-06-10 12:28:27 +00:00
hns
f9ce4c8c07 ResourceComparator is never used with ResourceTrackers 2005-06-10 12:02:16 +00:00
hns
2b2fdf59c1 Simplified getInstance(String) a little bit. 2005-06-09 16:34:00 +00:00
hns
04a1b2cb80 Set thread priority for GZipper threads to MIN_PRIORITY. 2005-06-09 16:32:32 +00:00
hns
0e2aca1c07 - Remove old debug thread dump in getInstance(String)
- Remove double checking to avoid entering synchronized code in getInstance(String)
- Rename newLog(String) to getFileLogger(String) and clean it up a little bit
2005-06-09 11:46:12 +00:00
hns
23efbd457d Make Runner.run() synchronized again, needed by wait() 2005-06-09 11:23:49 +00:00
hns
e95169cfe6 Remove comment about bogus thread safety, not true anymore after last commit. 2005-06-09 11:15:01 +00:00
hns
70edf7bedf - No need to make runner volatile since it is only access in synchronized code
- Do not null out Logging.runner at the end of Runner.run()
- Remove unused Runner.wakeup() method and make runner.run() not synchronized
2005-06-09 11:02:55 +00:00
hns
3a55c1b270 - Make sure we use an absolute path for logdir
- Make all methods that work on the logfile/writer synchronized
- Increase Buffer size in GZipper thread to 8192 bytes
2005-06-09 10:42:51 +00:00
hns
5bc692e923 Make runner variable volatile. 2005-06-06 19:28:14 +00:00
hns
107aaa6a59 - Encapsulate access to static runner into synchronized methods to prevent
spawning of multiple threads.
- Make static runner field non-public.
2005-06-06 15:55:16 +00:00
hns
1a7a054894 Minor patch: get dateLastRendered and dateCache from the same java.util.Date instance. 2005-06-06 15:52:45 +00:00
hns
18dbec3dd8 Fix two minor bugs that keep everything from working. 2005-06-02 20:27:40 +00:00
hns
a8b9ffd154 Make FileRepository(File) constructor public again, it is used from the helma.main and helma.servlet packages. 2005-06-02 19:04:13 +00:00
hns
43b1b5edd8 Many changes and fixes in Prototype skin management:
- Use an ordered TreeSet for prototype's repositories so we
	  know the resources we get are already in the right order.
	- Use SkinMap again for intetracking mapping the prototype's skins
	  internally after cleaning the code up a bit.
	- Add new ScriptableSkinMap object that wraps a skinmap, exposes it as
	  native JavaScript object by extending WrappedMap, and does the
	  Resource to String conversion in get().
	- Move code that loads additional skins from skinpath from
	  SkinManager.getSkinFiles() to SkinMap.loadSkinFiles()
	- Inline addSkinResource() and addCodeResource() methods into
	  checkForUpdates().
	- Make lastUpdate kind of fields volatile.
2005-06-02 12:06:57 +00:00
hns
1c9bdff6af Rename getSkinInternal() to getSkinInPath() 2005-06-02 08:18:44 +00:00
hns
a9aadfe00c - Make sure our file has an absolute path, otherwise we run into inconsistent behaviour
of File.exists()
2005-06-01 15:09:52 +00:00
hns
ceebcdb96e - Make sure our directory has an absolute path, otherwise we run into inconsistent behaviour
of File.exists()
- Throw exception if directory exists and is not a directory
- Rename dir instance variable to directory
2005-06-01 15:09:35 +00:00
hns
828ba529dd Make constructor public. 2005-06-01 14:54:50 +00:00
hns
e9c32f20a1 Enhanced/fixed Javadoc for getRootRepository() 2005-05-24 14:32:45 +00:00
hns
962d53336c Make sure skinmaps are loaded even if prototype's resources haven't been checked yet.
Fixes bug 428.
2005-05-24 14:18:19 +00:00
hns
fe455cb556 - Implemented notifyPropertyChange() function which is called from all property setters in order to fix bug 424.
- Refactored DbMapping related checks in setString() a little bit.
2005-05-24 10:21:48 +00:00
hns
f671a6b838 - Return the logical/script root in AbstractRepository.getRootRepository(). Fixes bug 425.
- Added some Javadoc comments.
2005-05-20 09:55:10 +00:00
hns
e284f39be5 getRootNode(): Set DbMapping and prototype name to app.getRootMapping() 2005-05-18 08:44:43 +00:00
hns
0eb623afd5 Use NodeManager.getRootNode() to get our root node. 2005-05-18 08:42:17 +00:00