Fixed a crash caused by trying to modify an immutable list.

This commit is contained in:
akwizgran
2013-11-19 23:23:07 +00:00
parent cd147d7861
commit a2aa13051a

View File

@@ -8,6 +8,7 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.security.GeneralSecurityException; import java.security.GeneralSecurityException;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
@@ -184,7 +185,10 @@ abstract class DuplexConnection implements DatabaseListener {
} else if(reader.hasRequest()) { } else if(reader.hasRequest()) {
Request r = reader.readRequest(); Request r = reader.readRequest();
if(LOG.isLoggable(INFO)) LOG.info("Received request"); if(LOG.isLoggable(INFO)) LOG.info("Received request");
dbExecutor.execute(new GenerateBatches(r.getMessageIds())); // Make a mutable copy of the requested IDs
Collection<MessageId> requested = r.getMessageIds();
requested = new ArrayList<MessageId>(requested);
dbExecutor.execute(new GenerateBatches(requested));
} else if(reader.hasRetentionAck()) { } else if(reader.hasRetentionAck()) {
RetentionAck a = reader.readRetentionAck(); RetentionAck a = reader.readRetentionAck();
if(LOG.isLoggable(INFO)) LOG.info("Received retention ack"); if(LOG.isLoggable(INFO)) LOG.info("Received retention ack");