[ 
https://issues.apache.org/jira/browse/AXIS2-4163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12751896#action_12751896
 ] 

Torben Riis commented on AXIS2-4163:
------------------------------------

Hi,

I think even this version of finalize is still not good enough. 
If you have a setup with a client invoking an asynchronous service, which 
starts a local server for "replyTo" calls, the call to cleanup in finalize 
triggers the local server to shutdown on GC.

In my case I had a ThreadPoolExecutor 200 ServiceClient requests, and of cause, 
before all jobs had been executed gc starts invoking finalize on finished jobs, 
which triggers the local replyTo server to shutdown...

My circumvention was to override finalize, but I still believe that it would be 
better if the default implementation was removed..

Regards
Torben Riis
Multi-Support A/S R&D

> ServiceClient - finalize() method calls super.finalize() too early
> ------------------------------------------------------------------
>
>                 Key: AXIS2-4163
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4163
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: client-api
>    Affects Versions: 1.4.1
>            Reporter: Erik-Berndt Scheper
>         Attachments: stacktrace.txt
>
>
> The finalize() method in ServiceClient.java incorrectly calls 
> super.finalize() before cleaning up:
>     protected void finalize() throws Throwable {
>         super.finalize();
>         cleanup();
>     }
> This leads to EJBClassLoader errors in GlassFish when the garbage collector 
> runs. To fix this, it should be changed to:
> // Manual finalizer chaining
> @Override protected void finalize() throws Throwable {
>     try {
>         // Finalize subclass state
>         cleanup();
>     } finally {
>         super.finalize();
>     }
> }
> See attached stack trace for details.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to