diff --git a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/BooleanArrayField.java b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/BooleanArrayField.java
index f0017f6d4b5e30a9f9fb01f4697a453295870a69..75a9fe174d3cd4bffafce7c9163b60abf7586d07 100644
--- a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/BooleanArrayField.java
+++ b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/BooleanArrayField.java
@@ -71,7 +71,7 @@ public class BooleanArrayField extends Field {
     }
     value = new boolean[currentSize];
     for (int i = 0; i < currentSize; i++) {
-      value[i] = (Boolean) type.deserialize(buffer);
+      value[i] = buffer.readByte() == 1;
     }
   }
 
diff --git a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/ByteArrayField.java b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/ByteArrayField.java
index 7f5a543be7340af64d9bd9419cc5790679229ea5..02e08bfbc58a7ed452cdb2b951a4cd2926090219 100644
--- a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/ByteArrayField.java
+++ b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/ByteArrayField.java
@@ -71,7 +71,7 @@ public class ByteArrayField extends Field {
     }
     value = new byte[currentSize];
     for (int i = 0; i < currentSize; i++) {
-      value[i] = (Byte) type.deserialize(buffer);
+      value[i] = buffer.readByte();
     }
   }
 
diff --git a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/DoubleArrayField.java b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/DoubleArrayField.java
index 8b4ad794c3bb12c0e6303f35c513864edb8c3fcc..a0c3945f0dc4e1b7d29a3c50a7ce979e524f5112 100644
--- a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/DoubleArrayField.java
+++ b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/DoubleArrayField.java
@@ -71,7 +71,7 @@ public class DoubleArrayField extends Field {
     }
     value = new double[currentSize];
     for (int i = 0; i < currentSize; i++) {
-      value[i] = (Double) type.deserialize(buffer);
+      value[i] = buffer.readDouble();
     }
   }
 
diff --git a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/FloatArrayField.java b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/FloatArrayField.java
index 23786e7ac599c433383899ed63779c40e87529ad..fcbf50c29787df091a5a431a5e3f48fdc9c8be73 100644
--- a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/FloatArrayField.java
+++ b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/FloatArrayField.java
@@ -71,7 +71,7 @@ public class FloatArrayField extends Field {
     }
     value = new float[currentSize];
     for (int i = 0; i < currentSize; i++) {
-      value[i] = (Float) type.deserialize(buffer);
+      value[i] = buffer.readFloat();
     }
   }
 
diff --git a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/IntegerArrayField.java b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/IntegerArrayField.java
index d40982d2d3b2b46b7f3c69b388eb9bb14ec6d704..adb0753f44f8fb2e81e51ffabd46ce62fe702a27 100644
--- a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/IntegerArrayField.java
+++ b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/IntegerArrayField.java
@@ -71,7 +71,7 @@ public class IntegerArrayField extends Field {
     }
     value = new int[currentSize];
     for (int i = 0; i < currentSize; i++) {
-      value[i] = (Integer) type.deserialize(buffer);
+      value[i] = buffer.readInt();
     }
   }
 
diff --git a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/LongArrayField.java b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/LongArrayField.java
index 8f44677f2718d029a3b6aaf62c8edcd14685cf44..8c2a611b24f4425517c70f27c92bd8dac4dd45f2 100644
--- a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/LongArrayField.java
+++ b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/LongArrayField.java
@@ -73,7 +73,7 @@ public class LongArrayField extends Field {
     }
     value = new long[currentSize];
     for (int i = 0; i < currentSize; i++) {
-      value[i] = (Long) type.deserialize(buffer);
+      value[i] = buffer.readLong();
     }
   }
 
diff --git a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/ShortArrayField.java b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/ShortArrayField.java
index 02dafafe712b1e31d62785d7bab6bf075775d594..e77b72a34e00eb4c188dcd0cb799b09a205dcb93 100644
--- a/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/ShortArrayField.java
+++ b/rosjava_bootstrap/src/main/java/org/ros/internal/message/field/ShortArrayField.java
@@ -71,7 +71,7 @@ public class ShortArrayField extends Field {
     }
     value = new short[currentSize];
     for (int i = 0; i < currentSize; i++) {
-      value[i] = (Short) type.deserialize(buffer);
+      value[i] = buffer.readShort();
     }
   }