Index: status.xml
===================================================================
RCS file: /home/cvs/ws-jaxme/status.xml,v
retrieving revision 1.45
diff -u -r1.45 status.xml
--- status.xml	12 Apr 2005 08:17:17 -0000	1.45
+++ status.xml	19 Apr 2005 08:14:19 -0000
@@ -22,6 +22,7 @@
     <person name="Davanum Srinivas"      email="dims at yahoo.com"          id="DS" />
     <person name="Robert Burrell Donkin" email="rdonkin at apache.org"      id="RD" />
     <person name="Changshin Lee (Ias)"   email="iasandcb at tmax.co.kr"     id="CL" />
+    <person name="Nacho G. Mac Dowell"   email=""                           id="NM" />
     <!-- Add more people here -->
   </developers>
 
@@ -29,6 +30,16 @@
   </todo>
 
   <changes>
+    <release version="0.4" date="Not yet published">
+      <action dev="NM" type="enhancement" context="js">
+        Added support for primitive arrays. See JAXME-48 in Jira.
+      </action>
+      <action dev="JW" type="fix" context="generator">
+        Fixed a "Not implemented" IllegalStateException in the
+        UnmarshallerHandlerImpl, which caused unmarshalling of
+        nested groups to fail in some cases.
+      </action>
+    </release>
     <release version="0.4beta" date="2005-Apr-17">
       <action dev="JW" type="enhancement" context="generator">
         The ObjectFactory does now contain methods for creating
Index: src/js/org/apache/ws/jaxme/js/IndentationEngineImpl.java
===================================================================
RCS file: /home/cvs/ws-jaxme/src/js/org/apache/ws/jaxme/js/IndentationEngineImpl.java,v
retrieving revision 1.3
diff -u -r1.3 IndentationEngineImpl.java
--- src/js/org/apache/ws/jaxme/js/IndentationEngineImpl.java	16 Feb 2004 23:39:55 -0000	1.3
+++ src/js/org/apache/ws/jaxme/js/IndentationEngineImpl.java	19 Apr 2005 08:14:19 -0000
@@ -18,6 +18,7 @@
 
 import java.io.IOException;
 import java.io.StringWriter;
+import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -136,10 +137,12 @@
       throw new NullPointerException("Null token detected.");
     }
     if (pTokens.getClass().isArray()) {
-      Object[] tokens = (Object[]) pTokens;
-      for (int i = 0;  i < tokens.length;  i++) {
-        checkNulls(tokens[i]);
-      }
+		if (!pTokens.getClass().getComponentType().isPrimitive()) {
+			Object[] tokens = (Object[]) pTokens;
+			for (int i = 0;  i < tokens.length;  i++) {
+				checkNulls(tokens[i]);
+			}
+		}
     } else if (pTokens instanceof Collection) {
       for (Iterator iter = ((Collection) pTokens).iterator();  iter.hasNext();  ) {
         checkNulls(iter.next());
@@ -278,11 +281,13 @@
   public void write(IndentationTarget pTarget, Object pObject)
       throws IOException {
     if (pObject.getClass().isArray()) {
-      Object[] objects = (Object[]) pObject;
-      for (int i = 0;  i < objects.length;  i++) {
-        write(pTarget, objects[i]);
-      }
-	  } else if (pObject instanceof JavaSourceObject) {
+		// We are *not* casting to Object[], because the array
+		// might be primitive.
+		int arrayLength = Array.getLength(pObject);
+		for (int i = 0;  i < arrayLength;  i++) {
+			write(pTarget, Array.get(pObject, i));
+		}
+    } else if (pObject instanceof JavaSourceObject) {
 		  pTarget.write(((JavaSourceObject) pObject).getName());
     } else if (pObject instanceof List) {
     	for (Iterator iter = ((List) pObject).iterator();  iter.hasNext();  ) {
