Bug 51278 - Opening Report fails with Error Message
Summary: Opening Report fails with Error Message
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
Version:
(earliest affected)
3.6.0.0.beta2
Hardware: All All
: highest blocker
Assignee: David Tardon
URL:
Whiteboard: target:3.7.0 target:3.6.0.2
Keywords: regression
Depends on:
Blocks: mab3.6
  Show dependency treegraph
 
Reported: 2012-06-20 23:41 UTC by aironmail
Modified: 2012-07-13 09:48 UTC (History)
6 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description aironmail 2012-06-20 23:41:30 UTC
For me, using 3.6 beta1 and beta2, it's just impossible to open reports in Base that were generated with LO 3.5.X.

I can't either create new reports. If I double click on the reports wizard I get an error message saying that no valid templates are found. OK, that's an error that I had sometime ago that seems to happen to some people (looking in Google), but what is new to me is that if I double click on the option to create reports on design mode (which always worked before), this time it does nothing. Yes, I double click on it and nothing happens.

On a previosly created .odb file (with 3.5.X), if I try to open a report, I get an error saying something like: The document XXXXXX can't be opened (it's a translation that I've done from the spanish message I get, it might not be exactly the same message on the pure english version). On this file, if I then try to create new reports I get the same result than in the previous paragraph.

This is critical, as Base becomes unusable on 3.6.
Comment 1 Rainer Bielefeld Retired 2012-06-21 00:05:48 UTC
[Reproducible] with Biblio Database and Server Installation of  "LibreOffice 3.6.0beta1  German UI/Locale [Build-ID: 1f1cdd8] on German WIN7 Home Premium (64bit). 

1. Open Database
2. click 'Reports'
3. Click 'Use Wizard ... ' Blank new profile
   Bug: Error message

@Lionel:
one for you?
Comment 2 Rainer Bielefeld Retired 2012-06-21 00:43:12 UTC
Reproducible with Beta1
Comment 3 Lionel Elie Mamane 2012-06-21 01:32:16 UTC
(In reply to comment #1)
> @Lionel:
> one for you?

Hmm... 3.6beta1 (official binaries) does not start *at* *all* for me (Linux x86-64 .deb). Says 
"terminate called after throwing an instance of 'com::sun::star::uno::DeploymentException'"

So right now, cannot get to state to try to reproduce this bug :-|
Comment 4 Lionel Elie Mamane 2012-06-21 01:53:45 UTC
OK, could start 3.6.0beta1 and reproduce. Will try to build 3.6 soonish to chase that down.
Comment 5 Julien Nabet 2012-06-21 12:16:48 UTC
On pc Debian x86-64, with master sources updated today, I reproduce the problem.

Here is the console logs when I click on wizard :
warn:legacy.tools:10910:1:/home/julien/compile-libreoffice/libo/toolkit/source/helper/unowrapper.cxx:186: UnoWrapper::SetWindowInterface: there already *is* a WindowInterface for this window!
warn:legacy.tools:10910:1:/home/julien/compile-libreoffice/libo/toolkit/source/awt/vclxtoolkit.cxx:1136: VCLXToolkit::createWindow: did #133706# resurge?


And when I click on Design :
 warn:legacy.osl:10910:1:/home/julien/compile-libreoffice/libo/dbaccess/source/ui/misc/linkeddocuments.cxx:327: caught an exception!
in function:com::sun::star::uno::Reference<com::sun::star::lang::XComponent> dbaui::OLinkedDocumentsAccess::newDocument(sal_Int32, const comphelper::NamedValueCollection&, com::sun::star::uno::Reference<com::sun::star::lang::XComponent>&)
type: com.sun.star.io.IOException
Comment 6 Lionel Elie Mamane 2012-06-24 05:04:38 UTC
Here are my findings up to now:

dbaui::OLinkedDocumentsAccess::newDocument (file dbaccess/source/ui/misc/linkeddocuments.cxx) gets called with i_nActionID==ID_REPORT_NEW_TEXT, which thus sets a ClassID of {-41 '\327', -119 '\211', 109 'm', 82 'R', -73 '\267', -81 '\257', 72 'H', 32 ' ',  -99 '\235', -2 '\376', -44 '\324', 4 '\004', -48 '\320', 21 '\025', -106 '\226', 15 '\017'}. This then trickles down to 
OOoEmbeddedObjectFactory::createInstanceUserInit (file embeddedobj/source/commonembedding/xfactory.cxx) which calls
 m_aConfigHelper.GetObjectPropsByClassID( aClassID );
(file comphelper/source/misc/mimeconfighelper.cxx)
which stringifies the ClassID to d7896d52-b7af-4820-9dfe-d404d015960f and calls
  xObjConfig->getByName( aStringClassID.toAsciiUpperCase() )

which throws css::container::NoSuchElementException.


So either the ClassID being used is incorrect, or it is correct and should be found, but is not found.
Comment 7 Lionel Elie Mamane 2012-07-03 07:22:41 UTC
This ClassID is mentioned in reportbuilder/registry/data/org/openoffice/Office/Embedding.xcu

Natural questions:

1) is this file correctly processed and installed?

