JAVA_OBJECT java_io_File_listImpl___byte_1ARRAY(JAVA_OBJECT n1)
{
    //XMLVM_BEGIN_NATIVE[java_io_File_listImpl___byte_1ARRAY]
	     // TODO: There may be memory management issues in this implementation
	     org_xmlvm_runtime_XMLVMArray *array =
	         (org_xmlvm_runtime_XMLVMArray *) __NEW_org_xmlvm_runtime_XMLVMArray();
	     array->fields.org_xmlvm_runtime_XMLVMArray.type_   =  __CLASS_org_xmlvm_runtime_XMLVMArray;
	     array->fields.org_xmlvm_runtime_XMLVMArray.length_ =  256;
	     array->fields.org_xmlvm_runtime_XMLVMArray.array_  = XMLVM_MALLOC(sizeof(JAVA_OBJECT) * 256);

	     JAVA_OBJECT *subarray = (JAVA_OBJECT *) array->fields.org_xmlvm_runtime_XMLVMArray.array_;

	     int i = 0;
	     for (i = 0; i < 256; i++) {
	         org_xmlvm_runtime_XMLVMArray *array2 =
	            (org_xmlvm_runtime_XMLVMArray *) __NEW_org_xmlvm_runtime_XMLVMArray();
	         array2->fields.org_xmlvm_runtime_XMLVMArray.type_   = __CLASS_byte;
	         array2->fields.org_xmlvm_runtime_XMLVMArray.length_ = 256;
	         array2->fields.org_xmlvm_runtime_XMLVMArray.array_  = XMLVM_MALLOC(sizeof(char) * 256);
	         subarray[i] = (JAVA_OBJECT) array2;
	     }

	     // Get the
	     char* fileName = XMLVMUtil_convertFromByteArray(n1);

	     DIR *d;
	     struct dirent *e;
	     if (d = opendir(fileName)) {
	         i = 0;
	         int j = 0;
	         while (e = readdir(d)) {
	             if (i < 256) { // TODO: What if there are more than 256 files?
	                 org_xmlvm_runtime_XMLVMArray *array2 = (org_xmlvm_runtime_XMLVMArray *) (subarray[i]);
	                 char *bytearray = array2->fields.org_xmlvm_runtime_XMLVMArray.array_;
	                 for (j = 0; j < 256; j++) {
	                     bytearray[j] = e->d_name[j];
	                     if (e->d_name[j] == 0) {
	                         array2->fields.org_xmlvm_runtime_XMLVMArray.length_ = j;
	                         break;
	                     }
	                 }
	                 i++;

	             }

	             // Add e->d_name to array!
	         }
	         array->fields.org_xmlvm_runtime_XMLVMArray.length_ =  i;
	         closedir(d);
	     } else {
	         // TODO: Throw IOException?
	     }
	     return array;
    //XMLVM_END_NATIVE
}
static JAVA_OBJECT constructor_dispatcher(JAVA_OBJECT constructor, JAVA_OBJECT arguments)
{
    JAVA_OBJECT obj = __NEW_org_xmlvm_runtime_XMLVMArray();
    java_lang_reflect_Constructor* c = (java_lang_reflect_Constructor*) constructor;
    org_xmlvm_runtime_XMLVMArray* args = (org_xmlvm_runtime_XMLVMArray*) arguments;
    JAVA_ARRAY_OBJECT* argsArray = (JAVA_ARRAY_OBJECT*) args->fields.org_xmlvm_runtime_XMLVMArray.array_;
    switch (c->fields.java_lang_reflect_Constructor.slot_) {
    case 0:
        org_xmlvm_runtime_XMLVMArray___INIT____java_lang_Class_int_java_lang_Object(obj, argsArray[0], ((java_lang_Integer*) argsArray[1])->fields.java_lang_Integer.value_, argsArray[2]);
        break;
    default:
        XMLVM_INTERNAL_ERROR();
        break;
    }
    return obj;
}