unit test failure in forms module, something do with com.sun.star.form.control.FixedText

Noel Grandin noel at peralex.com
Wed Apr 3 05:19:28 PDT 2013


Hi

I'm fighting a "make check" failure on a clean master build, running 
under 64-bit Ubuntu.

The failure is inside:
    make JunitTest_forms_unoapi

The error message looks like:
xwarn:legacy.osl:28578:327:svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx:1245: 
caught an exception!
     in function:static bool 
sdr::contact::ViewObjectContactOfUnoControl_Impl::createControlForDevice
    type: com.sun.star.uno.RuntimeException
    message: unsatisfied query for interface of type 
com.sun.star.awt.XControl

The object that is being queried is an SdrUnoObject, which has an 
aUnoControlTypeName member which reads "com.sun.star.form.control.FixedText"

The
    ViewObjectContactOfUnoControl_Impl::createControlForDevice
method is called from
    ViewObjectContactOfUnoControl_Impl::impl_ensureControl_noThrow
which gets the pUnoObject field by calling
    getUnoObject
which calls
    ViewContactOfSdrObj::TryToGetSdrObject
which calls
    GetSdrObject
which returns the
    mrObject
field.

 From there, following the constructor call stack back gets me to
   SdrUnoObj::setUnoControlModel
which is called from the Java unit test code.

Using GDB, I find that something in the unit test code is passing an 
awt::XControlModel UNO object to SvxShapeControl::setControl()
That XControlModel is returning "com.sun.star.form.control.FixedText" 
when called like this:
  beans::XPropertySet::getPropertyValue("DefaultControl")

Grepping through the source code, "com.sun.star.form.control.FixedText" 
is only found in
    forms/source/inc/services.hxxx
but the global constants declared there are not used anywhere else 
(confirmed by removing them and rebuilding).

Nothing seems to actually implement this service.

Any ideas?

Regards, Noel Grandin


Disclaimer: http://www.peralex.com/disclaimer.html




More information about the LibreOffice mailing list