Bug 47068 - EDITING: Report-Builder crashes when moving a graphic over another field
Summary: EDITING: Report-Builder crashes when moving a graphic over another field
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
Version:
(earliest affected)
3.5.1 RC1
Hardware: x86 (IA32) Linux (All)
: high critical
Assignee: Stephan Bergmann
URL:
Whiteboard: target:3.6.0 target:3.5.3
Keywords:
Depends on:
Blocks: mab3.5
  Show dependency treegraph
 
Reported: 2012-03-07 10:41 UTC by Robert Großkopf
Modified: 2012-06-29 04:43 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
Try to move the graphic in the report over another field. (17.65 KB, application/vnd.sun.xml.base)
2012-03-07 10:41 UTC, Robert Großkopf
Details
java error log (107.12 KB, text/x-log)
2012-03-07 12:21 UTC, Alex Thurgood
Details
bt of all the threads (30.95 KB, text/plain)
2012-03-17 08:27 UTC, Julien Nabet
Details
valgrind trace (11.69 KB, text/x-log)
2012-04-03 02:12 UTC, Caolán McNamara
Details
how about this, refactor ourselves out-of-jail ? (5.68 KB, patch)
2012-04-03 09:12 UTC, Caolán McNamara
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Großkopf 2012-03-07 10:41:31 UTC
Created attachment 58135 [details]
Try to move the graphic in the report over another field.

One field in a report for a data-column and one graphic. In older versions you could move the graphoc over a filed an set it in the background of the filed. So you can get lines and colours around a field.
In 3.5.1 RC1 LibreOffices crashes immediately.
Comment 1 Robert Großkopf 2012-03-07 11:10:04 UTC
Same problem with 3.5.1 RC2. Only try to change the width of the box. LO crashes immediately.

Robert
Comment 2 Alex Thurgood 2012-03-07 12:18:09 UTC
Hi Robert,

When I double-click on the report, i.e. just to open it, I see the following output in the console with my build from master on Linux (32bit). This is interesting because although you can't edit the report, it is already throwing Java null pointer exceptions :

Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.AbstractBoot start
INFO: LibSerializer 1.1.6.10682 started.
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.AbstractBoot start
INFO: LibBase 1.1.6.10682 started.
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.AbstractBoot start
INFO: LibLoader 1.1.6.10682 started.
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.AbstractBoot start
INFO: LibRepository 1.1.6.10682 started.
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.AbstractBoot start
INFO: LibFonts 1.1.6.10682 started.
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.AbstractBoot start
INFO: LibLayout null started.
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.AbstractBoot start
INFO: LibFormula 1.1.7.10682 started.
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.AbstractBoot start
INFO: LibXML 1.1.7.10682 started.
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.PackageManager loadModule
WARNING: Exception while loading module: org.pentaho.reporting.libraries.base.boot.DefaultModuleInfo={ModuleClass=org.jfree.report.modules.gui.swing.common.SwingCommonModule}
java.lang.NullPointerException
	at org.pentaho.reporting.libraries.base.boot.PackageManager.containsModule(PackageManager.java:369)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.loadModule(PackageManager.java:436)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.addModule(PackageManager.java:330)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.load(PackageManager.java:199)
	at org.jfree.report.JFreeReportBoot.performBoot(Unknown Source)
	at org.pentaho.reporting.libraries.base.boot.AbstractBoot.start(AbstractBoot.java:197)
	at com.sun.star.report.pentaho.PentahoReportEngine.<init>(PentahoReportEngine.java:45)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.createReportJob(SOReportJobFactory.java:328)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.execute(SOReportJobFactory.java:222)
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.PackageManager loadModule
WARNING: Exception while loading module: org.pentaho.reporting.libraries.base.boot.DefaultModuleInfo={ModuleClass=org.jfree.report.modules.gui.swing.html.SwingHtmlModule}
java.lang.NullPointerException
	at org.pentaho.reporting.libraries.base.boot.PackageManager.containsModule(PackageManager.java:369)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.loadModule(PackageManager.java:436)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.addModule(PackageManager.java:330)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.load(PackageManager.java:199)
	at org.jfree.report.JFreeReportBoot.performBoot(Unknown Source)
	at org.pentaho.reporting.libraries.base.boot.AbstractBoot.start(AbstractBoot.java:197)
	at com.sun.star.report.pentaho.PentahoReportEngine.<init>(PentahoReportEngine.java:45)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.createReportJob(SOReportJobFactory.java:328)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.execute(SOReportJobFactory.java:222)
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.PackageManager loadModule
WARNING: Exception while loading module: org.pentaho.reporting.libraries.base.boot.DefaultModuleInfo={ModuleClass=org.jfree.report.modules.gui.swing.pdf.SwingPdfModule}
java.lang.NullPointerException
	at org.pentaho.reporting.libraries.base.boot.PackageManager.containsModule(PackageManager.java:369)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.loadModule(PackageManager.java:436)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.addModule(PackageManager.java:330)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.load(PackageManager.java:199)
	at org.jfree.report.JFreeReportBoot.performBoot(Unknown Source)
	at org.pentaho.reporting.libraries.base.boot.AbstractBoot.start(AbstractBoot.java:197)
	at com.sun.star.report.pentaho.PentahoReportEngine.<init>(PentahoReportEngine.java:45)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.createReportJob(SOReportJobFactory.java:328)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.execute(SOReportJobFactory.java:222)
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.PackageManager loadModule
WARNING: Exception while loading module: org.pentaho.reporting.libraries.base.boot.DefaultModuleInfo={ModuleClass=org.jfree.report.modules.gui.swing.preview.SwingPreviewModule}
java.lang.NullPointerException
	at org.pentaho.reporting.libraries.base.boot.PackageManager.containsModule(PackageManager.java:369)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.loadModule(PackageManager.java:436)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.addModule(PackageManager.java:330)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.load(PackageManager.java:199)
	at org.jfree.report.JFreeReportBoot.performBoot(Unknown Source)
	at org.pentaho.reporting.libraries.base.boot.AbstractBoot.start(AbstractBoot.java:197)
	at com.sun.star.report.pentaho.PentahoReportEngine.<init>(PentahoReportEngine.java:45)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.createReportJob(SOReportJobFactory.java:328)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.execute(SOReportJobFactory.java:222)
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.PackageManager loadModule
WARNING: Exception while loading module: org.pentaho.reporting.libraries.base.boot.DefaultModuleInfo={ModuleClass=org.jfree.report.modules.gui.swing.printing.SwingPrintingModule}
java.lang.NullPointerException
	at org.pentaho.reporting.libraries.base.boot.PackageManager.containsModule(PackageManager.java:369)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.loadModule(PackageManager.java:436)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.addModule(PackageManager.java:330)
	at org.pentaho.reporting.libraries.base.boot.PackageManager.load(PackageManager.java:199)
	at org.jfree.report.JFreeReportBoot.performBoot(Unknown Source)
	at org.pentaho.reporting.libraries.base.boot.AbstractBoot.start(AbstractBoot.java:197)
	at com.sun.star.report.pentaho.PentahoReportEngine.<init>(PentahoReportEngine.java:45)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.createReportJob(SOReportJobFactory.java:328)
	at com.sun.star.report.pentaho.SOReportJobFactory$_SOReportJobFactory.execute(SOReportJobFactory.java:222)
