feature[ats_YTDM5]: Remove some unnecessary object creation
diff --git a/org.eclipse.ote.io/src/org/eclipse/ote/io/BasicDatagramChannelRunnable.java b/org.eclipse.ote.io/src/org/eclipse/ote/io/BasicDatagramChannelRunnable.java
index f35dd12..6462e5a 100644
--- a/org.eclipse.ote.io/src/org/eclipse/ote/io/BasicDatagramChannelRunnable.java
+++ b/org.eclipse.ote.io/src/org/eclipse/ote/io/BasicDatagramChannelRunnable.java
@@ -16,10 +16,14 @@
    
    @Override
    public void doSend(DatagramChannel channel, List<DatagramChannelData> dataToSend) throws IOException {
-      for(DatagramChannelData data: dataToSend){
+	  int size = dataToSend.size();
+      for(int i = 0; i < size; i++){
+         DatagramChannelData data = dataToSend.get(i);
          data.getByteBuffer().flip();
-         for(SocketAddress address: data.getAddresses()){
-            channel.send(data.getByteBuffer(), address);
+         List<SocketAddress> addresses = data.getAddresses();
+         int innerSize = addresses.size();
+         for(int j = 0; j < innerSize; j++){
+            channel.send(data.getByteBuffer(), addresses.get(j));
             data.getByteBuffer().rewind();
          }
       }
diff --git a/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelDataPool.java b/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelDataPool.java
index 4421a15..df1ad12 100644
--- a/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelDataPool.java
+++ b/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelDataPool.java
@@ -1,6 +1,6 @@
 package org.eclipse.ote.io;
 
-import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
 
@@ -8,12 +8,12 @@
 
 public class DatagramChannelDataPool {
 
-   private final LinkedBlockingQueue<DatagramChannelData> data;
+   private final ArrayBlockingQueue<DatagramChannelData> data;
    private final DatagramChannelDataFactory factory;
    
    public DatagramChannelDataPool(DatagramChannelDataFactory factory, int max){
       this.factory = factory;
-      data = new LinkedBlockingQueue<DatagramChannelData>(max);
+      data = new ArrayBlockingQueue<DatagramChannelData>(max);
       for(int i = 0; i < max; i++){
          data.offer(factory.create(this));
       }
diff --git a/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelRunnable.java b/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelRunnable.java
index 9ac6ece..db53f7a 100644
--- a/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelRunnable.java
+++ b/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelRunnable.java
@@ -8,14 +8,14 @@
 import java.nio.channels.DatagramChannel;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ArrayBlockingQueue;
 import java.util.logging.Level;
 
 import org.eclipse.osee.framework.logging.OseeLog;
 
 public abstract class DatagramChannelRunnable implements Runnable {
 
-	private LinkedBlockingQueue<DatagramChannelData> data;
+	private ArrayBlockingQueue<DatagramChannelData> data;
 	private InetSocketAddress address;   
 
 	public DatagramChannelRunnable(InetSocketAddress address){
@@ -25,7 +25,7 @@
 	public DatagramChannelRunnable(){
    }
 
-	void setQueue(LinkedBlockingQueue<DatagramChannelData> data) {
+	void setQueue(ArrayBlockingQueue<DatagramChannelData> data) {
 		this.data = data;
 	}
 
@@ -48,7 +48,9 @@
 							continue;
 						}
 					}
-					for (DatagramChannelData data : dataToSend) {
+					int size = dataToSend.size();
+					for (int i = 0; i < size; i++) {
+						DatagramChannelData data = dataToSend.get(i);
 						if (data == DatagramChannelWorker.POISON_PILL) {
 							keepRunning = false;
 							break;
@@ -69,8 +71,10 @@
 				} catch (IOException ex){
 					OseeLog.log(getClass(), Level.SEVERE, "Error trying to send data", ex);
 				} finally {
-					for(DatagramChannelData datagramChannelData: dataToSend){
-						datagramChannelData.postProcess();
+					int size = dataToSend.size();
+					for (int i = 0; i < size; i++) {
+						DatagramChannelData data = dataToSend.get(i);
+						data.postProcess();
 					}
 				}
 			} 
diff --git a/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelWorker.java b/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelWorker.java
index dd98110..ed59bf9 100644
--- a/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelWorker.java
+++ b/org.eclipse.ote.io/src/org/eclipse/ote/io/DatagramChannelWorker.java
@@ -1,19 +1,19 @@
 package org.eclipse.ote.io;
 
-import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ArrayBlockingQueue;
 
 import org.eclipse.ote.io.internal.PoisonPill;
 
 public class DatagramChannelWorker {
    final static PoisonPill POISON_PILL = new PoisonPill();
-   private final LinkedBlockingQueue<DatagramChannelData> data;
+   private final ArrayBlockingQueue<DatagramChannelData> data;
    private final DatagramChannelRunnable runnable;
    private final String threadName;
    
    public DatagramChannelWorker(String threadName, DatagramChannelRunnable runnable){
       this.runnable = runnable;
       this.threadName = threadName;
-      this.data = new LinkedBlockingQueue<DatagramChannelData>();
+      this.data = new ArrayBlockingQueue<DatagramChannelData>(1000);
       
       runnable.setQueue(data);
    }