[
https://issues.apache.org/jira/browse/FLEX-26325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Mclean reassigned FLEX-26325:
------------------------------------
Assignee: Justin Mclean (was: Adobe JIRA)
> 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
> 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