Issue 59538 - ASSERT: TransactionManager... "Owner instance not right initialized yet. Call was rejected! Normaly it's an algorithm error ... wrong usin of class!"
Summary: ASSERT: TransactionManager... "Owner instance not right initialized yet. Call...
Status: ACCEPTED
Alias: None
Product: General
Classification: Code
Component: scripting (show other issues)
Version: 680m142
Hardware: All All
: P4 Trivial (vote)
Target Milestone: AOO Later
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-12-19 09:49 UTC by Frank Schönheit
Modified: 2017-05-20 11:31 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Frank Schönheit 2005-12-19 09:49:38 UTC
execute the following line of Base code:
  frame = createUnoService( "com.sun.star.frame.Frame" )

=> assertion:
Error: ASSERT:
	TransactionManager...
	"Owner instance not right initialized yet. Call was rejected! Normaly it's an
algorithm error ... wrong usin of class!"
 From File O:\SRC680\src\framework\source\threadhelp\transactionmanager.cxx at
Line 379
Comment 1 andreas.schluens 2006-01-19 09:02:53 UTC
The problem behind:

Every frame MUST be initialized with a valid XWindow reference. Otherwhise it cant 
work. If the frame is called in it's API methods and was not initialized before it 
shows this assertion. Thats similar to throwing a DisposedException in case the 
frame was already closed but will be used further.

But if you create the frame calling createInstance() instead of 
createInstanceWithArguments(XWindow) it's basic, which makes the first API call 
implicitly. Because basic is interested to know all properties of the XPropertySet 
implement on a frame .-)

But the frame cant differ between a reflection call of basic and a normal API call 
done by anybody else.

AS->AB: Please make sure that basic don't start it's property reflection requests 
on creation time of an UNO service. That should be done first if a property request 
is done by the basic code itself.
Comment 2 ab 2006-05-24 09:36:39 UTC
That's the same for Basic. Basic can't differ between a service that needs further
initalisation and a service that not. In the scope of instantiating an Uno service 
Basic uses the introspection result to check if the object is valid. It has to be 
evaluated if this can be postponed without drawbacks. 

As the Basic code obviously is wrong here - GetProcessServiceManager().
createInstanceWithArguments(...) has to be used - I don't consider this task
to be critical anyway. -> P4, STARTED
Comment 3 andreas.schluens 2006-06-20 11:55:15 UTC
There is another problem regarding the introspection of basic:
The service com.sun.star.document.StandaloneDocumentInfo cant be used within 
basic. Because this service needs another method called first ("loadFromURL()"). But 
the introspection of basic tries to get some informations about the supported property 
set ... which isnt realy available before loadFromURL() was called. Because the set of 
properties cames from the document and is not fix.

BTW: createInstanceWithArguments doesnt help here ... because it calls 
XInitializsation::initialize() only ... not loadFromURL() or any other method.

Example:

docinfo = createUnoService("com.sun.star.document.StandaloneDocumentInfo")
=> crash
Comment 4 Marcus 2017-05-20 11:31:10 UTC
Reset assigne to the default "issues@openoffice.apache.org".