[ 
https://issues.apache.org/jira/browse/FLEX-26325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Justin Mclean resolved FLEX-26325.
----------------------------------

       Resolution: Fixed
    Fix Version/s: Apache Flex 4.10.0

Added externalToString method to set user defined method to call.
                
> RemoteObject logs too eagerly all sent messages
> -----------------------------------------------
>
>                 Key: FLEX-26325
>                 URL: https://issues.apache.org/jira/browse/FLEX-26325
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: RPC: RemoteObject
>    Affects Versions: Adobe Flex SDK 4.1 (Release)
>         Environment: Affected OS(s): All OS Platforms
> Language Found: English
>            Reporter: Adobe JIRA
>            Assignee: Justin Mclean
>              Labels: easyfix
>             Fix For: Apache Flex 4.10.0
>
>         Attachments: 2833.patch
>
>
> Steps to reproduce:
> 1. Set debug level on any Logger in the application (not even necessarily on 
> mx.rpc.*)
> 2. Call a remote operation with a RemoteObject sending a complex object 
> graph, or an object graph containing 'lazy loaded' data, e.g. with LCDS or 
> GraniteDS
>  
>  Actual Results:
> RemoteObject computes the complete debug message in RPCObjectUtils by the 
> ultra slow AS3 reflection (even when the message will never be logged at 
> all), and consequently triggers all lazy initializations (for example by 
> accessing all lazyCollection.length properties on all the object graph). 
> See here for more details on the issue: 
> http://insideria.com/2010/10/flex-rpc-and-the-broken-mxlogg.html
>  
>  Expected Results:
> No computation of the debug message should be done when mx.rpc is not in 
> debug mode.
> At least provide one of these options :
> - Allow adding manually excluded properties in 
> RPCObjectUtils.defaultToStringExcludes (make it public or add a function 
> addDefaultExclude)
> - Use existing toString() methods on objects when available instead of always 
> relying on AS3 reflection
> - Provide a way to completely override the default RPCObjectUtil.toString, 
> i.e.
> public var toStringFunction:Function;
> public static function toString(value:Object, 
>                                     namespaceURIs:Array = null, 
>                                     exclude:Array = null):String
> {
>     if (toStringFunction != null) {
>         return toStringFunction(value, namespaceURIs, exclude);
>     }
>     if (exclude == null)
>     {
>         exclude = defaultToStringExcludes;
>     }
>         
>     refCount = 0;
>     return internalToString(value, 0, null, namespaceURIs, exclude);
> }
>  
>  Workaround (if any):
>  
> Never set any debug level on any Logger.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to