Fix bug in dump methods that generated an error on individual page when getting dump value for individual.mostSpecificTypes

This commit is contained in:
ryounes 2011-08-02 15:47:50 +00:00
parent 4d212a4aec
commit 5dd5fe6c45
2 changed files with 104 additions and 32 deletions

View file

@ -23,6 +23,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import freemarker.core.Environment;
import freemarker.ext.beans.CollectionModel;
import freemarker.ext.beans.StringModel;
import freemarker.template.Template;
import freemarker.template.TemplateBooleanModel;
@ -169,7 +170,11 @@ public abstract class BaseDumpDirective implements TemplateDirectiveModel {
if (model != null) {
if ( model instanceof TemplateSequenceModel ) {
map.putAll( getTemplateModelDump( ( TemplateSequenceModel)model ) );
if (model instanceof CollectionModel && ! ((CollectionModel)model).getSupportsIndexedAccess()) {
map.putAll( getTemplateModelDump( ( TemplateCollectionModel)model ) );
} else {
map.putAll( getTemplateModelDump( ( TemplateSequenceModel)model ) );
}
} else if ( model instanceof TemplateNumberModel ) {
map.putAll( getTemplateModelDump( (TemplateNumberModel)model ) );