Uploaded image for project: 'Struts 1'
  1. Struts 1
  2. STR-2887

TagUtils.instance is private final. Please allow to change the instance with a custom one! Maybe put it protected only!

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Trivial
    • Resolution: Fixed
    • 1.2.9
    • 1.3.5
    • Example Applications
    • None

    Description

      Hi all,

      I'm running with struts 1.1 and I tried to migrate to 1.2.9 this morning. My biggest problem is that I needed to change the code base of my 1.1 to put new feature I needeed. One of them is that I introduced new scope like: window scope So I have
      ApplicationScope
      SessionScope
      WindowScope
      RequestScope
      PageScope.

      This allow me to have multiple browser windows on the same application and they not interfering. To do so I needed to patch the RequestUtil.lookup and now the TagUtils.lookup method. My problem is that there is no way in. The TagUtils defines an instance but it's a private final variable. So no way to plug in a new TagUtils classe in there?! For sure that would be a good feature for me

      If the instance variable is at least protected and not final. It would be possible to create my new WindowScopeEnabledTagUtils class that inherit from tagUtils and change the instance for my new instance. That would have been great! Is that can be done ? Is there a reason why thing are like that?
      Have been away from the lastest version of struts and I have some catchup to do

      Thanks for your help
      Best Regards
      /David

      public class TagUtils {

      /**

      • The Singleton instance.
        */
        private static final TagUtils instance = new TagUtils();

      Attachments

        Activity

          People

            Unassigned Unassigned
            gagnondav David Gagnon
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: