Bug 514886 - NotSerializableException with large group by reports
Summary: NotSerializableException with large group by reports
Status: NEW
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: BIRT (show other bugs)
Version: 4.5.0   Edit
Hardware: PC All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Birt-ReportEngine-inbox@eclipse.org CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-04-06 18:26 EDT by Adam Bryzak CLA
Modified: 2017-04-06 18:42 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adam Bryzak CLA 2017-04-06 18:26:15 EDT
From https://github.com/eclipse/birt/pull/385

When generating a report with a large amount of data (we hit the issue with over 19,000 rows) and a table with multiple groups. A NotSerializableException followed by an EOFException caused the report to be empty.

I traced it down to the GroupInfoUpdator class using a BasicCachedList instead of a CachedList, as BasicCachedList is unable to write out the GroupInfo objects the list contains.

We had these errors in the log which indicated it as a problem:

    Mar 28, 2017 5:06:28 AM org.eclipse.birt.data.engine.cache.BasicCachedList saveToDisk
    SEVERE: Exception happened when save data to disk in CachedList. Exception message: java.io.NotSerializableException: Not serializable.
    Mar 28, 2017 5:06:28 AM org.eclipse.birt.data.engine.cache.BasicCachedList loadFromDisk
    SEVERE: Exception happened when load data from disk in CachedList. Exception message: java.io.EOFException

To fix, update org.eclipse.birt.data.engine.executor.transform.group.GroupInfoUpdator constructor assignment of this.newGroups from:

    		this.newGroups = new BasicCachedList( tempDir,
    				DataEngineSession.getCurrentClassLoader( ) );

to:

    		this.newGroups = new CachedList( tempDir,
    				DataEngineSession.getCurrentClassLoader( ),
    				GroupInfo.getCreator( ) );
Comment 1 Yulin Wang CLA 2017-04-06 18:42:06 EDT
Can you provide detail stack trace?
If you have runnable report design, that would be better and our QA can test it.