Hi Daniel,

Sorry I was not clear with my request. I am of course interested in the stack of the hanging soffice.bin process.

To get the stack you would probably need to build the office without stripping of the symbols. Otherwise the stack would be unreadable I assume.

Best regards,
Mikhail.

On 02/24/09 18:28, Daniel Brosseau wrote:
Hi Mikhail,

Thank you for your answer. Here is the stack of the deadlock:

Threads:

Main
    main
        Waiting for Monitor: com.sun.star.lib.uno.remote.JobQueue(#621)
    Thread-1
    Pipe:CO>
        Owned Monitors
            Owned Monitor: java.io.BufferedInputStream(#624)
            Owned Monitor: java.io.InpuitStreamReader(#625)
    Pipe: CE>
        Owned Monitors
            Owned Monitor: java.io.InputStreamReader(#620)
    MessageDispatcher
        Owned Monitors
            Owned Monitor: java.io.BufferedInputStream(#622)
    Reference Handler
        Waiting for Monitor: java.lang.ref.Reference#Lock(#650)
    Finalizer
        Waiting for Monitor: java.lang.ref.ReferenceQueue$Lock
    Signal Dispatcher
    Attach Listener
    Thread-2
        Waiting for Monitor: java.util.LinkedList(#623)

Stack:

System
    'Attach Listener' suspended
    'Finalizer' suspended at 'java.lang.Object.wait'
        Waiting for Monitor: java.lang.ReferenceQueue$Lock(#653)
        java.lang.Object.wait
        java.lang.ref.ReferenceQueue.remove:116
        java.lang.ref.ReferenceQueue.remove:132
        java.lang.ref.Finalizer$FinalizerThread.run:159
    'Reference Handler' suspended at 'java.lang.Object.wait'
        Waiting for Monitor:java.lang.Reference$Lock(#650)
        java.lang.Object.wait
        java.lang.Object.wait:485
        java.lang.ref.Reference$ReferenceHandler.run:116
    'Signal Dispatcher' suspended
    'Thread-Z' suspended at 'java.lang.Object.wait'
        Waiting for Monitor:java.util.LinkedList(#623)
        java.lang.Object.wait
        java.lang.Object.wait:485
        com.sun.start.lib.util.AsynchronousFinalizer$1.run:89
    main
        'main' suspended at 'java.lang.Object.wait'
            Waiting for Monitor:
com.sun.star.lib.uno.environments.remote.JobQueue(#621)
            java.lang.Object.wait
            com.sun.star.lib.uno.environments.remote.JobQueue.removeJob:230
            com.sun.star.lib.uno.environments.remote.JobQueue.enter:340
            com.sun.star.lib.uno.environments.remote.JobQueue.enter:313
com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter:101 com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest:652 com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request:154 com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke:136
            $Proxy23.storeToURL
            LbaEnvelopeAssembler.oooStoreTo:972
            LbaEnvelopeAssembler.processTabFilesExt:1521
            LbaEnvelopeAssembler.processTabFiles:1428
            LbaEnvelopeAssembler.process:1377
            LbaEnvelopeAssembler.run:1674
            LbaEnvelopeAssembler.main:1655
        'MessageDispatcher' suspended at
'java.net.SocketInputStream.socketRead0'
            Hidden source Calls
                java.net.SocketInputStream.socketRead0
                java.net.SocketInputStream.read:129
                java.io.BufferedinputStream.fill:218
                java.io.BufferedInputStream.read1:258
                java.io.BufferedInputStream.read:317
                    Owned Monitor: java.io.BufferedInputStream(#622)
com.sun.star.lib.connections.socket.SocketConnection.read:158 com.sun.star.lib.uno.bridges.java_remote_XConnectionInputStream_Adapter.read
:59
                java.io.DataInputStream.readInt:370
                com.sun.star.lib.uno.protocols.urp.urp.readBlock:349
                com.sun.star.lib.uno.protocols.urp.urp.readMessage:89
com.sun.star.lib.uno.bridges.java_remote_bridge$MessageDispatcher.run:122
        'Pipe: CE>' suspended at 'java.io.FileInputStream.readBytes'
            Hidden Source Calls
                java.io.FileInputStream.readBytes
                java.io.FileInputStream.read:199
                sun.nio.cs.StreamDecoder.readBytes:264
                sun.nio.cs.StreamDecoder.implRead:306
                sun.nio.cs.StreamDecoder.read:158
                    Owned Monitor: java.io.InputStreamReader(#620)
                java.io.InputStreamReader.read:167
                java.io.BufferedReader.fill:136
                java.io.BufferedReader.readLine:299
                java.io.BufferedReader.readLine:362
                ooo.connector.server.OOServer$1.run:143
        'Pipe: CO>' suspended at 'java.io.FileInputstream.readBytes'
            Hidden Source Calls
                java.io.FileInputStream.readBytes
                java.io.FileInputStream.read:199
                java.io.BufferedInputStream.read1:256
                java.io.BufferedInputStream.read:317
                    Owned Monitor: java.io.BufferedInputStream(#624)
                sun.nio.cs.StreamDecoder.readBytes:264
                sun.nio.cs.StreamDecoder.implRead:306
                sun.nio.cs.StreamDecoder.read:158
                    Owned Monitor: java.io.InputStreamReader(#625)
                java.io.InputStreamReader.read:167
                java.io.BufferedReader.fill:136
                java.io.BufferedReader.readLine:299
                java.io.BufferedReader.readLine:362
                ooo.connector.server.OOServer$1.run:143
        'Tread-1' suspended at
'sun.print.Win32PrintServiceLookup.notifyPrinterChange'
            Hidden Source Calls
                sun.print.Win32PrintServiceLookup.notifyPrinterChange
                sun.print.Win32PrintServiceLookup.access$100:32
sun.print.Win32PrinterServiceLookup$PrinterChangeListener.run:302

I hope this helps in finding where the problem lies.
Could you please signal me if there is something I am doing wrong?

Regards,

Daniel
-----Original Message-----
From: [email protected] [mailto:[email protected]] Sent: February 24, 2009 4:19 AM
To: [email protected]
Subject: Re: [api-dev] Xstorable.storeToUrl locks soffice.bin

Hi Daniel,

First of all what do you name the main thread?

As I understood you use own java application that connects the office using UNO API. The main thread of the java application does not correspond to the main thread of the office process it connects ( at least it was so before ).

As I have written in one of my previous answers, please try to use "com.sun.star.awt.AsyncCallback" service to get a callback from the office main thread. In this case you can use the callback to do your API call in the office main thread.


The remaining lock file looks in this case like a result of non-closed model. The model is the object that creates lock file on document opening and closes it on closing. The office never waits for a document lock file to continue, except the case of error/query message shown during document opening/storing.

Anyway, the stack of the deadlock would be very interesting.

Best regards,
Mikhail.

On 02/24/09 07:05, Daniel Brosseau wrote:
Hi,

In everything done in one main thread with no GUI, my program loadsFromUrl from the Frame a first ODT file and then
appends one or
more ODT files to this through a XTextCursor and
XDocumentInsertable.
After all files are appended I do a XRefreshable.refresh().

I then move to the beginning of the XTextDocument and
insert a Table
of Contents, do another XRefreshable.refresh() and a XDocumentIndex.update which I retreived through a XServiceInfo.

At this point I can do one of two things:
i) print the document through a XPrintable with a property
"Wait" of
true and
for belts and suspenders a XPrintJobListener and
XPrintJobBroadcaster
(I do not think I need this with "Wait") Or ii)
storeToUrl through
a XStorable using the PDF filter "writer_pdf_Export",
       Asynchron of false and Overwrite true.

The program then loops back to the beginning and loadsFromUrl/Append/etc for another set of files ... (after
the load I
close the released Xmodel, but am I leaking a Controller which I should also close?)

If all I do is print, the the program can handle several
sets of files
without a problem but if I storeToUrl then soffice.bin will
typically
hang after 1 to 5 stores.
The specific set of loaded files that causes soffice.bin to hang varies from run to run but inevitably soffice.bin hangs. In the directory from which the files are loaded, I see Appear a file .~lock.fileName.ODT# where the fileName is the name of
first file of
the set that was loaded through loadFromUrl which
corresponds to the
XModel's URL property.

Evidently, having soffice.bin hang is a problem. What I
don't know is
if
i) it is a threading issue relating to synchronization of
the store,
the refresh or
   the update
Or ii) their is a file lock taken out that soffice.bin is
waiting to
have released before
       continuing.

Really what I would like to know is how to avoid the
hanging soffice.bin.
When soffice.bin
hangs, it just sits there consumming around 20% of the CPU with no change to memory usage, bytes read or anything else.

Any hints?

Thank you,

Daniel Brosseau







---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to