lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kay Kay (JIRA)" <j...@apache.org>
Subject [jira] Commented: (SOLR-914) Presence of finalize() in the codebase
Date Sun, 14 Dec 2008 18:05:44 GMT

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

Kay Kay commented on SOLR-914:
------------------------------

Precisely. I believe - we should get away with the same since in our case  - when we try to
shutdown and restart SolrCore - we are noticing instances where the gc thread postpones collecting
the objects until finalize() is invoked. 

Given that finalize() is spec-d such that there is no guarantee of being called  (and worse,
if the implementation does decide , it does not collect the object until the method is invoked
).  

So - inserting a no-guarantee fallback option seems to doing more harm than good here. 

> 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
>             Fix For: 1.4
>
>   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.


Mime
View raw message