struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ananga Mohan Bera (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (WW-4868) createInstance method signature change of TextProviderFactory from merged xwork-core code inside struts2-core-2.5.13.jar which was present with xwork-core jar
Date Fri, 06 Oct 2017 14:37:01 GMT

    [ https://issues.apache.org/jira/browse/WW-4868?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16194660#comment-16194660 ] 

Ananga Mohan Bera commented on WW-4868:
---------------------------------------

Hi 
The example app does not open.
We are having many Custom Tag classes like the example below where We are utilizing TextProvider and TextProviderFactory.

public  abstract class MCBaseTag extends BodyTagSupport implements TagLibUtil, TextProvider, LocaleProvider,Validateable,ValidationAware{

    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
     * Commons Logging instance
     */
    public static final Logger log = LoggerFactory.getLogger("BancsOnline."+MCBaseTag.class.getName());

    // ----------------------------------------------------- Instance Variables
    /**
     * The default Locale for our server.
     */
    protected static final Locale defaultLocale = Locale.getDefault();

    /**
     * The message resources for this package.
     */
   /* protected static final MessageResources messages =
        MessageResources.getMessageResources(Constants.Package + ".LocalStrings");*/

    //MasterCraft Attributes
    /**
     * The message resources for MasterCraft Messages
     */
    /*protected static final MessageResources MCMessages =
        MessageResources.getMessageResources("com.tcs.mastercraft.taglib.ErrorMessages");
    */
    private String technology="html4";
    public TagLibUtil tagLibUtil;

    public String property = null;
    protected String dir = "ltr";
    public String lang = null;
    public String xml_lang = null;
    public String value = null;
    protected String name = Constants.BEAN_KEY ;
    protected boolean isNetScape = false;
    protected String dataRole=null;
    protected String dataType=null;

    public MCBaseTag(){


    }
    public String getDataRole(){
        return dataRole;
    }


    public static TagLibUtil getTagLibNewInstance(MCBaseTag wrapperObeject, PageContext pageContextObj){
        return TechnologyFactory.getTagLibInstance(wrapperObeject,pageContextObj);
    }
    public void setDataRole(String dataRole ){
        //System.out.println("dataRole:"+dataRole);
        this.dataRole=dataRole;
    }

    public String getDataType(){
        return dataType;
    }
    public void setDataType(String dataType ){
        //System.out.println("dataType:"+dataType);
        this.dataType=dataType;
    }

    protected McFieldPropMap map = null;
    public McFieldPropMap getMap() {
        return map;
    }
    public void setMap(McFieldPropMap map) {
        this.map = map;
    }
    protected gu_base controlObject = null;
    public gu_base getControlObject() {
        return controlObject;
    }
    public void setControlObject(gu_base controlObject) {
        this.controlObject = controlObject;
    }
    public WinBase getWindowObject() {
        return windowObject;
    }
    public void setWindowObject(WinBase windowObject) {
        this.windowObject = windowObject;
    }
    protected WinBase windowObject = null;

    //  Navigation Management

    /** Access key character. */
    public String accesskey = null;

    /** Tab index value. */
    protected String tabindex = null;

    //  Indexing ability for Iterate

    /** Whether the control is output in javascript or not
     *
     */
    protected boolean script = false;

    //  Mouse Events

    /** Mouse click event. */
    protected String onclick = null;

    /** Mouse double click event. */
    protected String ondblclick = null;

    /** Mouse over component event. */
    protected String onmouseover = null;

    /** Mouse exit component event. */
    protected String onmouseout = null;

    /** Mouse moved over component event. */
    protected String onmousemove = null;

    /** Mouse pressed on component event. */
    protected String onmousedown = null;

    /** Mouse released on component event. */
    protected String onmouseup = null;

    //  Keyboard Events

    /** Key down in component event. */
    protected String onkeydown = null;
    //Added by piyush for keyboard support
    //Starts
    protected String tabsIndex;
    public String getTabsIndex() {
        //System.out.println("tabsIndex"+tabsIndex);
        return tabsIndex;
    }

    public void setTabsIndex(String tabsIndex) {
        //System.out.println("tabsIndex"+tabsIndex);
        this.tabsIndex = tabsIndex;
    }

    //Ends

    /** Key released in component event. */
    protected String onkeyup = null;

    /** Key down and up together in component event. */
    protected String onkeypress = null;

    // Text Events

    /** Text selected in component event. */
    protected String onselect = null;

    /** Content changed after component lost focus event. */
    protected String onchange = null;

    // Focus Events and States

    /** Component lost focus event. */
    protected String onblur = null;

    /** Component has received focus event. */
    protected String onfocus = null;

    /** Component is disabled. */
    protected boolean disabled = false;

    /** Component is readonly. */
    protected boolean readonly = false;

    // CSS Style Support

    /** Style attribute associated with component. */
    protected String style = null;

    /** Named Style class associated with component. */
    public String styleClass = null;

    /** Identifier associated with component.  */
    protected String styleId = null;

    // Other Common Attributes

    /** The alternate text of this element. */
    public String alt = null;

    /** The message resources key of the alternate text. */
    protected String altKey = null;

    /** The name of the message resources bundle for message lookups. */
    protected String bundle = Globals.MESSAGES_KEY;

    /** The name of the session attribute key for our locale. */
    protected String locale = Globals.LOCALE_KEY;

    /** The advisory title of this element. */
    public String title = null;

    /** The message resources key of the advisory title. */
    protected String titleKey = null;
    public String parentId = null;////Modified by parul for Domain validation
    /**
     * <code>multiVal</code> must be set to true
     * by subclasses for multival controls
     */
    protected boolean multiVal = false;


    /**
     * @return Returns the script.
     */
    public boolean isScript() {
        return script;
    }
    /**
     * @param script The script to set.
     */
    public void setScript(boolean script) {
        this.script = script;
    }
    // ------------------------------------------------------------- Properties

    //  Navigation Management

    /** Sets the accessKey character. */
    public void setAccesskey(String accessKey) {
        this.accesskey = accessKey;
    }

    /** Returns the accessKey character. */
    public String getAccesskey() {
        return (this.accesskey);
    }

    /** Sets the tabIndex value. */
    public void setTabindex(String tabIndex) {
        this.tabindex = tabIndex;
    }

    /** Returns the tabIndex value. */
    public String getTabindex() {
        return (this.tabindex);
    }

    //  Indexing ability for Iterate [since Struts 1.1]

    /** Sets the onClick event handler. */
    public void setOnclick(String onClick) {
        this.onclick = onClick;
    }

    /** Returns the onClick event handler. */
    public String getOnclick() {
        return onclick;
    }

    /** Sets the onDblClick event handler. */
    public void setOndblclick(String onDblClick) {
        this.ondblclick = onDblClick;
    }

    /** Returns the onDblClick event handler. */
    public String getOndblclick() {
        return ondblclick;
    }

    /** Sets the onMouseDown event handler. */
    public void setOnmousedown(String onMouseDown) {
        this.onmousedown = onMouseDown;
    }

    /** Returns the onMouseDown event handler. */
    public String getOnmousedown() {
        return onmousedown;
    }

    /** Sets the onMouseUp event handler. */
    public void setOnmouseup(String onMouseUp) {
        this.onmouseup = onMouseUp;
    }

    /** Returns the onMouseUp event handler. */
    public String getOnmouseup() {
        return onmouseup;
    }

    /** Sets the onMouseMove event handler. */
    public void setOnmousemove(String onMouseMove) {
        this.onmousemove = onMouseMove;
    }

    /** Returns the onMouseMove event handler. */
    public String getOnmousemove() {
        return onmousemove;
    }

    /** Sets the onMouseOver event handler. */
    public void setOnmouseover(String onMouseOver) {
        this.onmouseover = onMouseOver;
    }

    /** Returns the onMouseOver event handler. */
    public String getOnmouseover() {
        return onmouseover;
    }

    /** Sets the onMouseOut event handler. */
    public void setOnmouseout(String onMouseOut) {
        this.onmouseout = onMouseOut;
    }

    /** Returns the onMouseOut event handler. */
    public String getOnmouseout() {
        return onmouseout;
    }

    // Keyboard Events

    /** Sets the onKeyDown event handler. */
    public void setOnkeydown(String onKeyDown) {
        this.onkeydown = onKeyDown;
    }

    /** Returns the onKeyDown event handler. */
    public String getOnkeydown() {
        return onkeydown;
    }

    /** Sets the onKeyUp event handler. */
    public void setOnkeyup(String onKeyUp) {
        this.onkeyup = onKeyUp;
    }

    /** Returns the onKeyUp event handler. */
    public String getOnkeyup() {
        return onkeyup;
    }

    /** Sets the onKeyPress event handler. */
    public void setOnkeypress(String onKeyPress) {
        this.onkeypress = onKeyPress;
    }

    /** Returns the onKeyPress event handler. */
    public String getOnkeypress() {
        return onkeypress;
    }

    // Text Events

    /** Sets the onChange event handler. */
    public void setOnchange(String onChange) {
        this.onchange = onChange;
    }

    /** Returns the onChange event handler. */
    public String getOnchange() {
        return onchange;
    }

    /** Sets the onSelect event handler. */
    public void setOnselect(String onSelect) {
        this.onselect = onSelect;
    }

    /** Returns the onSelect event handler. */
    public String getOnselect() {
        return onselect;
    }

    // Focus Events and States

    /** Sets the onBlur event handler. */
    public void setOnblur(String onBlur) {
        this.onblur = onBlur;
    }

    /** Returns the onBlur event handler. */
    public String getOnblur() {
        return onblur;
    }

    /** Sets the onFocus event handler. */
    public void setOnfocus(String onFocus) {
        this.onfocus = onFocus;
    }

    /** Returns the onFocus event handler. */
    public String getOnfocus() {
        return onfocus;
    }

    /** Sets the disabled event handler. */
    public void setDisabled(boolean disabled) {
        this.disabled = disabled;
    }

    /** Returns the disabled event handler. */
    public boolean getDisabled() {
        return isDisabled();
    }

    /** Sets the readonly event handler. */
    public void setReadonly(boolean readonly) {
        this.readonly = readonly;
    }

    /** Returns the readonly event handler. */
    public boolean getReadonly() {
        return readonly;
    }

    // CSS Style Support

    /** Sets the style attribute. */
    public void setStyle(String style) {
        this.style = style;
    }

    /** Returns the style attribute. */
    public String getStyle() {
        return style;
    }

    /** Sets the style class attribute. */
    public void setStyleClass(String styleClass) {
        this.styleClass = styleClass;
    }

    /** Returns the style class attribute. */
    public String getStyleClass() {
        return styleClass;
    }

    /** Sets the style id attribute.  */
    public void setStyleId(String styleId) {
        this.styleId = styleId;
    }

    /** Returns the style id attribute.  */
    public String getStyleId() {
        return styleId;
    }

    // Other Common Elements

    /** Returns the alternate text attribute. */
    public String getAlt() {
        return alt;
    }

    /** Sets the alternate text attribute. */
    public void setAlt(String alt) {
        this.alt = alt;
    }

    /** Returns the message resources key of the alternate text. */
    public String getAltKey() {
        return altKey;
    }

    /** Sets the message resources key of the alternate text. */
    public void setAltKey(String altKey) {
        this.altKey = altKey;
    }

    /** Returns the name of the message resources bundle to use. */
    public String getBundle() {
        return bundle;
    }

    /** Sets the name of the message resources bundle to use. */
    public void setBundle(String bundle) {
        this.bundle = bundle;
    }

    /** Sets the name of the session attribute for our locale. */
    public void setLocale(String locale) {
        this.locale = locale;
    }

    /** Returns the advisory title attribute. */
    public String getTitle() {
        return title;
    }

    /** Sets the advisory title attribute. */
    public void setTitle(String title) {
        this.title = title;
    }

    /** Returns the message resources key of the advisory title. */
    public String getTitleKey() {
        return titleKey;
    }

    /** Sets the message resources key of the advisory title. */
    public void setTitleKey(String titleKey) {
        this.titleKey = titleKey;
    }

    /**
     * @return Returns the dir.
     */
    public String getDir() {
        return dir;
    }
    /**
     * @param dir The dir to set.
     */
    public void setDir(String dir) {
        this.dir = dir;
    }

    /**
     * @return Returns the lang.
     */
    public String getLang() {
        return lang;
    }
    /**
     * @param lang The lang to set.
     */
    public void setLang(String lang) {
        this.lang = lang;
    }
    /**
     * @return Returns the property.
     */
    public String getProperty() {
        return property;
    }
    /**
     * @param property The property to set.
     */
    public void setProperty(String property) {
        this.property = property;
    }
    /**
     * @return Returns the value.
     */
    public String getValue() {
        return value;
    }
    /**
     * @param value The value to set.
     */
    public void setValue(String value) {
        this.value = value;
    }
    /**
     * @return Returns the xml_lang.
     */
    public String getXml_lang() {
        return xml_lang;
    }
    /**
     * @param xml_lang The xml_lang to set.
     */
    public void setXml_lang(String xml_lang) {
        this.xml_lang = xml_lang;
    }
    // --------------------------------------------------------- Public Methods
    /**
     * @param name The form-bean name to set.
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return Returns the form-bean name
     */
    public String getName() {
        return name;
    }

    ////Modified by parul for Domain validation -- start
    /**
     * @return Returns the parentId.
     */
    public String getParentId() {
        return parentId;
    }

    /**
     * @The parentId to set.
     */
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }
    ////Modified by parul for Domain validation -- end

    public String message(String key) throws JspException
    {
        return LabelUtilFactory.getInstance().getLabel(pageContext, key);
    }
    
    public String escapeHTML(String dom) {
        return ESAPI.encoder().encodeForHTML(dom); }

      public String escapeHTMLAttribute(String dom) {
        return ESAPI.encoder().encodeForHTMLAttribute(dom); }

      public String escapeCSS(String dom) {
        return ESAPI.encoder().encodeForCSS(dom); }

      public String escapeJavaScript(String dom) {
        return ESAPI.encoder().encodeForJavaScript(dom);
      }

    /**
     * Allows HTML tags to find out if they're nested within an %lt;html:html&gt; tag that
     * has xhtml set to true.
     * @return true if the tag is nested within an html tag with xhtml set to true, false
     * otherwise.
     * @since Struts 1.1
     */
    protected boolean isXhtml() {
        String xhtml =
                (String) this.pageContext.getAttribute(Globals.XHTML_KEY, PageContext.PAGE_SCOPE);

        if ("true".equalsIgnoreCase(xhtml)) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * Returns the closing brace for an input element depending on xhtml status.  The tag
     * must be nested within an %lt;html:html&gt; tag that has xhtml set to true.
     * @return String - &gt; if xhtml is false, /&gt; if xhtml is true
     * @since Struts 1.1
     */
    public String getElementClose() {
        if (this.isXhtml()) {
            return " />";
        } else {
            return ">";
        }
    }

//  MasterCraft Methods

    /**
     * Fetches the window object and then gets the control object
     * using the property attribute.
     * @throws javax.servlet.jsp.JspException
     */
    protected void init() throws JspException {

        String propVal;
        windowObject = (WinBase)(pageContext.getRequest().getAttribute("winInstance"));

        setWindowObject(windowObject);//vinod changes
        if ( windowObject == null )
            throw new JspException(getText("NoWindowObj"));


        /*arabic changes - starts*/
        this.dir = ((String)this.pageContext.getSession().getAttribute("dir"));
        /*arabic changes - ends*/

        if ( styleId == null || styleId.length() == 0 )
            throw new JspException(getText("NoStyleId"));
       	/*log.debug("*******PROPERTY*********"+property); */
        if ( property == null || property.length() == 0 )
            throw new JspException(getText("NoProperty"));

        //if ((propVal = EvalHelper.evalString("property", property,this, pageContext)) != null)
        //    	property = propVal;

        controlObject = windowObject.getControl(styleId);
        if ( controlObject == null )
            throw new JspException(getText("NoControlObj",styleId));	 

        map = controlObject.getFieldPropMap();
        if ( map == null )
            throw new JspException(getText("NoMap",styleId));	 

        isNetScape = windowObject.getbNetscape();
        //setReadonly(!map.getBEnabled());
        setReadonly(map.getBReadOnly());
    }

    public void renderMCFlags(StringBuffer sb) {

        if( map.getBMandatory()  )
            sb.append(" mandflag=\"y\" ");
        else {
            if( controlObject.getOptMand() != null && controlObject.getOptMand().length() != 0) {
                sb.append(controlObject.getOptMand());
                sb.append("flag=\"y\"");
            }
        }
        if(!(this instanceof MCSleTag)){
            if(isDisabled()){
                if( !map.getBEnabled() )
                    sb.append("disabled DispOnly=\"true\"");
            }
        }
        else{
            if ((this.disabled) ||
                    (this.map.getBEnabled())) return;
            sb.append("readonly DispOnly=\"true\"");

        }

    }

    /*
     *  setting the userownstyle thru eventcode is not needed since the same can be done thru JSP
    protected void renderClass(StringBuffer sb) {

        sb.append(" class=\"");


        if ( controlObject.getUsrOwnStyle() == null || controlObject.getUsrOwnStyle().length() == 0 )
            sb.append("attrdtls");
        else
            sb.append(controlObject.getUsrOwnStyle());


        sb.append("\" ");
    }
    */

    ////Modified by parul for Domain validation -- start
    public void renderParent(StringBuffer sb) {
		if((parentId != null)&& (!("null".equals(parentId)))) // (parentId != "null") - code modified for fortify - Erroneous String Compare 
        {
            sb.append(" parentId=\"");
            sb.append( parentId );
            sb.append("\" ");
        }
    }
    ////Modified by parul for Domain validation -- end

    public void renderStyle(StringBuffer sb) {

        sb.append(" style=\"");
        /*arabic changes - start*/
         if ("rtl".equals(this.dir)) {
        	if(style != null){
        		style = replaceWord(style, "left", "right");
        	}
		    if(controlObject.toString().contains("MCSle") || controlObject.toString().contains("MCPassword") || controlObject.toString().contains("quartzBtnSle")) //Condition modified to allow right to left entering of textfield when the control is Password and QBE also
                style += ";text-align:right";

        }
        /*arabic changes - ends*/
         if(sb.toString().contains("textarea") && "yes".equalsIgnoreCase(BancsConfig.getStringValue("MCSysProp","simpleFontForTextArea","no")))
        {
            style += ";font: 100%/120% Verdana, Arial, Helvetica, sans-serif";
        }
        sb.append( style );

        if ( ! map.getBVisible()  ) {
            if ( isNetScape() )
                sb.append(";visibility:hidden");
            else
                sb.append(";display:none");
        }
        sb.append("\" ");
    }


    /**
     * Searches all scopes for the bean and calls BeanUtils.getProperty() with the
     * given arguments and converts any exceptions into JspException.
     *
     * @param beanName The name of the object to get the property from.
     * @param property The name of the property to get.
     * @return The value of the property.
     * @throws javax.servlet.jsp.JspException
     */
    public Object lookupProperty(String beanName, String property)
            throws JspException {
        //changed for struts 1.3 upgradation
        Object bean = TagUtils.getInstance().lookup(this.pageContext, beanName, null);
        if (bean == null) {
            throw new JspException(getText("getter.bean", beanName));
        }

        try {

            return PropertyUtils.getProperty(bean, property);

        }
        catch (IllegalAccessException e) {
            throw new JspException(
                    getText("getter.access", property, beanName));

        } catch (InvocationTargetException e) {
            Throwable t = e.getTargetException();
            throw new JspException(
                    getText("getter.result", property, t.toString()));

        } catch (NoSuchMethodException e) {
            throw new JspException(
                    getText("getter.method", property, beanName));
        }
    }


    /**
     * Returns the formValue.
     * @return  - Empty String if script is set
     * 			- String value if not multival
     * 			- String[] if multival
     * 			- can return null for multiVal controls if convertToServerFormat sets null ( This should never happen )
     * @throws javax.servlet.jsp.JspException
     */
    public Object getFormValue() throws JspException {

        Object val = null;

        if(!script){
            val = lookupProperty(name,property);
        }

        if( val == null )
        {
            if( multiVal ) {
                val = new String[1];
                ((String[])val)[0] = "";
            }
            else
                val = ""; //For single valued controls set the val as empty string

            return val;
        }

        if (val.getClass().isArray())
        {
            if(!multiVal) //control single valued; formfield multivalued
                throw new JspException(getText("TypeErrorFormHasArray",styleId));                
        }
        else
        {
            if(multiVal) //control multivalued; formfield single valued
                throw new JspException(getText("TypeErrorFormHasScalar",styleId));
        }

        //Added by Sanjeev on 26 March'14 to remove line breaks in searchJSON
		if(val.toString().contains("\n")){
			val = val.toString().replace("\n", "\t");
		}
		//Changes by Sanjeev Ends
		
        if(multiVal) {
            String[] valTemp = (String[])val;
            //changed for struts 1.3 upgradation
            for(int i=0;i<valTemp.length;i++)
                valTemp[i] = TagUtils.getInstance().filter(valTemp[i]);
            return val;
        }
        else
        {
        	/*Added by Sachin for resolving ARCH - 19099 : "ampersand( &) is displaying as '&amp;' for shortname" AND ARCH-19479 : "apostrophe(') is displaying as 'd&#39;'" Begins*/
        	if(val.toString().contains("&#") || val.toString().contains("&") || val.toString().contains("'") || val.toString().contains("\"")|| val.toString().contains("<") || val.toString().contains(">") || val.toString().contains("%"))	// ARCH-19780
        	{
        	/*Added by Sachin for resolving ARCH - 19099 : "ampersand( &) is displaying as '&amp;' for shortname" AND ARCH-19479 : "apostrophe(') is displaying as 'd&#39;'" Ends*/
        		return val.toString();
        	}
        	else
        	{
        		return TagUtils.getInstance().filter(val.toString());
        	}
        }
    }
    
    /**
     * For ARCH-31931
     * Overriding the above getFormValue for textArea tags
     * Removed the \n to \t replacement for textArea
     */
    
    public Object getFormValue(String tagName) throws JspException {

        Object val = null;

        if(!script){
            val = lookupProperty(name,property);
        }

        if( val == null )
        {
            if( multiVal ) {
                val = new String[1];
                ((String[])val)[0] = "";
            }
            else
                val = ""; //For single valued controls set the val as empty string

            return val;
        }

        if (val.getClass().isArray())
        {
            if(!multiVal) //control single valued; formfield multivalued
                throw new JspException(getText("TypeErrorFormHasArray",styleId));                
        }
        else
        {
            if(multiVal) //control multivalued; formfield single valued
                throw new JspException(getText("TypeErrorFormHasScalar",styleId));
        }
		
        if(multiVal) {
            String[] valTemp = (String[])val;
            //changed for struts 1.3 upgradation
            for(int i=0;i<valTemp.length;i++)
                valTemp[i] = TagUtils.getInstance().filter(valTemp[i]);
            return val;
        }
        else
        {
        	/*Added by Sachin for resolving ARCH - 19099 : "ampersand( &) is displaying as '&amp;' for shortname" AND ARCH-19479 : "apostrophe(') is displaying as 'd&#39;'" Begins*/
        	if(val.toString().contains("&#") || val.toString().contains("&") || val.toString().contains("'") || val.toString().contains("\"")|| val.toString().contains("<") || val.toString().contains(">") || val.toString().contains("%"))	// ARCH-19780
        	{
        	/*Added by Sachin for resolving ARCH - 19099 : "ampersand( &) is displaying as '&amp;' for shortname" AND ARCH-19479 : "apostrophe(') is displaying as 'd&#39;'" Ends*/
        		return val.toString();
        	}
        	else
        	{
        		return TagUtils.getInstance().filter(val.toString());
        	}
        }
    }
    
    /**
     * Prepares the event handlers for inclusion in the component's HTML tag.
     * @return The prepared String for inclusion in the HTML tag.
     */
    public String prepareEventHandlers() {
        StringBuffer handlers = new StringBuffer();
        prepareMouseEvents(handlers);
        prepareKeyEvents(handlers);
        prepareTextEvents(handlers);
        prepareFocusEvents(handlers);
        prepareUserHookEvents(handlers);
        return handlers.toString();
    }

    /**
     * Prepares the mouse event handlers, appending them to the the given
     * StringBuffer.
     * @param handlers The StringBuffer that output will be appended to.
     */
    protected void prepareMouseEvents(StringBuffer handlers) {
        if (onclick != null && onclick.length() != 0 ) {
            handlers.append(" onclick=\"");
            handlers.append( onclick );
            handlers.append("\"");
        }

        if (ondblclick != null && ondblclick.length() != 0) {
            handlers.append(" ondblclick=\"");
            handlers.append( ondblclick );
            handlers.append("\"");
        }

        if (onmouseover != null && onmouseover.length() != 0 ) {
            handlers.append(" onmouseover=\"");
            handlers.append( onmouseover );
            handlers.append("\"");
        }

        if (onmouseout != null && onmouseout.length() != 0 ) {
            handlers.append(" onmouseout=\"");
            handlers.append(onmouseout);
            handlers.append("\"");
        }

        if (onmousemove != null && onmousemove.length() != 0 ) {
            handlers.append(" onmousemove=\"");
            handlers.append( onmousemove);
            handlers.append("\"");
        }

        if (onmousedown != null &&onmousedown.length() != 0 ) {
            handlers.append(" onmousedown=\"");
            handlers.append( onmousedown );
            handlers.append("\"");
        }

        if (onmouseup != null && onmouseup.length() != 0 ) {
            handlers.append(" onmouseup=\"");
            handlers.append( onmouseup );
            handlers.append("\"");
        }
    }

    /**
     * Prepares the keyboard event handlers, appending them to the the given
     * StringBuffer.
     * @param handlers The StringBuffer that output will be appended to.
     */
    protected void prepareKeyEvents(StringBuffer handlers) {

        if (onkeydown != null && onkeydown.length() != 0 ) {
            handlers.append(" onkeydown=\"");
            handlers.append( onkeydown );
            handlers.append("\"");
        }

        if (onkeyup != null && onkeyup.length() != 0 ) {
            handlers.append(" onkeyup=\"");
            handlers.append(onkeyup);
            handlers.append("\"");
        }

        if (onkeypress != null && onkeypress.length() != 0) {
            handlers.append(" onkeypress=\"");
            handlers.append(onkeypress);
            handlers.append("\"");
        }
    }

    /**
     * Prepares the text event handlers, appending them to the the given
     * StringBuffer.
     * @param handlers The StringBuffer that output will be appended to.
     */
    protected void prepareTextEvents(StringBuffer handlers) {

        if (onselect != null && onselect.length() != 0 ) {
            handlers.append(" onselect=\"");
            handlers.append( onselect );
            handlers.append("\"");
        }

        if (onchange != null && onchange.length() != 0 ) {
            handlers.append(" onchange=\"");
            handlers.append(onchange);
            handlers.append("\"");
        }
    }

    /**
     * Prepares the focus event handlers, appending them to the the given
     * StringBuffer.
     * @param handlers The StringBuffer that output will be appended to.
     */
    protected void prepareFocusEvents(StringBuffer handlers) {

        if (onblur != null && onblur.length() != 0) {
            handlers.append(" onblur=\"");
            handlers.append(onblur);
            handlers.append("\"");
        }

        if (onfocus != null && onfocus.length() != 0) {
            handlers.append(" onfocus=\"");
            handlers.append(onfocus);
            handlers.append("\"");
        }

        if (isDisabled()) {
            handlers.append(" disabled=\"disabled\"");
        }

        if (readonly) {
            handlers.append(" readonly=\"readonly\"");
        }

    }

    /**
     * Prepares the user hook handler, appending them to the the given
     * StringBuffer.
     * @param handlers The StringBuffer that output will be appended to.
     */
    protected void prepareUserHookEvents(StringBuffer handlers) {

        if(controlObject != null && controlObject.userHook != null)
        {
            handlers.append(" " + controlObject.userHook);
        }
    }

    public String getUserHookEvents() {

        if(controlObject != null && controlObject.userHook != null)
        {
            return controlObject.userHook;
        }
        else {
            return null;
        }
    }

    public void renderStdProps(StringBuffer sb) throws JspException {

        if ( title != null && title.length() != 0 )
            sb.append("title=\""+title+"\" ");

        if ( lang != null && lang.length() != 0 )
            sb.append("lang=\""+lang+"\" ");

        if ( xml_lang != null && xml_lang.length() != 0 )
            sb.append("xml:lang=\""+xml_lang+"\" ");

        if ( accesskey != null && accesskey.length() != 0 )
            sb.append("accesskey=\""+accesskey+"\" ");

        sb.append(" name="+ property +" ");

        sb.append(" id="+ styleId +" ");

        if ( styleClass != null && styleClass.length() != 0 )
            sb.append("class=\""+ styleClass +"\"");

        if ( alt != null && alt.length() != 0 )
        {
            String altWithoutUnderScore=alt.replaceAll("_"," ");
            sb.append("alt=\""+ message(altWithoutUnderScore) +"\" ");
        }


    }


    public void release() {

        super.release();
        accesskey = null;
        alt = null;
        altKey = null;
        bundle = Globals.MESSAGES_KEY;
        name = Constants.BEAN_KEY;
        locale = Globals.LOCALE_KEY;
        onclick = null;
        ondblclick = null;
        onmouseover = null;
        onmouseout = null;
        onmousemove = null;
        onmousedown = null;
        onmouseup = null;
        onkeydown = null;
        onkeyup = null;
        onkeypress = null;
        onselect = null;
        onchange = null;
        onblur = null;
        onfocus = null;
        setDisabled(false);
        readonly = false;
        style = null;
        styleClass = null;
        styleId = null;
        tabindex = null;
        title = null;
        titleKey = null;
        value = null;

        windowObject = null;
        controlObject = null;
        map = null;
    }
    protected String ndcPush(HttpServletRequest req)
    {
        StringBuffer sb = new StringBuffer();

        MasterCraftClientContext clientContext = (MasterCraftClientContext)(req.getSession().getAttribute("ClientContext"));
        sb.append(((QzClientContext)clientContext.getUserDefinedObject("QzClientContext")).getARCHINFO().getLoginId()+":");
        sb.append(((QzClientContext)clientContext.getUserDefinedObject("QzClientContext")).getARCHINFO().getOU_ID()+":");
        sb.append(req.getSession().getId()+ ":");
        sb.append(req.getRemoteAddr());
		sb.append(":" +System.getProperty("server.name", " "));
        return sb.toString();
    }

    /*arabic changes - starts*/
    public String replaceWord(String paramString1, String paramString2, String paramString3) {
        int i = paramString1.indexOf(paramString2);
        if (i < 0)
            return paramString1;

        String str1 = paramString1.substring(0, i);
        String str2 = paramString1.substring(i + paramString2.length());
        return str1 + paramString3 + str2;
    }
    /*arabic changes - ends*/
    public Tag searchAncestorWithClass(Tag tagClass, Class klass){
        return (MCWrapperTag)findAncestorWithClass(tagClass, MCWrapperTag.class);
    }
    public  String getTechnology() {
        windowObject = (WinBase)(pageContext.getRequest().getAttribute("winInstance"));
        return(windowObject.getHtmlVersion());
        // return("html4");
    }
	/*public void setTechnology(String technology) {
		this.technology = technology;
	}*/

    public boolean isDisabled() {
        return disabled;
    }
    public boolean isNetScape() {
        return isNetScape;
    }
    public void setNetScape(boolean isNetScape) {
        this.isNetScape = isNetScape;
    }
    
 // private final transient TextProvider textProvider = new TextProviderFactory().createInstance(getClass(), this);
   
  /* private TextProviderFactory textProviderFactory;
   @Inject
   public void setTextProvideFactory(TextProviderFactory textProviderFactory){
	   this.textProviderFactory=textProviderFactory;
   }
   private TextProvider getTextProvider(Object action){
	   return textProviderFactory.createInstance(getClass());
   }*/
  
  private final transient TextProvider textProvider = new TextProviderFactory().createInstance(getClass(), this);
    public String getText(String aTextName) {
        return textProvider.getText(aTextName);
    }

    public String getText(String aTextName, String defaultValue) {
        return textProvider.getText(aTextName, defaultValue);
    }

    public String getText(String aTextName, String defaultValue, String obj) {
        return textProvider.getText(aTextName, defaultValue, obj);
    }

    public String getText(String aTextName, List args) {
        return textProvider.getText(aTextName, args);
    }

   
    public String getText(String key, String[] args) {
        return textProvider.getText(key, args);
    }

    public String getText(String aTextName, String defaultValue, List args) {
        return textProvider.getText(aTextName, defaultValue, args);
    }

    public String getText(String key, String defaultValue, String[] args) {
        return textProvider.getText(key, defaultValue, args);
    }

    public String getText(String key, String defaultValue, List args, ValueStack stack) {
        return textProvider.getText(key, defaultValue, args, stack);
    }

    public String getText(String key, String defaultValue, String[] args, ValueStack stack) {
        return textProvider.getText(key, defaultValue, args, stack);
    }
    @Override
    public ResourceBundle getTexts() {
    	 return textProvider.getTexts();
    }
    
    public Locale getLocale() {
    	 ActionContext ctx = ActionContext.getContext();
 	    if (ctx != null) {
 	      return ctx.getLocale();
 	    }
        return Locale.getDefault();
    }
	
	@Override
	public boolean hasKey(String arg0) {
		return false;
	}
	
	@Override
	public ResourceBundle getTexts(String arg0) {
		 return textProvider.getTexts();
	}
}

What We can do.

> createInstance method signature change of TextProviderFactory from merged xwork-core code inside struts2-core-2.5.13.jar  which was present with xwork-core jar 
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-4868
>                 URL: https://issues.apache.org/jira/browse/WW-4868
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.3.32
>            Reporter: Ananga Mohan Bera
>            Assignee: Lukasz Lenart
>            Priority: Critical
>             Fix For: 2.5.14
>
>
> xwork-core-2.3.32 had these createInstance methods.
> {code:java}
> public TextProvider createInstance(Class clazz, LocaleProvider provider) {
>     TextProvider instance = getTextProvider(clazz, provider);
>     if (instance instanceof ResourceBundleTextProvider) {
>       ((ResourceBundleTextProvider)instance).setClazz(clazz);
>       ((ResourceBundleTextProvider)instance).setLocaleProvider(provider);
>     }
>     return instance;
>   }
>   public TextProvider createInstance(ResourceBundle bundle, LocaleProvider provider) {
>     TextProvider instance = getTextProvider(bundle, provider);
>     if (instance instanceof ResourceBundleTextProvider) {
>       ((ResourceBundleTextProvider)instance).setBundle(bundle);
>       ((ResourceBundleTextProvider)instance).setLocaleProvider(provider);
>     }
>     return instance;
>   }
> {code}
> struts2-core-2.5.13.jar has merged the xwork-core code and there only these methods are available:
> {code:java}
> public abstract TextProvider createInstance(Class paramClass);
> public abstract TextProvider createInstance(ResourceBundle paramResourceBundle);
> {code}
> As We have called the createInstance  method from many places of Our Application, So migration to struts-2.5.13 is creating a problem. We are having code like:
> {code:java}
> private final transient TextProvider textProvider = new TextProviderFactory().createInstance(getClass(), this);
> {code}
> method signature should not be changed which has huge effect rather there should be overloaded method with merged xwork-core code inside  struts2-core-2.5.13.jar.
> We are getting such error:
> {noformat}
> 2017-10-06|16:53:23,965|ERROR||[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'|com.tcs.bancs.filter.BancsServletFilter:210|:G:dl3xbKkVBfwQOly9zGyiU1g_MDVUFEoaUV5nTc3nKJP-btoWLMoK!183988368!1507288983829:0:0:0:0:0:0:0:1: |Validation exception |
> javax.servlet.ServletException: java.lang.InstantiationError: com.opensymphony.xwork2.TextProviderFactory
> 	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:387) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:483) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:372) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:243) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:587) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:481) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at org.springframework.security.web.firewall.RequestWrapper$FirewalledRequestAwareRequestDispatcher.include(RequestWrapper.java:136) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at com.tcs.bfsarch.security.action.AuthSuccessHandler.onAuthenticationSuccess(AuthSuccessHandler.java:211) ~[coreweb.jar:?]
> 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.successfulAuthentication(AbstractAuthenticationProcessingFilter.java:331) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.successfulAuthentication(AbstractAuthenticationProcessingFilter.java:298) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:235) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at com.tcs.mastercraft.userlib.AccessVerifierFilter.doFilter(AccessVerifierFilter.java:78) ~[coreweb.jar:?]
> 	at com.tcs.bancs.filter.BancsServletFilter.doFilter(BancsServletFilter.java:208) [coreweb.jar:?]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at com.tcs.bfsarch.filter.session.SessionSyncFilter.doFilter(SessionSyncFilter.java:38) [coreweb.jar:?]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) [com.oracle.css.weblogic.security.wls_7.1.0.0.jar:CSS 7.1 0.0]
> 	at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) [weblogic.server.merged.jar:12.1.3.0.0]
> Caused by: java.lang.InstantiationError: com.opensymphony.xwork2.TextProviderFactory
> 	at com.tcs.bancs.repackaged.struts.taglib.TagUtils.<init>(TagUtils.java:357) ~[mc.jar:?]
> 	at com.tcs.bancs.repackaged.struts.taglib.TagUtils.<clinit>(TagUtils.java:61) ~[mc.jar:?]
> 	at com.tcs.bfsarch.tags.eh.bfsMessagesTag.doEndTag(bfsMessagesTag.java:195) ~[coreweb.jar:?]
> 	at jsp_servlet._common.__loginapimessages._jsp__tag0(__loginapimessages.java:145) ~[__loginapimessages.class:?]
> 	at jsp_servlet._common.__loginapimessages._jspService(__loginapimessages.java:96) ~[__loginapimessages.class:?]
> 	at weblogic.servlet.jsp.JspBase.service(JspBase.java:35) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	... 43 more
> 2017-10-06|16:53:38,620|ERROR||[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'|com.tcs.bancs.filter.BancsServletFilter:210|:G:dl3xbKkVBfwQOly9zGyiU1g_MDVUFEoaUV5nTc3nKJP-btoWLMoK!183988368!1507288983829:0:0:0:0:0:0:0:1: |Validation exception |
> javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class com.tcs.bancs.repackaged.struts.taglib.TagUtils
> 	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:387) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:483) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:372) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at com.tcs.bancs.filter.BancsServletFilter.enableGZIP(BancsServletFilter.java:414) ~[coreweb.jar:?]
> 	at com.tcs.bancs.filter.BancsServletFilter.doFilter(BancsServletFilter.java:170) ~[coreweb.jar:?]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:588) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:273) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at org.springframework.security.web.firewall.RequestWrapper$FirewalledRequestAwareRequestDispatcher.forward(RequestWrapper.java:132) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at com.tcs.bfsarch.security.action.AuthSuccessHandler.onAuthenticationSuccess(AuthSuccessHandler.java:502) ~[coreweb.jar:?]
> 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.successfulAuthentication(AbstractAuthenticationProcessingFilter.java:331) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.successfulAuthentication(AbstractAuthenticationProcessingFilter.java:298) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:235) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE]
> 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at com.tcs.mastercraft.userlib.AccessVerifierFilter.doFilter(AccessVerifierFilter.java:78) ~[coreweb.jar:?]
> 	at com.tcs.bancs.filter.BancsServletFilter.doFilter(BancsServletFilter.java:208) [coreweb.jar:?]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at com.tcs.bfsarch.filter.session.SessionSyncFilter.doFilter(SessionSyncFilter.java:38) [coreweb.jar:?]
> 	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) [com.oracle.css.weblogic.security.wls_7.1.0.0.jar:CSS 7.1 0.0]
> 	at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) [weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) [weblogic.server.merged.jar:12.1.3.0.0]
> Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.tcs.bancs.repackaged.struts.taglib.TagUtils
> 	at com.tcs.mastercraft.taglib.MCJSLoadingTag.doStartTag(MCJSLoadingTag.java:61) ~[coreweb.jar:?]
> 	at jsp_servlet._common.__mainframe._jsp__tag99(__mainframe.java:5928) ~[__mainframe.class:?]
> 	at jsp_servlet._common.__mainframe._jspService(__mainframe.java:3556) ~[__mainframe.class:?]
> 	at weblogic.servlet.jsp.JspBase.service(JspBase.java:35) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346) ~[weblogic.server.merged.jar:12.1.3.0.0]
> 	... 47 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message