[ https://issues.apache.org/jira/browse/SOLR-914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12657023#action_12657023 ]
Kay Kay commented on SOLR-914: ------------------------------ Primarily SolrCore and SolrIndexWriter ( specifically for my use-case ). Also - just noticed that - CoreContainer.finalize() ( calls shutdown() ) - has a synchronized block. While it is not a bottleneck for me , per se, (since I believe all through the life of the web-app , an instance of CoreContainer is alive and reachable , correct me if I am wrong here ). I believe we might need to revisit this if we were to extend this / provide orthogonal integration with other apps. > 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 > Priority: Minor > 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.