function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
lodoss1118lodoss1118 

Maximum stack depth reached in controller?

 

public class ParamsController
{
    public String URL = 'https://na132222.salesforce.com/apex/params?na5.visualforce.devmode=1&resourceDate=asads0000jjaa-2010-09-24&mode=summary&resourceDate=as212343243a-2012-10-24&';
    
    public String foundParam{get{return GetParam(URL, 'resourceDate');} set;}
    
    public ParamsController(){
        List<String> params = GetParams(URL, 'resourceDate');
        System.debug('###params ###: ' + params);
    }
    
    public List<String> GetParams(string param){
        List<String> strList = new List<String>();
        String href = URL;
        if(href.indexOf('?') > -1){
            String qryStr = href.substring(href.indexOf('?')).replaceAll('\\?', '').toLowerCase();
            List<String> aQryStr = qryStr.split('&');
            for(Integer i = 0; i < aQryStr.size(); i++){
                String strCur = aQryStr[i].toLowerCase();
                String strMatch = strCur.substring(0, strCur.indexOf('=') + 1);
                if(((param + '=').toLowerCase() == strMatch)){
                    List<String> aParam = aQryStr[i].split('=');
                    strList.add(aParam[1]);
                }
            }
        }
        return strList; 
    }
    
    public List<String> GetParams(string url, string param){
        return GetParams(System.currentPageReference().getUrl(), param);
    }
    
    public String GetParam(string url, string param){
        String str = '';
        String href = URL;
        if(href.indexOf('?') > -1){
            String qryStr = href.substring(href.indexOf('?')).replaceAll('\\?', '').toLowerCase();
            List<String> aQryStr = qryStr.split('&');
            for(Integer i = 0; i < aQryStr.size(); i++){
                String strCur = aQryStr[i].toLowerCase();
                String strMatch = strCur.substring(0, strCur.indexOf('=') + 1);
                System.debug('###aQryStr ###: ' + strMatch);
                if(((param + '=').toLowerCase() == strMatch)){
                    List<String> aParam = aQryStr[i].split('=');
                    str = aParam[1];
                    break;
                }
            }
        }
        return str; 
    }
    
    public String GetParam(string param){
        return GetParam(System.currentPageReference().getUrl(), param);
    }    
}

 

 I keep getting this System.LimitException: Maximum stack depth reached: 193

 

Best Answer chosen by Admin (Salesforce Developers) 
lodoss1118lodoss1118

fixed :@

 

 

public class ParamsController
{
    public String URL = 'https://na5.salesforce.com/apex/params?na5.visualforce.devmode=1&resourceDate=asads0000jjaa-2010-09-24&mode=summary&resourceDate=as212343243a-2012-10-24&';
    
    public String foundParam{get{return GetParam(URL, 'resourceDate');} set;}
    
    public ParamsController(){
        List<String> params = GetParams(URL, 'resourceDate');
        System.debug('###params ###: ' + params);
    }
    
    public List<String> GetParams(string url, string param){
        List<String> strList = new List<String>();
        String href = url;
        if(href.indexOf('?') > -1){
            String qryStr = href.substring(href.indexOf('?')).replaceAll('\\?', '').toLowerCase();
            List<String> aQryStr = qryStr.split('&');
            for(Integer i = 0; i < aQryStr.size(); i++){
                String strCur = aQryStr[i].toLowerCase();
                String strMatch = strCur.substring(0, strCur.indexOf('=') + 1);
                if(((param + '=').toLowerCase() == strMatch)){
                    List<String> aParam = aQryStr[i].split('=');
                    strList.add(aParam[1]);
                }
            }
        }
        return strList; 
    }
    
    public List<String> GetParams(string param){
        return GetParams(System.currentPageReference().getUrl(), param);
    }
    
    public String GetParam(string url, string param){
        String str = '';
        String href = url;
        if(href.indexOf('?') > -1){
            String qryStr = href.substring(href.indexOf('?')).replaceAll('\\?', '').toLowerCase();
            List<String> aQryStr = qryStr.split('&');
            for(Integer i = 0; i < aQryStr.size(); i++){
                String strCur = aQryStr[i].toLowerCase();
                String strMatch = strCur.substring(0, strCur.indexOf('=') + 1);
                if(((param + '=').toLowerCase() == strMatch)){
                    List<String> aParam = aQryStr[i].split('=');
                    str = aParam[1];
                    break;
                }
            }
        }
        return str; 
    }
    
    public String GetParam(string param){
        return GetParam(System.currentPageReference().getUrl(), param);
    }    
}

 

 

All Answers

lodoss1118lodoss1118

fixed :@

 

 

public class ParamsController
{
    public String URL = 'https://na5.salesforce.com/apex/params?na5.visualforce.devmode=1&resourceDate=asads0000jjaa-2010-09-24&mode=summary&resourceDate=as212343243a-2012-10-24&';
    
    public String foundParam{get{return GetParam(URL, 'resourceDate');} set;}
    
    public ParamsController(){
        List<String> params = GetParams(URL, 'resourceDate');
        System.debug('###params ###: ' + params);
    }
    
    public List<String> GetParams(string url, string param){
        List<String> strList = new List<String>();
        String href = url;
        if(href.indexOf('?') > -1){
            String qryStr = href.substring(href.indexOf('?')).replaceAll('\\?', '').toLowerCase();
            List<String> aQryStr = qryStr.split('&');
            for(Integer i = 0; i < aQryStr.size(); i++){
                String strCur = aQryStr[i].toLowerCase();
                String strMatch = strCur.substring(0, strCur.indexOf('=') + 1);
                if(((param + '=').toLowerCase() == strMatch)){
                    List<String> aParam = aQryStr[i].split('=');
                    strList.add(aParam[1]);
                }
            }
        }
        return strList; 
    }
    
    public List<String> GetParams(string param){
        return GetParams(System.currentPageReference().getUrl(), param);
    }
    
    public String GetParam(string url, string param){
        String str = '';
        String href = url;
        if(href.indexOf('?') > -1){
            String qryStr = href.substring(href.indexOf('?')).replaceAll('\\?', '').toLowerCase();
            List<String> aQryStr = qryStr.split('&');
            for(Integer i = 0; i < aQryStr.size(); i++){
                String strCur = aQryStr[i].toLowerCase();
                String strMatch = strCur.substring(0, strCur.indexOf('=') + 1);
                if(((param + '=').toLowerCase() == strMatch)){
                    List<String> aParam = aQryStr[i].split('=');
                    str = aParam[1];
                    break;
                }
            }
        }
        return str; 
    }
    
    public String GetParam(string param){
        return GetParam(System.currentPageReference().getUrl(), param);
    }    
}

 

 

This was selected as the best answer
Commercial30Commercial30

What and where was the problem? What was the solution? I'm having the same issue.. thanks!