View Issue Details

This bug affects 1 person(s).
 12
IDProjectCategoryView StatusLast Update
14761Bug reportsSurvey takingpublic2020-03-09 15:36
ReporterDenisChenu Assigned Tomarkusfluer 
PrioritynoneSeveritycrash 
Status closedResolutionfixed 
Product Version4.0.0dev 
Fixed in Version4.0.0-beta2 
Summary14761: Class 'RenderListRadio' not found
Description

Error when try to test a survey

Steps To Reproduce

Import included survey, launch …

Additional Information

have a totally broken develop make harder to add new feature or fix issue‘s

TagsNo tags attached.
Attached Files
Error.html (21,023 bytes)   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Error</title>

<style type="text/css">
/*<![CDATA[*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0;}
body{line-height:1;}
ol,ul{list-style:none;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:none;}
:focus{outline:0;}
ins{text-decoration:none;}
del{text-decoration:line-through;}
table{border-collapse:collapse;border-spacing:0;}

body {
	font: normal 9pt "Verdana";
	color: #000;
	background: #fff;
}

h1 {
	font: normal 18pt "Verdana";
	color: #f00;
	margin-bottom: .5em;
}

h2 {
	font: normal 14pt "Verdana";
	color: #800000;
	margin-bottom: .5em;
}

h3 {
	font: bold 11pt "Verdana";
}

pre {
	font: normal 11pt Menlo, Consolas, "Lucida Console", Monospace;
}

pre span.error {
	display: block;
	background: #fce3e3;
}

pre span.ln {
	color: #999;
	padding-right: 0.5em;
	border-right: 1px solid #ccc;
}

pre span.error-ln {
	font-weight: bold;
}

.container {
	margin: 1em 4em;
}

.version {
	color: gray;
	font-size: 8pt;
	border-top: 1px solid #aaa;
	padding-top: 1em;
	margin-bottom: 1em;
}

.message {
	color: #000;
	padding: 1em;
	font-size: 11pt;
	background: #f3f3f3;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	margin-bottom: 1em;
	line-height: 160%;
}

.source {
	margin-bottom: 1em;
}

.code pre {
	background-color: #ffe;
	margin: 0.5em 0;
	padding: 0.5em;
	line-height: 125%;
	border: 1px solid #eee;
}

.source .file {
	margin-bottom: 1em;
	font-weight: bold;
}

.traces {
	margin: 2em 0;
}

.trace {
	margin: 0.5em 0;
	padding: 0.5em;
}

.trace.app {
	border: 1px dashed #c00;
}

.trace .number {
	text-align: right;
	width: 2em;
	padding: 0.5em;
}

.trace .content {
	padding: 0.5em;
}

.trace .plus,
.trace .minus {
	display:inline;
	vertical-align:middle;
	text-align:center;
	border:1px solid #000;
	color:#000;
	font-size:10px;
	line-height:10px;
	margin:0;
	padding:0 1px;
	width:10px;
	height:10px;
}

.trace.collapsed .minus,
.trace.expanded .plus,
.trace.collapsed pre {
	display: none;
}

.trace-file {
	cursor: pointer;
	padding: 0.2em;
}

.trace-file:hover {
	background: #f0ffff;
}
/*]]>*/
</style>
</head>

<body>
<div class="container">
	<h1>Error</h1>

	<p class="message">
		Class 'RenderListRadio' not found	</p>

	<div class="source">
		<p class="file">/mnt/data/shnoulle/nginx/www/develop/application/models/Question.php(989)</p>
		<div class="code"><pre><span class="ln">0977</span>     }
