Mucked up the fix for primitive arrays so it didn't work for non-primitive arrays. ARGH!
diff --git a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MapTypes.java b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MapTypes.java
index 70ed690..20b3fa5 100644
--- a/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MapTypes.java
+++ b/plugins/org.eclipse.jem.proxy/proxyCommon/org/eclipse/jem/internal/proxy/common/MapTypes.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: MapTypes.java,v $
- *  $Revision: 1.6 $  $Date: 2005/07/13 15:56:31 $ 
+ *  $Revision: 1.7 $  $Date: 2005/07/14 15:14:18 $ 
  */
 package org.eclipse.jem.internal.proxy.common;
 
@@ -103,8 +103,8 @@
 			int dims = jniName.lastIndexOf('[')+1;	// Number of dimensions
 			int startType = dims;
 			StringBuffer fName = new StringBuffer(jniName.length()+(2*dims)); 
-			if (jniName.charAt(dims) == 'L')
-				fName.append(jniName.substring(startType, jniName.length()-1));	// For "Ljava.lang.String;" return "java.lang.String"
+			if (jniName.charAt(startType) == 'L')
+				fName.append(jniName.substring(startType+1, jniName.length()-1));	// For "[Ljava.lang.String;" return "java.lang.String"
 			else if (jniName.length() == startType+1) {
 				// Possible primitive
 				Class type = (Class) MAP_SHORTSIG_TO_TYPE.get(jniName.substring(startType, startType+1));