[ 
https://issues.apache.org/jira/browse/SOLR-914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743773#action_12743773
 ] 

Lance Norskog commented on SOLR-914:
------------------------------------

Yes, Solr should keep working. But somewhere in the logs (that a few people 
read) it should note that the resource should have been closed before the 
finalize. So, yes, the patch is right in that it does the shutdown codes inside 
try{} blocks that ignore errors.

+1 on on the current patch and the policy it implements.

> Presence of finalize() in the codebase 
> ---------------------------------------
>
>                 Key: SOLR-914
>                 URL: https://issues.apache.org/jira/browse/SOLR-914
>             Project: Solr
>          Issue Type: Improvement
>          Components: clients - java
>    Affects Versions: 1.3
>         Environment: Tomcat 6, JRE 6
>            Reporter: Kay Kay
>            Assignee: Hoss Man
>            Priority: Minor
>             Fix For: 1.4
>
>         Attachments: SOLR-914.patch
>
>   Original Estimate: 480h
>  Remaining Estimate: 480h
>
> There seems to be a number of classes - that implement finalize() method.  
> Given that it is perfectly ok for a Java VM to not to call it - may be - 
> there has to some other way  { try .. finally - when they are created to 
> destroy them } to destroy them and the presence of finalize() method , ( 
> depending on implementation ) might not serve what we want and in some cases 
> can end up delaying the gc process, depending on the algorithms. 
> $ find . -name *.java | xargs grep finalize
> ./contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/JdbcDataSource.java:
>   protected void finalize() {
> ./src/java/org/apache/solr/update/SolrIndexWriter.java:  protected void 
> finalize() {
> ./src/java/org/apache/solr/core/CoreContainer.java:  protected void 
> finalize() {
> ./src/java/org/apache/solr/core/SolrCore.java:  protected void finalize() {
> ./src/common/org/apache/solr/common/util/ConcurrentLRUCache.java:  protected 
> void finalize() throws Throwable {
> May be we need to revisit these occurences from a design perspective to see 
> if they are necessary / if there is an alternate way of managing guaranteed 
> destruction of resources. 

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