<span class="ln">0978</span>     
<span class="ln">0979</span>     public function getRenderererObject($aFieldArray, $type = null)
<span class="ln">0980</span>     {
<span class="ln">0981</span>         $type = $type === null ? $this-&gt;type : $type;
<span class="ln">0982</span>         LoadQuestionTypes::load($type);
<span class="ln">0983</span>         switch ($type) {
<span class="ln">0984</span>             case Question::QT_X_BOILERPLATE_QUESTION: $oRenderer = new RenderBoilerplate($aFieldArray); break;
<span class="ln">0985</span>             case Question::QT_5_POINT_CHOICE: $oRenderer = new RenderFivePointChoice($aFieldArray); break;
<span class="ln">0986</span>             case Question::QT_ASTERISK_EQUATION: $oRenderer = new RenderEquation($aFieldArray); break;
<span class="ln">0987</span>             case Question::QT_D_DATE: $oRenderer = new RenderDate($aFieldArray); break;
<span class="ln">0988</span>             case Question::QT_1_ARRAY_MULTISCALE: $oRenderer = new RenderArrayMultiscale($aFieldArray); break;
<span class="error"><span class="ln error-ln">0989</span>             case Question::QT_L_LIST_DROPDOWN: $oRenderer = new RenderListRadio($aFieldArray); break;
</span><span class="ln">0990</span>             case Question::QT_EXCLAMATION_LIST_DROPDOWN: $oRenderer = new RenderListDropdown($aFieldArray); break;
<span class="ln">0991</span>             case Question::QT_O_LIST_WITH_COMMENT: $oRenderer = new RenderListComment($aFieldArray); break;
<span class="ln">0992</span>             case Question::QT_R_RANKING_STYLE: $oRenderer = new RenderRanking($aFieldArray); break;
<span class="ln">0993</span>             case Question::QT_M_MULTIPLE_CHOICE: $oRenderer = new RenderMultipleChoice($aFieldArray); break;
<span class="ln">0994</span>             case Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS: $oRenderer = new RenderMultipleChoiceWithComments($aFieldArray); break;
<span class="ln">0995</span>             case Question::QT_I_LANGUAGE: $oRenderer = new RenderLanguageSelector($aFieldArray); break;
<span class="ln">0996</span>             case Question::QT_Q_MULTIPLE_SHORT_TEXT: $oRenderer = new RenderMultipleShortText($aFieldArray); break;
<span class="ln">0997</span>             case Question::QT_T_LONG_FREE_TEXT: $oRenderer = new RenderLongFreeText($aFieldArray); break;
<span class="ln">0998</span>             case Question::QT_U_HUGE_FREE_TEXT: $oRenderer = new RenderHugeFreeText($aFieldArray); break;
<span class="ln">0999</span>             case Question::QT_K_MULTIPLE_NUMERICAL_QUESTION: $oRenderer = new RenderMultipleNumerical($aFieldArray); break;
<span class="ln">1000</span>             case Question::QT_A_ARRAY_5_CHOICE_QUESTIONS: $oRenderer = new RenderArray5ChoiceQuestion($aFieldArray); break;
<span class="ln">1001</span>             case Question::QT_B_ARRAY_10_CHOICE_QUESTIONS: $oRenderer = new RenderArray10ChoiceQuestion($aFieldArray); break;
</pre></div>	</div>

	<div class="traces">
		<h2>Stack Trace</h2>
				<table style="width:100%;">
						<tbody><tr class="trace app expanded">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/application/helpers/qanda_helper.php(135): <strong>Question</strong>-&gt;<strong>getRenderererObject</strong>(array("3", "534147X2X3", "SingleChoice", "SingleChoice", ...))				</div>

				<div class="code"><pre><span class="ln">130</span>     );
<span class="ln">131</span> 
<span class="ln">132</span>     $oQuestion = Question::model()-&gt;findByPk($ia[0]);
<span class="ln">133</span>     $oQuestionTemplate = QuestionTemplate::getNewInstance($oQuestion);
<span class="ln">134</span>     $oQuestionTemplate-&gt;registerAssets(); // Register the custom assets of the question template, if needed
<span class="error"><span class="ln error-ln">135</span>     $oRenderer = $oQuestion-&gt;getRenderererObject($ia);
</span><span class="ln">136</span>     $values = $oRenderer-&gt;render();
<span class="ln">137</span> 
<span class="ln">138</span> 
<span class="ln">139</span>     if (isset($values)) {
<span class="ln">140</span>         //Break apart $values array returned from switch
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/application/helpers/SurveyRuntimeHelper.php(279): <strong>retrieveAnswers</strong>(array("3", "534147X2X3", "SingleChoice", "SingleChoice", ...))				</div>

				<div class="code"><pre><span class="ln">274</span>                         }
<span class="ln">275</span> 
<span class="ln">276</span>                         //Get the answers/inputnames
<span class="ln">277</span>                         // TMSW - can content of retrieveAnswers() be provided by LEM?  Review scope of what it provides.
<span class="ln">278</span>                         // TODO - retrieveAnswers is slow - queries database separately for each question. May be fixed in _CI or _YII ports, so ignore for now
<span class="error"><span class="ln error-ln">279</span>                         list($plus_qanda, $plus_inputnames) = retrieveAnswers($ia);
</span><span class="ln">280</span> 
<span class="ln">281</span>                         if ($plus_qanda) {
<span class="ln">282</span>                             $plus_qanda[] = $ia[4];
<span class="ln">283</span>                             $plus_qanda[] = $ia[6]; // adds madatory identifyer for adding mandatory class to question wrapping div
<span class="ln">284</span> 
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#2			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/application/controllers/survey/index.php(604): <strong>SurveyRuntimeHelper</strong>-&gt;<strong>run</strong>("534147",
 array("surveyid" =&gt; "534147", "thissurvey" =&gt; array("htmlemail" 
=&gt; "Y", "format" =&gt; "G", "tokenencryptionoptions" =&gt; "", 
"template" =&gt; "fruity", ...), "thisstep" =&gt; "0", "tokensexist" 
=&gt; 0, ...))				</div>

				<div class="code"><pre><span class="ln">599</span>         unset($redata);
<span class="ln">600</span>         $redata = compact(array_keys(get_defined_vars()));
<span class="ln">601</span>         Yii::import('application.helpers.SurveyRuntimeHelper');
<span class="ln">602</span>         $tmp = new SurveyRuntimeHelper();
<span class="ln">603</span>         // try {
<span class="error"><span class="ln error-ln">604</span>             $tmp-&gt;run($surveyid, $redata);
</span><span class="ln">605</span>         // } catch (WrongTemplateVersionException $ex) {
<span class="ln">606</span>         //     echo $ex-&gt;getMessage();
<span class="ln">607</span>         // }
<span class="ln">608</span>     }
<span class="ln">609</span> 
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/application/controllers/survey/index.php(24): <strong>index</strong>-&gt;<strong>action</strong>()				</div>

				<div class="code"><pre><span class="ln">19</span>     public $oTemplate;
