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);
}