2) Does it have the intended effect?

Except for gbuildification, not much seems to have happened in reportbuilder between 3.5 and 3.6:

1) cosmetic changes from "Childs" to "Children", also in variable and method names; no "Childs" seems to be forgotten in this.


So maybe it is a bug or some other behaviour in the gbuildification?
Comment 8 Andras Timar 2012-07-03 07:50:55 UTC
Quickly comparing report-builder.oxt from dmake and from gbuild, it shows that registry/data/org/openoffice/Office/UI/Controller.xcu is missing. Also, META_INF/manifest.xml has many missing entries.
Comment 9 Andras Timar 2012-07-03 08:14:28 UTC
[ build XCS ] reportbuilder/registry/schema/org/openoffice/Office/UI/ReportCommands.xcs
warning: failed to load external entity "C:/lo/libo-master/reportbuilder/registry/schema//org/openoffice/Office/UI/WindowState.xcs"
[ build XCU ] reportbuilder/registry/data/org/openoffice/TypeDetection/Filter.xcu
[ build XCU ] reportbuilder/registry/data/org/openoffice/TypeDetection/Types.xcu
warning: failed to load external entity "C:/lo/libo-master/reportbuilder/registry/schema//org/openoffice/Office/UI/Commands.xcs"
warning: failed to load external entity "C:/lo/libo-master/reportbuilder/registry/schema//org/openoffice/Office/UI/Commands.xcs"

gbuild makefile does not copy those xcs files from solver to build dir. dmake makefile contained these lines:

"$(PWD)$/$(MISC)$/$(EXTNAME)$/registry$/schema$/$(PACKAGEDIR)$/Commands.xcs": $(SOLARXMLDIR)$/registry$/schema$/$(PACKAGEDIR)$/Commands.xcs
    @@-$(MKDIRHIER) $(@:d)
    $(COPY) $< $@
    
"$(PWD)$/$(MISC)$/$(EXTNAME)$/registry$/schema$/$(PACKAGEDIR)$/WindowState.xcs" : $(SOLARXMLDIR)$/registry$/schema$/$(PACKAGEDIR)$/WindowState.xcs
    @@-$(MKDIRHIER) $(@:d)
    $(COPY) $< $@
    
"$(PWD)$/$(MISC)$/$(EXTNAME)$/registry$/schema$/$(PACKAGEDIR)$/Controller.xcs" : $(SOLARXMLDIR)$/registry$/schema$/$(PACKAGEDIR)$/Controller.xcs
    @@-$(MKDIRHIER) $(@:d)
    $(COPY) $< $@
Comment 10 Lionel Elie Mamane 2012-07-11 09:08:12 UTC
@dtardon: From the git log, it seems you made the gbuildification of reportbuilder? It seems it does not ship registry/data/org/openoffice/Office/UI/Controller.xcu, and other entries are missing in manifest.xml.

