Justin,

It looks like Mustella tests are broken as a result of this change.  Here
is the RTE.  Can you please take a look at it?

This is the current state of the Mustella run[1]  Note that Mustella is
stuck on this test.

Thanks,
Om

[1] http://flex-mustella.cloudapp.net/job/flex-sdk_mustella/640/console

TypeError: Error #1009: Cannot access a property or method of a null
object reference.
at mx.resources::
ResourceManagerImpl/findResourceBundleWithResource()[C:\jenkins_slave\workspace\flex-sdk_mustella\frameworks\projects\framework\src\mx\resources\ResourceManagerImpl.as:882]
at
mx.resources::ResourceManagerImpl/findBundle()[C:\jenkins_slave\workspace\flex-sdk_mustella\frameworks\projects\framework\src\mx\resources\ResourceManagerImpl.as:1094]
at
mx.resources::ResourceManagerImpl/getStringArray()[C:\jenkins_slave\workspace\flex-sdk_mustella\frameworks\projects\framework\src\mx\resources\ResourceManagerImpl.as:952]
at mx.controls::DateField/set dayNames()
at mx.controls::DateField/resourcesChanged()
at
mx.core::UIComponent()[C:\jenkins_slave\workspace\flex-sdk_mustella\frameworks\projects\framework\src\mx\core\UIComponent.as:1722]
at mx.controls::ComboBase()
at mx.controls::DateField()
at mx.core::Container/createComponentFromDescriptor()
at mx.core::Container/createComponentsFromDescriptors()



On Sat, Dec 28, 2013 at 10:38 PM, <jmcl...@apache.org> wrote:

> Updated Branches:
>   refs/heads/develop b0e208c92 -> edd6e20f5
>
>
> FLEX-33836 lazy loading of resource files give performance improvement
> (esp mobile)
>
>
> Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
> Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/edd6e20f
> Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/edd6e20f
> Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/edd6e20f
>
> Branch: refs/heads/develop
> Commit: edd6e20f5b04e41c054877f5798141119c02afc1
> Parents: b0e208c
> Author: Justin Mclean <jmcl...@apache.org>
> Authored: Sun Dec 29 17:38:04 2013 +1100
> Committer: Justin Mclean <jmcl...@apache.org>
> Committed: Sun Dec 29 17:38:04 2013 +1100
>
> ----------------------------------------------------------------------
>  .../src/mx/resources/ResourceManagerImpl.as     | 74 ++++++++++++++++++--
>  1 file changed, 70 insertions(+), 4 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/edd6e20f/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
> b/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
> index 9c21ca8..07c6d95 100644
> --- a/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
> +++ b/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
> @@ -414,16 +414,20 @@ public class ResourceManagerImpl extends
> EventDispatcher implements IResourceMan
>                  "' for locale '" + locale + "'.");
>          }
>
> -        // Create an instance of the bundle class.
> -        resourceBundle = ResourceBundle(new bundleClass());
> +        // Create a proxy
> +        var proxy:ResourceBundleProxy = new ResourceBundleProxy();
> +
> +               proxy.bundleClass = bundleClass;
> +               proxy.useWeakReference = useWeakReference;
>
>          // In case we just created a ResourceBundle from a Flex 2 SWC,
>          // set its locale and bundleName, because the old constructor
>          // didn't used to do this.
> -        ResourceBundle(resourceBundle)._locale = locale;
> -        ResourceBundle(resourceBundle)._bundleName = bundleName;
> +        proxy.locale = locale;
> +        proxy.bundleName = bundleName;
>
>          // Add that resource bundle instance to the ResourceManager.
> +        resourceBundle = proxy;
>          addResourceBundle(resourceBundle, useWeakReference);
>
>          return resourceBundle;
> @@ -707,6 +711,10 @@ public class ResourceManagerImpl extends
> EventDispatcher implements IResourceMan
>                  }
>              }
>          }
> +        else if (bundleObject is ResourceBundleProxy)
> +        {
> +               bundle =
> loadResourceBundleProxy(ResourceBundleProxy(bundleObject));
> +        }
>          else
>          {
>              bundle = bundleObject as IResourceBundle;
> @@ -715,6 +723,17 @@ public class ResourceManagerImpl extends
> EventDispatcher implements IResourceMan
>          return bundle;
>      }
>
> +    private function
> loadResourceBundleProxy(proxy:ResourceBundleProxy):ResourceBundle {
> +       var proxyClass:Class = proxy.bundleClass;
> +        var resourceBundle:ResourceBundle = ResourceBundle(new
> proxyClass());
> +               resourceBundle._locale = proxy.locale;
> +       resourceBundle._bundleName = proxy.bundleName;
> +
> +       addResourceBundle(resourceBundle, proxy.useWeakReference);
> +
> +       return resourceBundle;
> +    }
> +
>      /**
>       *  @copy mx.resources.IResourceManager#removeResourceBundle()
>       *
> @@ -851,6 +870,10 @@ public class ResourceManagerImpl extends
> EventDispatcher implements IResourceMan
>                      }
>                  }
>              }
> +            else if (bundleObject is ResourceBundleProxy)
> +            {
> +                       bundle =
> loadResourceBundleProxy(ResourceBundleProxy(bundleObject));
> +            }
>              else
>              {
>                  bundle = bundleObject as IResourceBundle;
> @@ -1161,6 +1184,7 @@ import flash.events.EventDispatcher;
>  import mx.events.ModuleEvent;
>  import mx.events.ResourceEvent;
>  import mx.modules.IModuleInfo;
> +import mx.resources.IResourceBundle;
>  import mx.resources.IResourceModule;
>
>
>  
> ////////////////////////////////////////////////////////////////////////////////
> @@ -1322,3 +1346,45 @@ class ResourceEventDispatcher extends
> EventDispatcher
>          dispatchEvent(resourceEvent);
>      }
>  }
> +
>
> +////////////////////////////////////////////////////////////////////////////////
> +//
> +//  Helper class: ResourceBundleProxy
> +//
>
> +////////////////////////////////////////////////////////////////////////////////
> +
> +/**
> + *  @private
> + */
> +class ResourceBundleProxy implements IResourceBundle
> +{
> +       public var bundleClass:Class;
> +       public var useWeakReference:Boolean;
> +
> +       private var _bundleName:String;
> +       private var _locale:String;
> +
> +    public function ResourceBundleProxy()
> +       {
> +       }
> +
> +       public function get bundleName():String {
> +               return _bundleName;
> +       }
> +
> +       public function set bundleName(value:String):void {
> +               _bundleName = value;
> +       }
> +
> +    public function get content():Object {
> +       return null;
> +    }
> +
> +       public function get locale():String {
> +               return _locale;
> +       }
> +
> +       public function set locale(value:String):void {
> +               _locale = value;
> +       }
> +}
>
>

Reply via email to