[ https://issues.apache.org/jira/browse/FLEX-26325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13649038#comment-13649038 ]
Gavin Donald commented on FLEX-26325: ------------------------------------- This issue is marked as resolved but that does not appear to be the case. > 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