Could you please take a look? Thanks in advance.
Comment 11 David Tardon 2012-07-12 10:49:34 UTC
(In reply to comment #8)
> Quickly comparing report-builder.oxt from dmake and from gbuild, it shows that
> registry/data/org/openoffice/Office/UI/Controller.xcu is missing. Also,
> META_INF/manifest.xml has many missing entries.

That is the real problem. Files not present in manifest are ignored when an extension is registered. So, as far as libreoffice is concerned, the reportbuilder has no configuration files...

The old build system allows to have a skeleton manifest for an extension that is then filled by a perl script (solenv/bin/makemani.pl) during build (which is something I overlooked at the time I did the conversion). We either need to duplicate that functionality in gbuild or fill all the necessary entries in.
Comment 12 David Tardon 2012-07-12 11:05:41 UTC
git grep COMPONENT_MANIFEST_GENERIC says there is no other extension that uses makemani.pl to create the manifest for it. (And git log -SCOMPONENT_MANIFEST_GENERIC says reportbuilder was the only extension that had ever used it.) So I am simply going to add all the necessary entries.
Comment 13 Not Assigned 2012-07-12 11:33:34 UTC
David Tardon committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=10a6cf99d3a44e0b2c5e984e0145b5163b9ed852

fdo#51278 make reportbuilder work again
Comment 14 Not Assigned 2012-07-12 12:45:44 UTC
David Tardon committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=836c61ab1c52b1833d12aa8745594b11111a83a2

fdo#51278 bump version to force update of package cache
Comment 15 Lionel Elie Mamane 2012-07-13 06:09:22 UTC
Reopening because the patch by David:

1) Is not yet applied to all branches it should be (missing libreoffice-3-6)

2) In my testing actually trying to generate a report is still broken after the patch.

Reproduction instructions:

Open Database

Click Reports in the left part of the window.

If you already have a report in the database, open it (double-click or right-click and "open"). Error message.

If there is no report in the database, click "Use Wizard to create report". Click ">>" to add all fields. Click "Finish" to take all default options. Error message.

The document ReportName could not be opened.
Cannot activate implementation
(...)solver/unxlngx6/installation/opt/program/..share/extensions/report-builder/sun-report-builder.jar:
Cannot activate jar
(...)solver/unxlngx6/installation/opt/program/..share/extensions/report-builder/sun-report-builder.jar:
java stack trace:
com.sun.star.loader.CannotActivateFactoryException: cannot activate
jar
(...)solver/unxlngx6/installation/opt/program/..share/extensions/report-builder/sun-report-builder.jar
at
com.sun.star.comp.loader.JavaLoader.activate(JavaLoader.java:282)
Comment 16 David Tardon 2012-07-13 08:24:45 UTC
Caused by missing items in the jar's manifest. And I even have a TODO for it in reportbuilder/Jar_reportbuilder.mk ...
Comment 17 David Tardon 2012-07-13 09:22:37 UTC
report creation works now
Comment 18 Not Assigned 2012-07-13 09:25:22 UTC
David Tardon committed a patch related to this issue.
It has been pushed to "master":

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

fdo#51278 fix reportbuilder manifest
Comment 19 Lionel Elie Mamane 2012-07-13 09:30:04 UTC
Fix not applied to libreoffice-3-6 branch -> don't close bug (else it shows up as fixed in Most Annoying Bugs, and in the queries QA does before release to check that no blocker bug remains).
Comment 20 Lionel Elie Mamane 2012-07-13 09:48:06 UTC
Works now; squashed the three commits and pushed to libreoffice-3-6.
Comment 21 Not Assigned 2012-07-13 09:48:24 UTC
David Tardon committed a patch related to this issue.
It has been pushed to "libreoffice-3-6":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=e2fe00eba3a293311451a4b1f96eaa0fd3bab61b&g=libreoffice-3-6

fdo#51278 make reportbuilder work again


It will be available in LibreOffice 3.6.