You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Chris M. Hostetter (Jira)" <ji...@apache.org> on 2023/09/21 19:02:00 UTC

[jira] [Updated] (SOLR-16983) ObjectReleaseTracker completely useless in all SolrTestCaseJ4 based tests - masking unclosed InputStream in some SolrStream usecases

     [ https://issues.apache.org/jira/browse/SOLR-16983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris M. Hostetter updated SOLR-16983:
--------------------------------------
    Summary: ObjectReleaseTracker completely useless in all SolrTestCaseJ4 based tests - masking unclosed InputStream in some SolrStream usecases  (was: ObjectReleaseTracker completely useless in all SolrTestCaseJ4 based tests)

> ObjectReleaseTracker completely useless in all SolrTestCaseJ4 based tests - masking unclosed InputStream in some SolrStream usecases
> ------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-16983
>                 URL: https://issues.apache.org/jira/browse/SOLR-16983
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Chris M. Hostetter
>            Assignee: Chris M. Hostetter
>            Priority: Major
>         Attachments: SOLR-16983-1.patch, SOLR-16983-2.patch, SOLR-16983.bug-demo.nocommit.patch, SOLR-16983.patch, test-output-if-clear-is-removed-from-SolrTestCaseJ4.txt.gz
>
>
> {panel:title=NOTE: This was masking a real bug in SolrStream}
> Fixing tests that fialed while working on this bug lead me to discover that some usages of {{SolrStream}} weren't closing their {{TupleStreamParser}} which could result in unclosed {{InputStream}} (returned from the underlying HTTP client)
>  
> {panel}
> {{SolrTestCase}} has a {{@ClassRule}} named {{solrClassRules}} which calls {{ObjectReleaseTracker.clearObjectTrackerAndCheckEmpty()}} in it's {{afterIfSuccessful()}} method to ensure that any objects which use {{ObjectReleaseTracker}} are correctly released (ie: closed)
> _*...BUT...*_
> {{SolrTestCaseJ4}} has an {{@AfterClass}} method named {{teardownTestCases()}} which calls {{ObjectReleaseTracker.clear()}} _before_ the {{afterIfSuccessful()}} method of it's parent class's {{solrClassRules}} gets to run.
> ... Which means that {{ObjectReleaseTracker}} is completley useless in every test that descends from {{{}SolrTestCaseJ4{}}}.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org