Author: jbellis
Date: Tue Sep 14 22:26:06 2010
New Revision: 997121
URL: http://svn.apache.org/viewvc?rev=997121&view=rev
Log:
replace List + Map with LinkedHashMap
patch by jbellis; reviewed by Nick Bailey for CASSANDRA-1504
Modified:
cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOutSession.java
Modified:
cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOutSession.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOutSession.java?rev=997121&r1=997120&r2=997121&view=diff
==============================================================================
---
cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOutSession.java
(original)
+++
cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamOutSession.java
Tue Sep 14 22:26:06 2010
@@ -64,9 +64,7 @@ public class StreamOutSession
streams.remove(context);
}
- // we need sequential and random access to the files. hence, the map and
the list.
- private final List<PendingFile> files = new ArrayList<PendingFile>();
- private final Map<String, PendingFile> fileMap = new HashMap<String,
PendingFile>();
+ private final Map<String, PendingFile> files = new LinkedHashMap<String,
PendingFile>();
private final Pair<InetAddress, Long> context;
private final SimpleCondition condition = new SimpleCondition();
@@ -94,14 +92,13 @@ public class StreamOutSession
{
if (logger.isDebugEnabled())
logger.debug("Adding file {} to be streamed.",
pendingFile.getFilename());
- files.add(pendingFile);
- fileMap.put(pendingFile.getFilename(), pendingFile);
+ files.put(pendingFile.getFilename(), pendingFile);
}
}
public void retry(String file)
{
- PendingFile pf = fileMap.get(file);
+ PendingFile pf = files.get(file);
if (pf != null)
streamFile(pf);
}
@@ -115,9 +112,8 @@ public class StreamOutSession
public void finishAndStartNext(String pfname) throws IOException
{
- PendingFile pf = fileMap.remove(pfname);
- files.remove(pf);
-
+ files.remove(pfname);
+
if (files.isEmpty())
{
if (logger.isDebugEnabled())
@@ -127,14 +123,13 @@ public class StreamOutSession
}
else
{
- streamFile(files.get(0));
+ streamFile(files.values().iterator().next());
}
}
public void removePending(PendingFile pf)
{
- files.remove(pf);
- fileMap.remove(pf.getFilename());
+ files.remove(pf.getFilename());
if (files.isEmpty())
close();
}
@@ -151,9 +146,9 @@ public class StreamOutSession
}
}
- List<PendingFile> getFiles()
+ Collection<PendingFile> getFiles()
{
- return Collections.unmodifiableList(files);
+ return files.values();
}
public static Set<InetAddress> getDestinations()