<span class="ln">20</span> 
<span class="ln">21</span>     public function run()
<span class="ln">22</span>     {
<span class="ln">23</span>         useFirebug();
<span class="error"><span class="ln error-ln">24</span>         $this-&gt;action();
</span><span class="ln">25</span>     }
<span class="ln">26</span> 
<span class="ln">27</span>     public function action()
<span class="ln">28</span>     {
<span class="ln">29</span>         global $surveyid;
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/framework/web/actions/CAction.php(76): <strong>index</strong>-&gt;<strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">71</span>     {
<span class="ln">72</span>         $method=new ReflectionMethod($this, 'run');
<span class="ln">73</span>         if($method-&gt;getNumberOfParameters()&gt;0)
<span class="ln">74</span>             return $this-&gt;runWithParamsInternal($this, $method, $params);
<span class="ln">75</span> 
<span class="error"><span class="ln error-ln">76</span>         $this-&gt;run();
</span><span class="ln">77</span>         return true;
<span class="ln">78</span>     }
<span class="ln">79</span> 
<span class="ln">80</span>     /**
<span class="ln">81</span>      * Executes a method of an object with the supplied named parameters.
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/framework/web/CController.php(308): <strong>CAction</strong>-&gt;<strong>runWithParams</strong>(array("r" =&gt; "survey/index", "sid" =&gt; "534147"))				</div>

				<div class="code"><pre><span class="ln">303</span>     {
<span class="ln">304</span>         $priorAction=$this-&gt;_action;
<span class="ln">305</span>         $this-&gt;_action=$action;
<span class="ln">306</span>         if($this-&gt;beforeAction($action))
<span class="ln">307</span>         {
<span class="error"><span class="ln error-ln">308</span>             if($action-&gt;runWithParams($this-&gt;getActionParams())===false)
</span><span class="ln">309</span>                 $this-&gt;invalidActionParams($action);
<span class="ln">310</span>             else
<span class="ln">311</span>                 $this-&gt;afterAction($action);
<span class="ln">312</span>         }
<span class="ln">313</span>         $this-&gt;_action=$priorAction;
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/framework/web/CController.php(286): <strong>CController</strong>-&gt;<strong>runAction</strong>(index)				</div>

				<div class="code"><pre><span class="ln">281</span>      * @see runAction
<span class="ln">282</span>      */
<span class="ln">283</span>     public function runActionWithFilters($action,$filters)
<span class="ln">284</span>     {
<span class="ln">285</span>         if(empty($filters))
<span class="error"><span class="ln error-ln">286</span>             $this-&gt;runAction($action);
</span><span class="ln">287</span>         else
<span class="ln">288</span>         {
<span class="ln">289</span>             $priorAction=$this-&gt;_action;
<span class="ln">290</span>             $this-&gt;_action=$action;
<span class="ln">291</span>             CFilterChain::create($this,$action,$filters)-&gt;run();
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/framework/web/CController.php(265): <strong>CController</strong>-&gt;<strong>runActionWithFilters</strong>(index, array())				</div>

				<div class="code"><pre><span class="ln">260</span>         {
<span class="ln">261</span>             if(($parent=$this-&gt;getModule())===null)
<span class="ln">262</span>                 $parent=Yii::app();
<span class="ln">263</span>             if($parent-&gt;beforeControllerAction($this,$action))
<span class="ln">264</span>             {
<span class="error"><span class="ln error-ln">265</span>                 $this-&gt;runActionWithFilters($action,$this-&gt;filters());
</span><span class="ln">266</span>                 $parent-&gt;afterControllerAction($this,$action);
<span class="ln">267</span>             }
<span class="ln">268</span>         }
<span class="ln">269</span>         else
<span class="ln">270</span>             $this-&gt;missingAction($actionID);
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/framework/web/CWebApplication.php(282): <strong>CController</strong>-&gt;<strong>run</strong>("index")				</div>

				<div class="code"><pre><span class="ln">277</span>         {
<span class="ln">278</span>             list($controller,$actionID)=$ca;
<span class="ln">279</span>             $oldController=$this-&gt;_controller;
<span class="ln">280</span>             $this-&gt;_controller=$controller;
<span class="ln">281</span>             $controller-&gt;init();
<span class="error"><span class="ln error-ln">282</span>             $controller-&gt;run($actionID);
</span><span class="ln">283</span>             $this-&gt;_controller=$oldController;
<span class="ln">284</span>         }
<span class="ln">285</span>         else
<span class="ln">286</span>             throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".',
<span class="ln">287</span>                 array('{route}'=&gt;$route===''?$this-&gt;defaultController:$route)));
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-&gt;<strong>runController</strong>("survey/index")				</div>

				<div class="code"><pre><span class="ln">136</span>             foreach(array_splice($this-&gt;catchAllRequest,1) as $name=&gt;$value)
