[ https://issues.apache.org/jira/browse/GEODE-8584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17210374#comment-17210374 ]
ASF GitHub Bot commented on GEODE-8584: --------------------------------------- Bill commented on a change in pull request #5605: URL: https://github.com/apache/geode/pull/5605#discussion_r501922128 ########## File path: geode-core/src/main/java/org/apache/geode/internal/net/NioSslEngine.java ########## @@ -52,6 +53,11 @@ public class NioSslEngine implements NioFilter { private static final Logger logger = LogService.getLogger(); + // this variable requires the MakeImmutable annotation but the buffer is empty and + // not really modifiable + @MakeImmutable + private static final ByteBuffer EMPTY_BUFFER = ByteBuffer.allocate(0); Review comment: That won't satisfy PMD (since it returns a `ByteBuffer` which is not considered an immutable object by PMD) but it still might be valuable. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Message transmission fails with IllegalStateException in socket i/o code > ------------------------------------------------------------------------ > > Key: GEODE-8584 > URL: https://issues.apache.org/jira/browse/GEODE-8584 > Project: Geode > Issue Type: Bug > Components: membership, messaging > Affects Versions: 1.12.0, 1.13.0, 1.14.0 > Reporter: Bruce J Schuchardt > Priority: Major > Labels: pull-request-available > > Transmission of an update operation failed with a toData exception caused by > an IllegalStateException in socket i/o code. It shouldn't be possible for > this exception to happen unless multiple threads are using the buffer at the > same time. > > {noformat} > org.apache.geode.ToDataException: toData failed on dsfid=71 msg:null > at > org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1509) > at > org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:249) > at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:306) > at > org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:182) > at > org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:511) > at > org.apache.geode.distributed.internal.DistributionImpl.directChannelSend(DistributionImpl.java:346) > at > org.apache.geode.distributed.internal.DistributionImpl.send(DistributionImpl.java:291) > at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendViaMembershipManager(ClusterDistributionManager.java:2053) > at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendOutgoing(ClusterDistributionManager.java:1981) > at > org.apache.geode.distributed.internal.ClusterDistributionManager.sendMessage(ClusterDistributionManager.java:2018) > at > org.apache.geode.distributed.internal.ClusterDistributionManager.putOutgoing(ClusterDistributionManager.java:1083) > at > org.apache.geode.internal.cache.DistributedCacheOperation._distribute(DistributedCacheOperation.java:572) > at > org.apache.geode.internal.cache.DistributedCacheOperation.startOperation(DistributedCacheOperation.java:277) > at > org.apache.geode.internal.cache.DistributedCacheOperation.distribute(DistributedCacheOperation.java:318) > at > org.apache.geode.internal.cache.DistributedRegion.distributeUpdate(DistributedRegion.java:520) > at > org.apache.geode.internal.cache.DistributedRegion.basicPutPart3(DistributedRegion.java:498) > at > org.apache.geode.internal.cache.map.RegionMapPut.doAfterCompletionActions(RegionMapPut.java:307) > at > org.apache.geode.internal.cache.map.AbstractRegionMapPut.doPut(AbstractRegionMapPut.java:185) > at > org.apache.geode.internal.cache.map.AbstractRegionMapPut.runWhileLockedForCacheModification(AbstractRegionMapPut.java:119) > at > org.apache.geode.internal.cache.map.RegionMapPut.runWhileLockedForCacheModification(RegionMapPut.java:161) > at > org.apache.geode.internal.cache.map.AbstractRegionMapPut.put(AbstractRegionMapPut.java:169) > at > org.apache.geode.internal.cache.AbstractRegionMap.basicPut(AbstractRegionMap.java:2044) > at > org.apache.geode.internal.cache.LocalRegion.virtualPut(LocalRegion.java:5599) > at > org.apache.geode.internal.cache.DistributedRegion.virtualPut(DistributedRegion.java:393) > at > org.apache.geode.internal.cache.LocalRegion.virtualPut(LocalRegion.java:5577) > at > org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:157) > at > org.apache.geode.internal.cache.LocalRegion.basicPut(LocalRegion.java:5035) > at > org.apache.geode.internal.cache.LocalRegion.replaceWithCallbackArgument(LocalRegion.java:10600) > at > org.apache.geode.internal.cache.LocalRegion.replace(LocalRegion.java:10566) > [application code traces deleted] > Caused by: java.lang.IllegalArgumentException > at java.nio.Buffer.position(Buffer.java:244) > at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:96) > at sun.nio.ch.IOUtil.write(IOUtil.java:51) > at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:469) > at > org.apache.geode.internal.tcp.Connection.writeFully(Connection.java:2596) > at > org.apache.geode.internal.tcp.Connection.sendPreserialized(Connection.java:1866) > at > org.apache.geode.internal.tcp.MsgStreamer.realFlush(MsgStreamer.java:330) > at org.apache.geode.internal.tcp.MsgStreamer.write(MsgStreamer.java:390) > at > org.apache.geode.DataSerializer.writeByteArray(DataSerializer.java:1185) > at > org.apache.geode.DataSerializer.writeByteArray(DataSerializer.java:1153) > at > org.apache.geode.internal.cache.DistributedCacheOperation.writeValue(DistributedCacheOperation.java:137) > at > org.apache.geode.internal.cache.UpdateOperation$UpdateMessage.toData(UpdateOperation.java:417) > at > org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.invokeToData(DSFIDSerializerImpl.java:213) > at > org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl.write(DSFIDSerializerImpl.java:137) > at > org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1484) > ... 37 more {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)