Details

    • Type: Bug Bug
    • Status: Patch Available
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: 1.2.4
    • Fix Version/s: None
    • Component/s: Core
    • Labels:
      None
    • Environment:
      Mojarra 1.2_15, trinidad 1.2.14

      Description

      the synchronized Method ExtValContextInternals.initInformationProviderBean is called many times for each client request.

      We don't configured a custom InformationProviderBean.

      In line 71 the created "default" InformationProviderBean is just returned and not stored in application scope.

      Custom InformationProviderBeans will be stored in application scope, so the method ist just called once.

      Under heavy load, this could be a bottleneck

      1. EXTVAL-139.patch
        4 kB
        Rudy De Busscher

        Activity

        Hide
        Rudy De Busscher added a comment -

        And there could be an issue when the "default" InformationProviderBean is cached.

        If the bean is cached in the application scope on first access but a startup listener is used to customize the DefaultExtValCoreConfiguration (like ExtValCoreConfiguration.use(CustomExtValCoreConfiguration, true); where CustomExtValCoreConfiguration overwrites DefaultExtValCoreConfiguration.customInformationProviderBeanClassName() ) it is possible that this custom information provider bean isn't used. Because the execution order of the PhaseListener's isn't determined.

        However, we could provide a configuration option, true by default, that indicates if the "default" InformationProviderBean should be cached. This could fix the above scenario and provide the caching.

        I'll make a patch.

        Show
        Rudy De Busscher added a comment - And there could be an issue when the "default" InformationProviderBean is cached. If the bean is cached in the application scope on first access but a startup listener is used to customize the DefaultExtValCoreConfiguration (like ExtValCoreConfiguration.use(CustomExtValCoreConfiguration, true); where CustomExtValCoreConfiguration overwrites DefaultExtValCoreConfiguration.customInformationProviderBeanClassName() ) it is possible that this custom information provider bean isn't used. Because the execution order of the PhaseListener's isn't determined. However, we could provide a configuration option, true by default, that indicates if the "default" InformationProviderBean should be cached. This could fix the above scenario and provide the caching. I'll make a patch.
        Hide
        Gerhard Petracek added a comment -

        since there is a workaround, it's a minor issue.

        Show
        Gerhard Petracek added a comment - since there is a workaround, it's a minor issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            Markus Dreher
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:

              Development