Commit graph

2302 commits

Author SHA1 Message Date
hns
20354228a2 * Do not use Context.setCompileFunctionsWithDynamicScope() as it is
seriously BROKEN for nested functions.
  The only workaround needed is a little fix in HopObject.put() to set the
  parent scope on functions because of the funky way we compile prototypes.
* Use one ContextFactory instance per RhinoCore to initialize, enter and exit
  contexts, and use various call() methods to actually use it in RhinoCore.evaluate()
  and RhinoEngine.invoke().
* Set parent scope in HopObject constructor.
* Use java.lang.ThreadLocal to implement engine/thread registration.
* Implement RhinoCore.getRhinoCore() and RhinoEngine.getRhinoEngine().
* Implement rhino.strictvars to throw errors on undeclared vars.
* Do not declare throws Exception in RhinoCore.processXmlRpc* methods.
* Clean up error logging.
2006-12-20 21:52:22 +00:00
hns
68756f4b3e * Clean up formatting. 2006-12-15 15:13:00 +00:00
hns
2ec32f146a * Null out scriptingEngine if initScriptingEngine() fails.
* Make sure we cause no uncaught exceptions in request evaluator loop,
  will cause helma to hang.
* Make initScriptingEngine() synchronized.
2006-12-15 15:10:34 +00:00
hns
6139814575 * Do not create new collections in recycle() - seems to have negative performance impact. 2006-12-12 15:31:30 +00:00
hns
414b22836b * Extract cache insertion code into new private registerNewNode() method.
* Delay onInit() invocation until after the node has been registered with the cache.
  Two advantages: first, we won't call onInit() on nodes that are bound to be
  thrown away because a clone already exists in the cache, and second no need
  to cache nodes in the transactor clean node map, which was troublesome in
  exactly the same case.
* Remove some old code that has been commented out for ages.
2006-12-12 14:54:52 +00:00
hns
d843138386 * Extract collection clearing in commit() and abort() into new recycle() method,
and throw away collections in order to avoid retaining too much memory.
2006-12-12 13:15:59 +00:00
hns
7e00def51c * No more need for per-thread-scope workaround, works out of the box with Rhino 1.6. 2006-12-11 09:55:23 +00:00
hns
b210d5cd11 * Previous solution didn't work with Rhino running in interpreter mode. Provide a
hook in RhinoException to make JS stack traces work with any optimization mode.
  See https://bugzilla.mozilla.org/show_bug.cgi?id=363058
2006-12-07 12:12:14 +00:00
hns
00c9d56922 * Use helma.scripting.ScriptingException to produce script-only stack traces.
* Therefore, do not unwrap ScriptingExceptions because they're actually useful.
* Remove helma.util.StackUtils again.
2006-12-07 09:40:26 +00:00
hns
572194d2bc * Simplify exception handling in invoke(), bugs in Rhino have been fixed. 2006-12-07 09:27:39 +00:00
hns
54ab7ca121 * Backport StackUtils class from Helma 2.
* Implement jsStackTrace option to generate pure JS stack traces in error dumps.
2006-12-06 16:28:12 +00:00
hns
bfdd643a99 * Make Property.compareTo() immune against float/integer confusion, which is quite common in rhino. 2006-12-01 13:21:23 +00:00
hns
aaa15f5670 * Register node with current transactor before calling onInit(), otherwise we
really prepare the ground for infinite recursion problems.
2006-11-30 21:50:46 +00:00
hns
8e71110ad4 * Avoid setting parent in setNode() if the property name isn't persistable. 2006-11-30 21:04:44 +00:00
hns
a38f504db3 * Make RowSet a public static class to allow its methods to be called by Rhino. 2006-11-24 10:28:15 +00:00
hns
0ca4922081 * Only reuse Java wrapper if it actually wraps the same object.
* Rename local variable in getNodeWrapper().
2006-11-23 14:51:25 +00:00
hns
f249f893c5 Merge from helma_1_5 branch:
* Do parent lookup for transient nodes in Node.getParent(), but omit warning message if it fails.
2006-11-23 13:49:41 +00:00
hns
f1bb105b54 * Remove unused import statement. 2006-11-22 16:13:28 +00:00
hns
b2bf03b033 * Fix bug where waiting thread isn't notified when requestengine is shut down. 2006-11-22 16:11:41 +00:00
hns
84e6a5f2f8 * Add ".prototype" to name of nexted functions. 2006-11-22 15:08:34 +00:00
hns
32f5f25b9e * Always immediately convert to absolute paths in ApplicationManager. 2006-11-20 23:06:44 +00:00
hns
0eae6629ee * Allow native host methods in scripted JavaObjects to be overridden in JavaScript, but
make sure we don't use any of the HopObject host methods.
2006-11-20 12:51:26 +00:00
hns
21117936ad * Make overloaded methods (href, renderskin, ...) overridable in JavaScript. 2006-11-20 10:58:34 +00:00
hns
d818de0d0a * Rewrite DocFunction to work with current Rhino 1.6 snapshot.
- TokenStream is no longer public, implement Parser.parseTokens()
  - Parse public nested methods in JS constructors
  - adapt to slightly changed sequence of returned tokens.
* Do not implement IPathElement in Server, Application and HelmaDoc classes.
  Implement the necessary methods in the manage application instead.
