Index: drools-core/src/main/java/org/codehaus/jfdi/interpreter/ClassTypeResolver.java =================================================================== --- drools-core/src/main/java/org/codehaus/jfdi/interpreter/ClassTypeResolver.java (revision 9410) +++ drools-core/src/main/java/org/codehaus/jfdi/interpreter/ClassTypeResolver.java (working copy) @@ -115,6 +115,32 @@ clazz = float.class; } else if ( "double".equals( className ) ) { clazz = double.class; + // Could also be a primitive array + } else if ( "boolean[]".equals( className) ) { + clazz = boolean[].class; + } else if ( "byte[]".equals( className ) ) { + clazz = byte[].class; + } else if ( "short[]".equals( className ) ) { + clazz = short[].class; + } else if ( "char[]".equals( className ) ) { + clazz = char[].class; + } else if ( "int[]".equals( className ) ) { + clazz = int[].class; + } else if ( "long[]".equals( className ) ) { + clazz = long[].class; + } else if ( "float[]".equals( className ) ) { + clazz = float[].class; + } else if ( "double[]".equals( className ) ) { + clazz = double[].class; + // Could be primitive array of objects + } else if ( className.endsWith("[]") ) { + String componentName = className.substring(0, className.length( ) -2 ); + String arrayClassName = new StringBuffer().append("[L").append(componentName).append(";").toString(); + try { + clazz = Class.forName(arrayClassName); + } catch (ClassNotFoundException e) { + clazz = null; + } } if( clazz == null ) {