[
https://issues.apache.org/jira/browse/SOLR-16983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chris M. Hostetter updated SOLR-16983:
--------------------------------------
Description:
{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{}}}.
was:
{{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{}}}.
> ObjectReleaseTracker completely useless in all SolrTestCaseJ4 based tests
> -------------------------------------------------------------------------
>
> 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: [email protected]
For additional commands, e-mail: [email protected]