[
https://issues.apache.org/jira/browse/FLEX-26325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gavin Donald updated FLEX-26325:
--------------------------------
Attachment: 2833.patch
OK, I have tried 7 or 8 times with the same result each time and the patch does
speed up the AMF request. The patch is only removing a logging statement and so
is probably not as good a solution as posted by the original bug filer, in fact
it is probably not a sensible fix at all for the SDK.
I have posted on the forum where the original bug filer works and hopefully he
may come along and submit something better. The post that led me to this issue
is:
https://groups.google.com/forum/?fromgroups=#!searchin/graniteds/ignore/graniteds/w4MO0yavjPM/XQr5CvNEeTYJ
and it contains a detailed reason as to why the problem occurs.
HTH.
> 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