From c4997ff54d6f649518bafc784bb0763856743158 Mon Sep 17 00:00:00 2001 From: gliu Date: Wed, 5 Sep 2012 11:21:44 +0800 Subject: [PATCH] Fix an exception thrown out "legal boolean value: null" to run rptdesing (T52882) For invalid boolean expression in highlight and visibility, only log warning message, do not add exception into context --- .../report/engine/executor/ReportItemExecutor.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/ReportItemExecutor.java b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/ReportItemExecutor.java index 6547d2060c7..c0bf00de58b 100644 --- a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/ReportItemExecutor.java +++ b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/ReportItemExecutor.java @@ -16,6 +16,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.logging.Level; import java.util.logging.Logger; import org.eclipse.birt.core.data.DataTypeUtil; @@ -25,7 +26,6 @@ import org.eclipse.birt.data.engine.api.IQueryDefinition; import org.eclipse.birt.report.engine.api.DataID; import org.eclipse.birt.report.engine.api.DataSetID; -import org.eclipse.birt.report.engine.api.EngineException; import org.eclipse.birt.report.engine.api.InstanceID; import org.eclipse.birt.report.engine.content.IContent; import org.eclipse.birt.report.engine.content.IGroupContent; @@ -327,7 +327,10 @@ protected Boolean evaluateBoolean( Expression expr ) } catch ( BirtException ex ) { - context.addException( ex ); + getLogger( ).log( + Level.WARNING, + "Invalid boolean expression:" + + ( expr == null ? "null" : expr.toString( ) ) ); } return null; } @@ -528,9 +531,6 @@ protected void processVisibility( ReportItemDesign design, IContent content ) Boolean result = evaluateBoolean( expr ); if ( result == null ) { - context.addException( new EngineException( - MessageConstants.EXPRESSION_EVALUATION_ERROR, rule - .getExpression( ) ) ); continue; } boolean isHidden = result.booleanValue( ); @@ -573,8 +573,6 @@ protected void processColumnVisibility( ColumnDesign design, Column column ) Boolean result = evaluateBoolean( expr ); if ( result == null ) { - context.addException( new EngineException( MessageConstants.EXPRESSION_EVALUATION_ERROR, //$NON-NLS-1$ - rule.getExpression( ) ) ); continue; } boolean isHidden = ( (Boolean) result ).booleanValue( );