* Add DocResourceElement.getStartLine() method to get element's position
  within the containing resource
* Rename ScriptingEngine.getIntrospector() to getDoc() and declare DocApplication
  as return value.
2006-11-20 10:54:02 +00:00
hns
5ec24e7ba8 * Not needed anymore, replaced by TokenStreamInjector in rhino.jar 2006-11-15 15:49:24 +00:00
hns
bc8653a873 * Work on DocFunction to make it work with Rhino 1.6.
* Make DocFunction not a RuntimeException, and throw it only where needed.
* Add TokenStreamInjector class to rhino to make TokenStream publicly available
* Add StringUtils.splitLines()
2006-11-15 15:48:46 +00:00
hns
a6c3cef342 * Make the debugger work, using a Rhino CVS snapshot with the
patch from http://dev.helma.org/Wiki/Rhino+Bugs+%26+Patches/
2006-11-13 09:48:26 +00:00
hns
9bd30b6a66 * Call onStart() directly in calling thread rather than in scheduler
to make sure it completed before the application gets mounted.
2006-11-08 13:31:02 +00:00
hns
dfd673e7b6 * Add log level info such as [INFO], [ERROR], [WARN] to log output.
* Add Logger.Entry class to avoid unnecessary String concatenation.
* Unify Logger classes code a little bit, making better use of inheritance.
* Run logger thread 3 times per second instead of 4 times.
* Add Javadoc comments and tags.
2006-10-31 14:57:55 +00:00
hns
cff3a556ee * Avoid "Error unsetting property JavaPackage on Global" message on code updates. 2006-10-17 12:02:45 +00:00
hns
cbcc04c1fb * Set/Get current RequestEvaluator explicitly via ThreadLocal
* Prevent NullpointerException when scripting engine is initialized
  from non-request-evaluator thread
  (merge from helma_1_5 branch)
2006-10-17 11:44:51 +00:00
hns
db45092717 * Implement code injection feature to RhinoEngine/Core to allow
app.addRepository() to immediately compile new resources.
  (merge from helma_1_5 branch)
2006-10-16 13:45:53 +00:00
hns
58e9431da1 * Simplify return statement, removing local variable. 2006-10-16 13:12:24 +00:00
hns
3e7c260787 * Convert file name to absolute path in constructor to work around java.io.File glitches.
Fixes bug 488 <http://helma.org/bugs/show_bug.cgi?id=488>
2006-09-27 14:09:11 +00:00
hns
2108be3807 * Use extensionId/prototype name instead of just the prototype name if a filter
refers to the prototype column. Fixes bug 484 <http://helma.org/bugs/show_bug.cgi?id=484>
2006-09-27 13:24:11 +00:00
hns
df7c3e0c86 * Copy over updated keyMap in update(). 2006-08-25 18:51:16 +00:00
zumbrunn
dc9e49c665 Changed version numbers to 1.6.x 2006-08-19 06:56:47 +00:00
hns
ebfbdae001 * Use getFunctionName(), functionName field isn't accessible anymore. 2006-08-18 20:12:09 +00:00
hns
e5033685db * Update Rhino to 1.6R3.
* Remove old Rhino 1.5 classes, make Helma debugger subclass Rhino 1.6 classes
  (not fully functional yet, needs patches to Rhino debugger).
* Make helma.doc.DocFunction compile with Rhino 1.6 by introducing intermediary
  DockenStream class that proxies TokenStream using java reflection.
2006-08-18 20:09:37 +00:00
hns
89dfbbdaa1 * Update version info to 1.5.2 2006-08-18 14:41:20 +00:00
hns
9def07d6e9 * Omit parent lookup in getParent() for transient nodes. 2006-08-16 11:41:08 +00:00
hns
f779decdfc * Minor code improvement in write() method. 2006-08-16 11:05:26 +00:00
hns
736769cc80 * Fix terrible guaranteed nullpointer exception bug. 2006-08-11 18:00:38 +00:00
hns
47b101827a * Clean up and unify DbMapping constructors a bit.
* Make typename, app, and props fields final.
* Issue prominent warnings if parent proto can't be resolved or
  relational extended type doesn't have a _prototype mapping.
* Determine in update() if this is a relational mapping or not.
2006-08-10 21:28:58 +00:00
hns
5924f93f81 * Issue a prominent warning if parent can't be resolved using a prototype's _parent setting 2006-08-10 21:23:49 +00:00
hns
c32fec5dde * Make root _parent info in type.properties case insensitive. 2006-08-10 21:19:20 +00:00
hns
6022d616b5 * Add better error logging to getParent()
* Add checks for underscore property name before persisting/marking dirty in setNode()
* Extract underscore property name check into isPersitableProperty() method
2006-08-10 20:01:09 +00:00
hns
8c4273631d * Do not register newly created root nodes with the node cache as this may cover
actual root nodes stored in a relational database.
2006-08-10 15:16:01 +00:00
hns
33d59c0c59 * Check if _prototype is set in type.properties before appending proto clauses to queries. 2006-08-09 19:36:51 +00:00
hns
9a6757f75b * Two fixes for case insensitive maps in containsKey() and get(). 2006-08-09 11:04:29 +00:00