[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