Hi,
I could provide you with a special debug version of the C++ remote UNO bridge which can be used to
- write a logfile containing all requests/replies served by the bridge - dumps bridge errors to stderr
You could post the logfile/stderr output here which might help to analyze your problem.
Just drop me a note if you're interested. Please don't forget to mention the platform your office is running on. The bridge used by OOo is implemented in C++.
Kai
Bob Crothers wrote:
Thanks Stephan for your reply.
Overview - our system is for newspapers. We have a Java application
which rives OpenOffice. The ad taker uses our Java application, which
has multiple tabs. On one tab is OpenOffice, we size and move OpenOffice
so it stays within our window. The user enters the ad text in
OpenOffice. On the other tabs (Java panes) the user enters customer
info, billing, credit info etc. When the user first opens/creates an ad
we:
We add ourselves to XEventListener. We setup our own service to talk to OO and for OO to talk to the Java side. We get the following interfaces XTextDocument XMultiServiceFactory XTextFieldsSupplier XDrawPageSupplier XStyleFamiliesSupplier XPrintable XModifiable XStorable XRefreshable XNameAccess XWordCursor XParagraphCursor XViewCursor XLineCursor
We use these same interfaces during the session of the ad. We do a lot of getPropertySet and setPropertyValue. We make calls from Java into OO macros, we respond to events, and we save the document via an OO macro. This all works fine most of the time.
There seems to be cases (especially when the computer is busy) when we get the exceptions. Once we start getting the exceptions, we do not recover.
---
Regarding, "What requests are you sending exactly?"
For com.sun.star.lib.uno.protocols.urp.Unmarshal.readboolean - unexpected:java.io.EOFException We called XModifiable.isModified ()
For com.sun.star.io.IOException: java.net.SocketException: Socket closed
XPropertySet pagePropertySet =
getPropertySet(pageStyles.getByName("Standard"));
pagePropertySet.setPropertyValue("Width", pageWidth);
For java_remote_bridge
[EMAIL PROTECTED] is
disposed
We called XModifiable.isModified ()
Regarding, "Do you have an idea how many synchronous UNO requests from your local Java side are outstanding," no but there could be several.
Regarding, "...remote side of the bridge is closing the connection," this is very interesting. Why is it closing the connection? Is there a way to keep the connection open until we are finished?
Bob
-----Original Message-----
From: Stephan Bergmann [mailto:[EMAIL PROTECTED] Sent: Wednesday, March 16, 2005 11:39 PM
To: dev@api.openoffice.org
Subject: Re: [api-dev] How to protect from disposed exception?
Bob Crothers wrote:
Hi,
We have a multi-threaded Java environment. We are using OpenOffice.org
1.1.3. There are times when we make a series of UNO calls (mostly setting properties, save, and call macros) and also get a series of exceptions. The exceptions follow:
com.sun.star.lib.uno.protocols.urp.Unmarshal.readboolean - unexpected:java.io.EOFException
com.sun.star.io.IOException: java.net.SocketException: Socket closed
java_remote_bridge [EMAIL PROTECTED] is disposed
Hm, this means the remote side of the bridge is closing the connection while the local side of the bridge thinks it still has to read data. Do
you have an idea how many synchronous UNO requests from your local Java side are outstanding (have not yet received a reply from the remote OOo side) when the exception occurs---none, one (i.e., on a single Java thread), or multiple (i.e., on multiple Java threads simultaneously)? What requests are you sending exactly?
-Stephan
How can we defend against these exceptions?
Thanks
Bob Crothers
--------------------------------------------------------------------- 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]