[ https://issues.apache.org/jira/browse/CASSANDRA-12381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15407996#comment-15407996 ]
Robert Stupp commented on CASSANDRA-12381: ------------------------------------------ Strictly, we have some misuses (assuming {{!hasArray()}} == direct buffer) for example in {{org.apache.cassandra.io.util.BufferedDataOutputStreamPlus#write(java.nio.ByteBuffer)}}. It is not an issue now (as it is exchangeable as of the current OpenJDK/Oracle implementation) - but should be fixe IMO. WDYT? > Verify use of ByteBuffer.hasArray() in whole code base > ------------------------------------------------------ > > Key: CASSANDRA-12381 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12381 > Project: Cassandra > Issue Type: Bug > Reporter: Robert Stupp > Assignee: Robert Stupp > Priority: Minor > Fix For: 3.0.x > > > As [noted > here|https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html#allocateDirect-int-], > a direct {{ByteBuffer}} can have a backing array. > If a direct {{ByteBuffer}} has a backing array, we should not make any > assumption on how it is actually used. > This ticket is about to check whether uses of {{ByteBuffer.hasArray()}} need > to be replaced with {{ByteBuffer.isDirect()}}. > (With CASSANDRA-11870 however, there is no way that such a direct > {{ByteBuffer}} has a backing array.) -- This message was sent by Atlassian JIRA (v6.3.4#6332)