Bug 208927 AggregateTable.<init> using runtime 2.2.1 - jdk 1.4.2
Hi, I am trying to put together the BIRT Runtime Release Build 2.2.1 with Java 1.4.2 JDK/JRE. When using a dataset obtained from a stored procedure I'm receiving the following error: Nov 6, 2007 4:11:25 PM org.eclipse.birt.data.engine.impl.PreparedQuery PreparedQuery FINE: PreparedQuery starts up. Nov 6, 2007 4:11:25 PM org.eclipse.birt.report.engine.api.impl.RunAndRenderTask doRun SEVERE: An error happened while running the report. Cause: java.lang.NullPointerException at java.util.logging.Logger.entering(Logger.java:859) at org.eclipse.birt.data.engine.impl.aggregation.AggregateTable.<init>(AggregateTable.java:46) at org.eclipse.birt.data.engine.impl.aggregation.AggregateTable.<init>(AggregateTable.java:60) at org.eclipse.birt.data.engine.impl.PreparedQuery.<init>(PreparedQuery.java:115) at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.<init>(PreparedDataSourceQuery.java:75) at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.<init>(PreparedOdaDSQuery.java:61) at org.eclipse.birt.data.engine.impl.PreparedQueryUtil.newInstance(PreparedQueryUtil.java:125) at org.eclipse.birt.data.engine.impl.DataEngineImpl.prepare(DataEngineImpl.java:396) at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.prepare(DataRequestSessionImpl.java:305) at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.prepare(DataRequestSessionImpl.java:464) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doPrepareQuery(DteDataEngine.java:100) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:138) at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:94) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:59) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplciateReportExecutor.execute(SuppressDuplciateReportExecutor.java:51) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:59) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:138) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:68) at reports.actions.DynamicReport.doGet(DynamicReport.java:175) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65) at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:649) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192) at java.lang.Thread.run(Thread.java:534) The error appears in package org.eclipse.birt.data.engine.impl.aggregation, class AggregateTable, default constructor, when trying to make an entry log, with a null third parameter. logger.entering( AggregateTable.class.getName( ), "AggregateTable", null ); The last param of the entering method (,, Object[] params) in jdk 1.4 is not tested for null values, and so gives the above mentioned result. In jdk 1.5 the problem doesn't appear since java.util.Logger.entering verifies the Object[] params for null values. Simply removing the last parameter solves the problem. Keep up the good work, Adrian Cioclei
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/aggregation/AggregateTable.java
/*******************************************************************************
 * Copyright (c) 2004 Actuate Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *  Actuate Corporation  - initial API and implementation
 *******************************************************************************/
package org.eclipse.birt.data.engine.impl.aggregation;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import org.eclipse.birt.data.engine.core.DataException;
import org.eclipse.birt.data.engine.executor.BaseQuery;
import org.eclipse.birt.data.engine.odi.IResultIterator;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
/**
 * A registry of aggregate expressions. Stores all aggregate expressions that appears
 * in a report query or subquery
 */
public final class AggregateTable
{