[Libreoffice] Howto develop an extension with URE?
Christian Ehrlicher
Ch.Ehrlicher at gmx.de
Fri Nov 18 11:41:27 PST 2011
Stephan Bergmann schrieb:
>> Now when I try to use the provided rdb I get an error when I try to
>> load a
>> document:
>> "LoadFromUrl failed: Binary URP bridge disposed during call -
>> file:///home/chehrlic/Dokumente/test.odp"
>> Out of curiosity the documentloader example can load my document and I
>> can't
>> find a difference between the example and my code.
>
> "Binary URP bridge disposed during call" indeed hints at broken
> plumbing, like the two ends of the bridge using different type
> descriptions (which appears unlikely if you use the offapi.rdb from
> LibO's basis layer---together with the types.rdb from LibO's URE layer)
> or something like that.
>
> The easiest would be if you presented a (stripped down) version of your
> failing code. It might be that you fail to include the URE's types.rdb,
> for example.
>
This was a good idea although not with the result I expected. After my
testcase finally worked I found out that soffice is crashing during the
connect procedure (my application is starting the soffice binary by its
own and therefore I had no real chance to debug this end of the wire)
gdb shows the problem:
-------------------------8<--------------------------------------------
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffda7fd700 (LWP 18110)]
qt_toX11Pixmap (pixmap=...) at image/qpixmap_x11.cpp:98
98 image/qpixmap_x11.cpp: Datei oder Verzeichnis nicht gefunden.
in image/qpixmap_x11.cpp
(gdb) bt
#0 qt_toX11Pixmap (pixmap=...) at image/qpixmap_x11.cpp:98
#1 0x00007fffeb647a40 in QX11PaintEngine::drawPixmap (this=<optimized
out>, r=<optimized out>, px=<optimized out>, _sr=<optimized out>)
at painting/qpaintengine_x11.cpp:1918
#2 0x00007fffeb583bf5 in QPaintEngine::drawImage (this=0x1df9fb0,
r=..., image=..., sr=<optimized out>, flags=<optimized out>)
at painting/qpaintengine.cpp:624
#3 0x00007fffeb64bc72 in QX11PaintEngine::drawImage (this=0x1df9fb0,
r=..., image=..., sr=..., flags=...)
at painting/qpaintengine_x11.cpp:1903
#4 0x00007fffeb59dc1e in QPainter::drawImage (this=0x7fffda7f98b0,
targetRect=..., image=..., sourceRect=..., flags=...)
at painting/qpainter.cpp:5720
#5 0x00007fffed747914 in ?? () from
/usr/lib64/libreoffice/basis3.4/program/libvclplug_kde4lx.so
#6 0x00007ffff39d4667 in SalGraphics::DrawNativeControl(unsigned int,
unsigned int, Rectangle const&, unsigned int, ImplControlValue const&,
rtl::OUString const&, OutputDevice const*) () from
/usr/lib64/libreoffice/program/../basis-link/program/libvcllx.so
#7 0x00007ffff3947e7e in OutputDevice::DrawNativeControl(unsigned int,
unsigned int, Rectangle const&, unsigned int, ImplControlValue const&,
rtl::OUString) () from
/usr/lib64/libreoffice/program/../basis-link/program/libvcllx.so
#8 0x00007ffff3945d5b in OutputDevice::Erase() () from
/usr/lib64/libreoffice/program/../basis-link/program/libvcllx.so
#9 0x00007ffff3a8fae2 in ?? () from
/usr/lib64/libreoffice/program/../basis-link/program/libvcllx.so
#10 0x00007ffff3a8fd13 in Window::Update() () from
/usr/lib64/libreoffice/program/../basis-link/program/libvcllx.so
#11 0x00007ffff3a62025 in StatusBar::SetProgressValue(unsigned short) ()
from /usr/lib64/libreoffice/program/../basis-link/program/libvcllx.so
#12 0x00007fffdda90d54 in ?? () from
/usr/lib64/libreoffice/program/../basis-link/program/libfwklx.so
#13 0x00007fffdda9e270 in ?? () from
/usr/lib64/libreoffice/program/../basis-link/program/libfwklx.so
#14 0x00007fffdd954e81 in ?? () from
/usr/lib64/libreoffice/program/../basis-link/program/libfwklx.so
#15 0x00007fffdd951475 in ?? () from
/usr/lib64/libreoffice/program/../basis-link/program/libfwklx.so
#16 0x00007fffd8363378 in ProgressBarHelper::SetValue(int) () from
/usr/lib64/libreoffice/program/../basis-link/program/libxolx.so
#17 0x00007fffd842e127 in ?? () from
/usr/lib64/libreoffice/program/../basis-link/program/libxolx.so
#18 0x00007fffd8434e4b in ?? () from
/usr/lib64/libreoffice/program/../basis-link/program/libxolx.so
#19 0x00007fffd843ac74 in ?? () from
/usr/lib64/libreoffice/program/../basis-link/program/libxolx.so
#20 0x00007fffd8396328 in SvXMLImport::startElement(rtl::OUString
const&,
com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>
const&) () from
/usr/lib64/libreoffice/program/../basis-link/program/libxolx.so
#21 0x00007fffd80455f0 in ?? () from
/usr/lib64/libreoffice/program/../basis-link/program/sax.uno.so
#22 0x00007fffe6debaf6 in ?? () from /lib64/libexpat.so.1
---Type <return> to continue, or q <return> to quit---q
-------------------------8<--------------------------------------------
The kde4 plugin for libreoffice has a problem - creating qpixmaps
outside the main thread is no allowed - crashes and the other end gives
me the error message.
The crash doesn't happen every time and it looks like a timing problem
to me which explains why the documentloader example worked in > 90% of
the cases.
After uninstalling the plugin I can work with libreoffice as it worked
with the ure-devel packages.
I'll open a bugreport on opensuse bugtracker with the testcase.
Thx for the help,
Christian
More information about the LibreOffice
mailing list