[Laszlo-checkins] r12754 - in openlaszlo/branches/4.2: . lps/components/rpc
ptw@openlaszlo.org
ptw at openlaszlo.org
Thu Feb 5 06:42:27 PST 2009
Author: ptw
Date: 2009-02-05 06:42:23 -0800 (Thu, 05 Feb 2009)
New Revision: 12754
Modified:
openlaszlo/branches/4.2/
openlaszlo/branches/4.2/lps/components/rpc/xmlrpc.lzx
Log:
Merged revisions 12752 via svnmerge from
http://svn.openlaszlo.org/openlaszlo/trunk
.......
r12752 | dda | 2009-02-05 07:40:31 -0500 (Thu, 05 Feb 2009) | 54 lines
Change 20090204-dda-1 by dda at lester-2.local on 2009-02-04 15:52:38 EST
in /Users/dda/laszlo/src/svn/openlaszlo/trunk-g
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: Local fix to xml-rpc to work with catcherrors=true
New Features:
Bugs Fixed: LPP-7721 [xml-rpc is not working when "compiler.swf9.catcherrors=true"]
Technical Reviewer: ptw (pending)
QA Reviewer: (pending)
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details:
** change set made to trunk, for consideration for 4.2.0.1 (probably just xmlrpc.lzx)
lps/components/rpc/xmlrpc.lzx
Installed a workaround for the problem:
A closure written in xmlrpc.lzx uses arguments.callee.args, but when it is processed with the try/catch block
(with its own closure inserted) the meaning of arguments.callee.args changes.
This 'tryall' processing was only intended for top level functions, but we needed to allow it to be
installed for function expressions as well to allow for state methods (which appear to us as closures within an
initialization list). The workaround is simply to turn off catchFunctionExceptions via a pragma to
address this narrow case.
As this technique may be used elsewhere, we might consider a more holistic solution. Such as one of:
A) have the tag compiler mark 'top level' closure that it generates so we can turn off 'tryall'
for other function closures.
B) detect the use of 'arguments' (would there be anything else to look for?) and cause the original
arguments to be saved and used as appropriate. Perhaps an initial 'save' of arguments.callee.xxxx
if pushed out of the try block.
C) have a runtime check to only call use the 'tryall' try block only if a tryall hasn't been established
yet. Then we'd really only do this on a top level function. But who says top level functions can't
access arguments.callee.xxxx (also a problem with solution A)? Also, this is pretty ugly.
WEB-INF/lps/config/lps.properties
Changed the default for lps.properties to set catcherrors to false.
This was apparently mistakenly enabled recently. We don't have it on as
the default since it is still undocumented/experimental, and smokecheck
does not pass with it on.
Tests:
With catcherrors=true:
Test case from LPP-7721
Tucker's test case in LPP-7514 to verify that state methods work
With catcherrors=false:
{smokecheck,lzpix} x {swf8,swf9,dhtml}
.......
Property changes on: openlaszlo/branches/4.2
___________________________________________________________________
Name: svnmerge-integrated
- /openlaszlo/branches/4.1:1-10153 /openlaszlo/branches/devildog:1-8432 /openlaszlo/branches/pagan-deities:1-7955,8825,10756-10920,10922-10928,10930-10935,11151,11207,11554 /openlaszlo/branches/paperpie:1-6504,6506-6574,6576-7135,7137-7235 /openlaszlo/branches/wafflecone:1-5746,5818-6068,6070-6205,6207-6213,6216-6265,6267-6368,6370-6431,6433-6450,6497,6509,6661,7097,7872 /openlaszlo/trunk:1-12154,12172-12175,12177-12185,12187-12194,12196,12201,12208,12229,12251-12252,12254-12255,12257-12258,12260,12262-12266,12268-12269,12271-12275,12278-12285,12303,12318-12323,12345,12360,12403,12420,12424,12429,12457,12473,12477,12508,12594,12596,12603,12664,12669,12675,12677,12719,12737
+ /openlaszlo/branches/4.1:1-10153 /openlaszlo/branches/devildog:1-8432 /openlaszlo/branches/pagan-deities:1-7955,8825,10756-10920,10922-10928,10930-10935,11151,11207,11554 /openlaszlo/branches/paperpie:1-6504,6506-6574,6576-7135,7137-7235 /openlaszlo/branches/wafflecone:1-5746,5818-6068,6070-6205,6207-6213,6216-6265,6267-6368,6370-6431,6433-6450,6497,6509,6661,7097,7872 /openlaszlo/trunk:1-12154,12172-12175,12177-12185,12187-12194,12196,12201,12208,12229,12251-12252,12254-12255,12257-12258,12260,12262-12266,12268-12269,12271-12275,12278-12285,12303,12318-12323,12345,12360,12403,12420,12424,12429,12457,12473,12477,12508,12594,12596,12603,12664,12669,12675,12677,12719,12737,12752
Modified: openlaszlo/branches/4.2/lps/components/rpc/xmlrpc.lzx
===================================================================
--- openlaszlo/branches/4.2/lps/components/rpc/xmlrpc.lzx 2009-02-05 13:20:26 UTC (rev 12753)
+++ openlaszlo/branches/4.2/lps/components/rpc/xmlrpc.lzx 2009-02-05 14:42:23 UTC (rev 12754)
@@ -31,6 +31,7 @@
// create proxy for a particular funcname only once.
if ( this.proxy[method] == null ) {
+#pragma "catchFunctionExceptions=false"
this.proxy[method] = function (paramArr, delegate) {
var args = arguments.callee.args;
LzXMLRPCService.invoke(delegate, paramArr,
@@ -145,7 +146,7 @@
</library>
<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
-* Copyright 2001-2008 Laszlo Systems, Inc. All Rights Reserved. *
+* Copyright 2001-2009 Laszlo Systems, Inc. All Rights Reserved. *
* Use is subject to license terms. *
* X_LZ_COPYRIGHT_END ****************************************************** -->
<!-- @LZX_VERSION@ -->
More information about the Laszlo-checkins
mailing list