Hi Martin,

just two points:
- If the hanging finalizer really is the problem, than one dedicated thread for releasing/finalizing mapped UNO objects should do the trick, no thread pool needed. The Java finalizer just needs to pass these objects to the releaser thread.

- How does you ensure that your thread pool threads finalize the objects? AFAIK there is no way to explicitly dispose mapped UNO objects.

Kay



Martin Gallwey wrote:

The java uno bridge need to create also a fresh thread for each release (or at least for each concurrent release). It can't be a single thread doing the releases, because this would end in the same problem.

Because the JVM finalizer garbage collects many many objects at a time (in the scenario where I ran into this bug, the high water mark was > 10000), it is not possible to create a thread per release. What I did instead was turn on '-Xincgc' for incremental garbage collection, and implement a thread pool of ten threads to share out the releasing of the objects.

I will create a child workspace for this issue. In the mean time, I created an issue (i#57753#) with the patches attached to it. With the attached patches, my java filter batch job ran perfectly for 8000 documents, whereas without the patches it used to crash after 20 or so. I'll create a reduced test case to demonstrate the crash. It seems the 'access violation exception' was a result of the java.lang.OutOfMemoryError as with the patches applied, I get neither error.

Have a good weekend, everyone!

Martin

---------------------------------------------------------------------
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