Blake Eggleston created CASSANDRA-10082:
-------------------------------------------
Summary: Transactional classes shouldn't also implement streams,
channels, etc
Key: CASSANDRA-10082
URL: https://issues.apache.org/jira/browse/CASSANDRA-10082
Project: Cassandra
Issue Type: Improvement
Reporter: Blake Eggleston
Assignee: Blake Eggleston
Attachments:
0001-replacing-SequentialWriter-OutputStream-extension-wi.patch
Since the close method on the Transactional interface means "abort if commit
hasn't been called", mixing Transactional and AutoCloseable interfaces where
close means "we're done here" is pretty much never the right thing to do.
The only class that does this is SequentialWriter. It's not used in a way that
causes a problem, but it's still a potential hazard for future development.
The attached patch replaces the SequentialWriter OutputStream implementation
with a wrapper class that implements the expected behavior on close, and adds a
warning to the Transactional interface. It also adds a unit test that
demonstrates the problem without the fix.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)