Mar 7, 2012 9:13:53 PM org.pentaho.reporting.libraries.base.boot.AbstractBoot start
INFO: Pentaho Reporting Flow-Engine null started.


Alex
Comment 3 Alex Thurgood 2012-03-07 12:21:59 UTC
Created attachment 58141 [details]
java error log
Comment 4 Alex Thurgood 2012-03-07 12:24:58 UTC
Attached trace might help in finding the culprit.

Alex
Comment 5 Alex Thurgood 2012-03-07 12:30:34 UTC
Note that if you move the text field over the graphic, instead of the graphic over the text field, the application does not crash.


Alex
Comment 6 Petr Mladek 2012-03-08 03:44:00 UTC
Sigh, the reportbuilder is a pain. We should fix it ASAP. Well, I see this already in 3.5.0. A workaround exist. This functionality is used by many people but it is still only part all LO users => it should not block this 3.5.1 => lowering the severity a bit. Note that 3.5.2 bug fix release is just few weeks from now.
Comment 7 Julien Nabet 2012-03-17 08:27:09 UTC
Created attachment 58607 [details]
bt of all the threads

On pc Debian x86-64 with master updated today I reproduced this problem.
I attached the bt of all the threads.

I noticed that if I remove line 323 from file reportdesign/source/core/sdr/UndoEnv.cxx :
nPropertyAttributes = xPSI->getPropertyByName( _rEvent.PropertyName ).Attributes;
It's ok.
Now i suppose it just hides the problem.

I also tested by adding before the getPropertyByName a call to hasPropertyByName, but I've got a crash too.

These lines on UndoEnv.cxx have been here since the commit ff043badc9a6254e70677f9266309deae4aa3780
Comment 8 Caolán McNamara 2012-04-03 02:12:57 UTC
Created attachment 59410 [details]
valgrind trace
Comment 9 Caolán McNamara 2012-04-03 08:04:21 UTC
stoc/source/inspect/introspection.cxx the lifecycle of ImplIntrospectionAdapter and ImplIntrospectionAccess looks troublesome to me.

Seeing as ImplIntrospectionAdapter has a mpAccess of ImplIntrospectionAccess* presumably the ImplIntrospectionAdapter should add a reference to its mpAccess ImplIntrospectionAccess so that it can enforce the existance of mpAccess so that in


reportdesign/source/core/sdr/UndoEnv.cxx

                    if ( m_pImpl->m_xIntrospection.is() )
                    {
                        Reference< XIntrospectionAccess > xIntrospection(
                            m_pImpl->m_xIntrospection->inspect( makeAny( _rEvent.Source ) ),
                            UNO_SET_THROW
                        );
                        rObjectInfo.xPropertyIntrospection.set( xIntrospection->queryAdapter( XPropertySet::static_type() ), UNO_QUERY_THROW );
                    }

the result of queryAdapter, which still references xIntrospection as its mpParent, will retain a reference to it so that it doesn't point to junk, as happens at the moment with xIntrospection goes out of scope.
Comment 10 Caolán McNamara 2012-04-03 09:12:25 UTC
Created attachment 59433 [details]
how about this, refactor ourselves out-of-jail ?
Comment 11 Caolán McNamara 2012-04-03 09:14:09 UTC
caolanm->sbergman: what do you think ?
Comment 12 Not Assigned 2012-04-05 06:05:04 UTC
Caolan McNamara committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=47bc24a6bf5074c59d2f2a6bef79e5e70c842889

Resolves: fdo#47068 use of pointer to deleted object
Comment 13 Not Assigned 2012-04-05 08:09:22 UTC
Caolan McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-3-5":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=964f6cd7e891e39bf97dfec772bc3125e147b489&g=libreoffice-3-5

Resolves: fdo#47068 use of pointer to deleted object


It will be available in LibreOffice 3.5.3.
Comment 14 Michael Meeks 2012-06-29 04:43:02 UTC
re-basing on the ALv2 code caused fs' fix in OOO340_m1 to replace this one - it appears to do essentially the same thing; on the other hand it'd be lovely if someone could test a master snapshot again in this area - I couldn't reproduce it myself but ... :-) I'm no base expert.