Discussion:
Issue 57 in json-template: Unbalanced section push and pop in the Java implementation
j***@public.gmane.org
2010-07-23 19:40:49 UTC
Permalink
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 57 by louis...-bJEeYj9oJeDQT0dZR+***@public.gmane.org: Unbalanced section push and pop in the
Java implementation
http://code.google.com/p/json-template/issues/detail?id=57

When the data is missing for the template section, the
SectionStatement.java caused the exception in public Object
pushSection(String sectionName) of the file ScopedContext.java. It starts
happening for the second section of missing data.
Please see my fix bellow.

Regards,
Louis
///////////////////////////////////////////////////////////

public void execute(ScopedContext context, ITemplateRenderCallback
callback) {
// push a context first
Object cursorPosition = context
.pushSection(this.block.getSectionName());
if (!context.isEmptyContext(cursorPosition)) {
TemplateExecutor.execute(this.block.getStatements(), context,
callback);
//context.pop(); // Louis fix, remove this line
} else {
TemplateExecutor.execute(this.block.getStatements("or"), context,
callback);
}
context.pop(); // Louis fix, add this line
}

////////////////////////////////////////////////////////
--
You received this message because you are subscribed to the Google Groups "JSON Template" group.
To post to this group, send email to json-template-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to json-template+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit this group at http://groups.google.com/group/json-template?hl=en.
j***@public.gmane.org
2012-03-06 07:32:30 UTC
Permalink
Comment #1 on issue 57 by isungu...-z7bXwKdvouvQT0dZR+***@public.gmane.org: Unbalanced section push and
pop in the Java implementation
http://code.google.com/p/json-template/issues/detail?id=57

Thanks, Louis, for pointing to issue source. But general problem is that
while processing 'or' statement stack top contains 'null' value. This value
remained after unsuccessful lookup for beginning of 'section' statement and
must be removed before executing 'or' section. So fix should looks like this
///////////////////////////////////////////////////////////

public void execute(ScopedContext context, ITemplateRenderCallback
callback) {
// push a context first
Object cursorPosition = context
.pushSection(this.block.getSectionName());
if (!context.isEmptyContext(cursorPosition)) {
TemplateExecutor.execute(this.block.getStatements(), context,
callback);
context.pop(); // leave as is
} else {
context.pop(); // add this line
TemplateExecutor.execute(this.block.getStatements("or"), context,
callback);
}
}

////////////////////////////////////////////////////////
--
You received this message because you are subscribed to the Google Groups "JSON Template" group.
To post to this group, send email to json-template-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to json-template+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit this group at http://groups.google.com/group/json-template?hl=en.
j***@public.gmane.org
2012-03-12 09:46:33 UTC
Permalink
Updates:
Status: Fixed

Comment #3 on issue 57 by isungu...-z7bXwKdvouvQT0dZR+***@public.gmane.org: Unbalanced section push and
pop in the Java implementation
http://code.google.com/p/json-template/issues/detail?id=57

(No comment was entered for this change.)
--
You received this message because you are subscribed to the Google Groups "JSON Template" group.
To post to this group, send email to json-template-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
To unsubscribe from this group, send email to json-template+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/***@public.gmane.org
For more options, visit this group at http://groups.google.com/group/json-template?hl=en.
Loading...