flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gavin Donald (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLEX-26325) RemoteObject logs too eagerly all sent messages
Date Sat, 04 May 2013 07:42:15 GMT

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

Gavin Donald commented on FLEX-26325:
-------------------------------------

This desperately needs a fix. Inexperienced developers are going to find this almost impossible
to track down. Even on a small object graph the RPC call is taking 2-3 minutes to generate
and makes logging impossible. I am monkey patching for now but please re-open this for a quick
resolution.
                
> 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
>            Priority: Minor
>
> 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

Mime
View raw message