[ 
https://issues.apache.org/jira/browse/FLEX-26325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13649861#comment-13649861
 ] 

William Draï commented on FLEX-26325:
-------------------------------------

Hi Justin,

Would you agree to implement the third option I proposed at that time (be able 
to override the toString function).
In GraniteDS we already have a generic lazy data aware toString method that we 
would like to use instead of the default one.
In my opinion this simple change alone would be a great incentive for our users 
to switch from Flex 4.5/4.6 to Apache Flex.

                
> 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: Adobe JIRA
>              Labels: easyfix
>         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