<span class="ln">137</span>                 $_GET[$name]=$value;
<span class="ln">138</span>         }
<span class="ln">139</span>         else
<span class="ln">140</span>             $route=$this-&gt;getUrlManager()-&gt;parseUrl($this-&gt;getRequest());
<span class="error"><span class="ln error-ln">141</span>         $this-&gt;runController($route);
</span><span class="ln">142</span>     }
<span class="ln">143</span> 
<span class="ln">144</span>     /**
<span class="ln">145</span>      * Registers the core application components.
<span class="ln">146</span>      * This method overrides the parent implementation by registering additional core components.
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#10			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/framework/base/CApplication.php(185): <strong>CWebApplication</strong>-&gt;<strong>processRequest</strong>()				</div>

				<div class="code"><pre><span class="ln">180</span>     public function run()
<span class="ln">181</span>     {
<span class="ln">182</span>         if($this-&gt;hasEventHandler('onBeginRequest'))
<span class="ln">183</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="ln">184</span>         register_shutdown_function(array($this,'end'),0,false);
<span class="error"><span class="ln error-ln">185</span>         $this-&gt;processRequest();
</span><span class="ln">186</span>         if($this-&gt;hasEventHandler('onEndRequest'))
<span class="ln">187</span>             $this-&gt;onEndRequest(new CEvent($this));
<span class="ln">188</span>     }
<span class="ln">189</span> 
<span class="ln">190</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#11			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/develop/index.php(194): <strong>CApplication</strong>-&gt;<strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">189</span> require_once APPPATH . 'core/LSYii_Application' . EXT;
<span class="ln">190</span> 
<span class="ln">191</span> $config = require_once(APPPATH . 'config/internal' . EXT);
<span class="ln">192</span> 
<span class="ln">193</span> Yii::$enableIncludePath = false;
<span class="error"><span class="ln error-ln">194</span> Yii::createApplication('LSYii_Application', $config)-&gt;run();
</span><span class="ln">195</span> 
<span class="ln">196</span> /* End of file index.php */
<span class="ln">197</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</tbody></table>
	</div>

	<div class="version">
		2019-04-09 15:39:35 nginx/1.14.2 <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.21	</div>
</div>

<script type="text/javascript">
/*<![CDATA[*/
var traceReg = new RegExp("(^|\\s)trace-file(\\s|$)");
var collapsedReg = new RegExp("(^|\\s)collapsed(\\s|$)");

var e = document.getElementsByTagName("div");
for(var j=0,len=e.length;j<len;j++){
	if(traceReg.test(e[j].className)){
		e[j].onclick = function(){
			var trace = this.parentNode.parentNode;
			if(collapsedReg.test(trace.className))
				trace.className = trace.className.replace("collapsed", "expanded");
			else
				trace.className = trace.className.replace("expanded", "collapsed");
		}
	}
}
/*]]>*/
</script>



</body></html>
Error.html (21,023 bytes)   
Bug heat12
Complete LimeSurvey version number (& build)4.0.0 github c1cd05c7f9
I will donate to the project if issue is resolvedNo
Browsernot relevant
Database type & versionnot relevant ?
Server OS (if known)fedora/linux
Webserver software & version (if known)nginx
PHP Versionphp7.2

Relationships

has duplicate 14783 closedmarkusfluer survey crashes in LimeSurvey 4.0.0 alpha 

Users monitoring this issue

There are no users monitoring this issue.

Activities

markusfluer

markusfluer

2019-07-02 16:13

administrator   ~52675

I couldn't replicate this behaviour.
Is this still an issue?

DenisChenu

DenisChenu

2019-07-02 17:16

developer   ~52683

OK :)

Issue History

Date Modified Username Field Change
2019-04-09 17:43 DenisChenu New Issue
2019-04-09 17:43 DenisChenu File Added: limesurvey_survey_curl-more.lss
2019-04-09 17:43 DenisChenu File Added: Error.html
2019-04-12 10:37 dominikvitt Assigned To => markusfluer
2019-04-12 10:37 dominikvitt Status new => assigned
2019-04-17 16:23 DenisChenu Relationship added has duplicate 14783
2019-07-02 16:13 markusfluer Status assigned => feedback
2019-07-02 16:13 markusfluer Note Added: 52675
2019-07-02 17:16 DenisChenu Status feedback => resolved
2019-07-02 17:16 DenisChenu Resolution open => fixed
2019-07-02 17:16 DenisChenu Fixed in Version => 4.0.0-beta2
2019-07-02 17:16 DenisChenu Note Added: 52683
2020-03-09 15:36 c_schmitz Status resolved => closed