You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2009/09/09 10:15:44 UTC

svn commit: r812814 - in /commons/sandbox/runtime/trunk/src/main: java/org/apache/commons/runtime/io/Status.java native/shared/error.c

Author: mturk
Date: Wed Sep  9 08:15:44 2009
New Revision: 812814

URL: http://svn.apache.org/viewvc?rev=812814&view=rev
Log:
Sync errors between native and Java

Modified:
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java
    commons/sandbox/runtime/trunk/src/main/native/shared/error.c

Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java?rev=812814&r1=812813&r2=812814&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Status.java Wed Sep  9 08:15:44 2009
@@ -36,72 +36,297 @@
     private static native void init0(int[] i);
 
     static {
-        int [] i = new int[32];
+        int [] i = new int[128];
         init0(i);
 
-        EACCES              = i[1];
-        EEXIST              = i[2];
-        ENAMETOOLONG        = i[3];
-        ENOENT              = i[4];
-        ENOTDIR             = i[5];
-        ENOSPC              = i[6];
-        ENOMEM              = i[7];
-        EMFILE              = i[8];
-        ENFILE              = i[9];
-        EBADF               = i[10];
-        EINVAL              = i[11];
-        ESPIPE              = i[12];
-        EAGAIN              = i[13];
-        EINTR               = i[14];
-        ENOTSOCK            = i[15];
-        ECONNREFUSED        = i[16];
-        EINPROGRESS         = i[17];
-        ECONNABORTED        = i[18];
-        ECONNRESET          = i[19];
-        EHOSTUNREACH        = i[20];
-        ENETUNREACH         = i[21];
-        EFTYPE              = i[22];
-        EPIPE               = i[23];
-        EXDEV               = i[24];
-        ENOTEMPTY           = i[25];
-        EAFNOSUPPORT        = i[26];
+        OS_LAST_CANONERR    = i[0];
+        EPERM               = i[1];
+        ENOENT              = i[2];
+        ESRCH               = i[3];
+        EINTR               = i[4];
+        EIO                 = i[5];
+        ENXIO               = i[6];
+        E2BIG               = i[7];
+        ENOEXEC             = i[8];
+        EBADF               = i[9];
+        ECHILD              = i[10];
+        EDEADLK             = i[11];
+        ENOMEM              = i[12];
+        EACCES              = i[13];
+        EFAULT              = i[14];
+        ENOTBLK             = i[15];
+        EBUSY               = i[16];
+        EEXIST              = i[17];
+        EXDEV               = i[18];
+        ENODEV              = i[19];
+        ENOTDIR             = i[20];
+        EISDIR              = i[21];
+        EINVAL              = i[22];
+        ENFILE              = i[23];
+        EMFILE              = i[24];
+        ENOTTY              = i[25];
+        ETXTBSY             = i[26];
+        EFBIG               = i[27];
+        ENOSPC              = i[28];
+        ESPIPE              = i[29];
+        EROFS               = i[30];
+        EMLINK              = i[31];
+        EPIPE               = i[32];
+        EDOM                = i[33];
+        ERANGE              = i[34];
+        EAGAIN              = i[35];
+        EWOULDBLOCK         = i[36];
+        EINPROGRESS         = i[37];
+        EALREADY            = i[38];
+        ENOTSOCK            = i[39];
+        EDESTADDRREQ        = i[40];
+        EMSGSIZE            = i[41];
+        EPROTOTYPE          = i[42];
+        ENOPROTOOPT         = i[43];
+        EPROTONOSUPPORT     = i[44];
+        ESOCKTNOSUPPORT     = i[45];
+        EOPNOTSUPP          = i[46];
+        EPFNOSUPPORT        = i[47];
+        EAFNOSUPPORT        = i[48];
+        EADDRINUSE          = i[49];
+        EADDRNOTAVAIL       = i[50];
+        ENETDOWN            = i[51];
+        ENETUNREACH         = i[52];
+        ENETRESET           = i[53];
+        ECONNABORTED        = i[54];
+        ECONNRESET          = i[55];
+        ENOBUFS             = i[56];
+        EISCONN             = i[57];
+        ENOTCONN            = i[58];
+        ESHUTDOWN           = i[59];
+        ETOOMANYREFS        = i[60];
+        ETIMEDOUT           = i[61];
+        ECONNREFUSED        = i[62];
+        ELOOP               = i[63];
+        ENAMETOOLONG        = i[64];
+        EHOSTDOWN           = i[65];
+        EHOSTUNREACH        = i[66];
+        ENOTEMPTY           = i[67];
+        EPROCLIM            = i[68];
+        EUSERS              = i[69];
+        EDQUOT              = i[70];
+        ESTALE              = i[71];
+        EREMOTE             = i[72];
+        EBADRPC             = i[73];
+        ERPCMISMATCH        = i[74];
+        EPROGUNAVAIL        = i[75];
+        EPROGMISMATCH       = i[76];
+        EPROCUNAVAIL        = i[77];
+        ENOLCK              = i[78];
+        ENOSYS              = i[79];
+        EFTYPE              = i[80];
+        EAUTH               = i[81];
+        ENEEDAUTH           = i[82];
+        EIPSEC              = i[83];
+        ENOATTR             = i[84];
+        EILSEQ              = i[85];
+        ENOMEDIUM           = i[86];
+        EMEDIUMTYPE         = i[87];
+        EOVERFLOW           = i[88];
+        ECANCELED           = i[89];
+        EIDRM               = i[90];
+        ENOMSG              = i[91];
 
     }
 
     /* ACR CANONICAL ERROR VALUES */
+    /** Operation not permitted */
+    public static final int EPERM;
+    /** No such file or directory */
+    public static final int ENOENT;
+    /** No such process */
+    public static final int ESRCH;
+    /** Interrupted system call */
+    public static final int EINTR;
+    /** Input/output error */
+    public static final int EIO;
+    /** Device not configured */
+    public static final int ENXIO;
+    /** Argument list too long */
+    public static final int E2BIG;
+    /** Exec format error */
+    public static final int ENOEXEC;
+    /** Bad file descriptor */
+    public static final int EBADF;
+    /** No child processes */
+    public static final int ECHILD;
+    /** Resource deadlock avoided */
+    public static final int EDEADLK;
+    /** Cannot allocate memory */
+    public static final int ENOMEM;
+    /** Permission denied */
     public static final int EACCES;
+    /** Bad address */
+    public static final int EFAULT;
+    /** Block device required */
+    public static final int ENOTBLK;
+    /** Device busy */
+    public static final int EBUSY;
+    /** File exists */
     public static final int EEXIST;
-    public static final int ENAMETOOLONG;
-    public static final int ENOENT;
+    /** Cross-device link */
+    public static final int EXDEV;
+    /** Operation not supported by device */
+    public static final int ENODEV;
+    /** Not a directory */
     public static final int ENOTDIR;
-    public static final int ENOSPC;
-    public static final int ENOMEM;
-    public static final int EMFILE;
-    public static final int ENFILE;
-    public static final int EBADF;
+    /** Is a directory */
+    public static final int EISDIR;
+    /** Invalid argument */
     public static final int EINVAL;
+    /** Too many open files in system */
+    public static final int ENFILE;
+    /** Too many open files */
+    public static final int EMFILE;
+    /** Inappropriate ioctl for device */
+    public static final int ENOTTY;
+    /** Text file busy */
+    public static final int ETXTBSY;
+    /** File too large */
+    public static final int EFBIG;
+    /** No space left on device */
+    public static final int ENOSPC;
+    /** Illegal seek */
     public static final int ESPIPE;
+    /** Read-only file system */
+    public static final int EROFS;
+    /** Too many links */
+    public static final int EMLINK;
+    /** Broken pipe */
+    public static final int EPIPE;
+    /** Numerical argument out of domain */
+    public static final int EDOM;
+    /** Result too large */
+    public static final int ERANGE;
+    /** Resource temporarily unavailable */
     public static final int EAGAIN;
-    public static final int EINTR;
-    public static final int ENOTSOCK;
-    public static final int ECONNREFUSED;
+    /** Operation would block */
+    public static final int EWOULDBLOCK;
+    /** Operation now in progress */
     public static final int EINPROGRESS;
+    /** Operation already in progress */
+    public static final int EALREADY;
+    /** Socket operation on non-socket */
+    public static final int ENOTSOCK;
+    /** Destination address required */
+    public static final int EDESTADDRREQ;
+    /** Message too long */
+    public static final int EMSGSIZE;
+    /** Protocol wrong type for socket */
+    public static final int EPROTOTYPE;
+    /** Protocol not available */
+    public static final int ENOPROTOOPT;
+    /** Protocol not supported */
+    public static final int EPROTONOSUPPORT;
+    /** Socket type not supported */
+    public static final int ESOCKTNOSUPPORT;
+    /** Operation not supported */
+    public static final int EOPNOTSUPP;
+    /** Protocol family not supported */
+    public static final int EPFNOSUPPORT;
+    /** Address family not supported by protocol family */
+    public static final int EAFNOSUPPORT;
+    /** Address already in use */
+    public static final int EADDRINUSE;
+    /** Can't assign requested address */
+    public static final int EADDRNOTAVAIL;
+    /** Network is down */
+    public static final int ENETDOWN;
+    /** Network is unreachable */
+    public static final int ENETUNREACH;
+    /** Network dropped connection on reset */
+    public static final int ENETRESET;
+    /** Software caused connection abort */
     public static final int ECONNABORTED;
+    /** Connection reset by peer */
     public static final int ECONNRESET;
+    /** No buffer space available */
+    public static final int ENOBUFS;
+    /** Socket is already connected */
+    public static final int EISCONN;
+    /** Socket is not connected */
+    public static final int ENOTCONN;
+    /** Can't send after socket shutdown */
+    public static final int ESHUTDOWN;
+    /** Too many references: can't splice */
+    public static final int ETOOMANYREFS;
+    /** Operation timed out */
+    public static final int ETIMEDOUT;
+    /** Connection refused */
+    public static final int ECONNREFUSED;
+    /** Too many levels of symbolic links */
+    public static final int ELOOP;
+    /** File name too long */
+    public static final int ENAMETOOLONG;
+    /** Host is down */
+    public static final int EHOSTDOWN;
+    /** No route to host */
     public static final int EHOSTUNREACH;
-    public static final int ENETUNREACH;
-    public static final int EFTYPE;
-    public static final int EPIPE;
-    public static final int EXDEV;
+    /** Directory not empty */
     public static final int ENOTEMPTY;
-    public static final int EAFNOSUPPORT;
+    /** Too many processes */
+    public static final int EPROCLIM;
+    /** Too many users */
+    public static final int EUSERS;
+    /** Disk quota exceeded */
+    public static final int EDQUOT;
+    /** Stale NFS file handle */
+    public static final int ESTALE;
+    /** Too many levels of remote in path */
+    public static final int EREMOTE;
+    /** RPC struct is bad */
+    public static final int EBADRPC;
+    /** RPC version wrong */
+    public static final int ERPCMISMATCH;
+    /** RPC prog. not avail */
+    public static final int EPROGUNAVAIL;
+    /** Program version wrong */
+    public static final int EPROGMISMATCH;
+    /** Bad procedure for program */
+    public static final int EPROCUNAVAIL;
+    /** No locks available */
+    public static final int ENOLCK;
+    /** Function not implemented */
+    public static final int ENOSYS;
+    /** Inappropriate file type or format */
+    public static final int EFTYPE;
+    /** Authentication error */
+    public static final int EAUTH;
+    /** Need authenticator */
+    public static final int ENEEDAUTH;
+    /** IPsec processing failure */
+    public static final int EIPSEC;
+    /** Attribute not found */
+    public static final int ENOATTR;
+    /** Illegal byte sequence */
+    public static final int EILSEQ;
+    /** No medium found */
+    public static final int ENOMEDIUM;
+    /** Wrong Medium Type */
+    public static final int EMEDIUMTYPE;
+    /** Conversion overflow */
+    public static final int EOVERFLOW;
+    /** Operation canceled */
+    public static final int ECANCELED;
+    /** Identifier removed */
+    public static final int EIDRM;
+    /** No message of desired type */
+    public static final int ENOMSG;
 
 
+    /* Hard coded definitions for acr_error.h
+     */
     private static final int OS_START_ERROR         =  20000;
     private static final int OS_START_STATUS        =  70000;
     private static final int UTIL_START_STATUS      = 100000;
     private static final int OS_START_USERERR       = 120000;
     private static final int OS_START_CANONERR      = 620000;
+    private static final int OS_LAST_CANONERR;
     private static final int OS_START_EAIERR        = 670000;
     private static final int OS_START_SYSERR        = 720000;
     private static final int OS_ERRSPACE_SIZE       =  50000;
@@ -152,8 +377,7 @@
     /* ACR private errors added to the std APR errors */
     public static final int EISNULL                 = OS_START_ERROR + 100;
     public static final int EINVALSIZ               = OS_START_ERROR + 101;
-    public static final int ERANGE                  = OS_START_ERROR + 102;
-    public static final int ECLASSNOTFOUND          = OS_START_ERROR + 103;
+    public static final int ECLASSNOTFOUND          = OS_START_ERROR + 102;
 
 
     public static final int INCHILD                 = OS_START_STATUS +  1;
@@ -180,7 +404,6 @@
     public static final int EINIT                   = OS_START_STATUS + 22;
     public static final int ENOTIMPL                = OS_START_STATUS + 23;
     public static final int EMISMATCH               = OS_START_STATUS + 24;
-    public static final int EBUSY                   = OS_START_STATUS + 25;
 
     /** Native system error */
     public static boolean IS_NATIVE_ERROR(int s)

Modified: commons/sandbox/runtime/trunk/src/main/native/shared/error.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/error.c?rev=812814&r1=812813&r2=812814&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/error.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/error.c Wed Sep  9 08:15:44 2009
@@ -19,6 +19,7 @@
 #include "acr_arch.h"
 #include "acr_port.h"
 #include "acr_error.h"
+#include "acr_memory.h"
 #include "acr_string.h"
 #include "acr_vm.h"
 
@@ -693,39 +694,108 @@
 ACR_JNI_EXPORT_DECLARE(void, io_Status, init0)(ACR_JNISTDARGS,
                                                jintArray ra)
 {
-    jint i[32];
+    jint *i;
 
     UNREFERENCED_O;
 
-    i[0]  = 0;
-    i[1]  = ACR_EACCES;
-    i[2]  = ACR_EEXIST;
-    i[3]  = ACR_ENAMETOOLONG;
-    i[4]  = ACR_ENOENT;
-    i[5]  = ACR_ENOTDIR;
-    i[6]  = ACR_ENOSPC;
-    i[7]  = ACR_ENOMEM;
-    i[8]  = ACR_EMFILE;
-    i[9]  = ACR_ENFILE;
-    i[10] = ACR_EBADF;
-    i[11] = ACR_EINVAL;
-    i[12] = ACR_ESPIPE;
-    i[13] = ACR_EAGAIN;
-    i[14] = ACR_EINTR;
-    i[15] = ACR_ENOTSOCK;
-    i[16] = ACR_ECONNREFUSED;
-    i[17] = ACR_EINPROGRESS;
-    i[18] = ACR_ECONNABORTED;
-    i[19] = ACR_ECONNRESET;
-    i[20] = ACR_EHOSTUNREACH;
-    i[21] = ACR_ENETUNREACH;
-    i[22] = ACR_EFTYPE;
-    i[23] = ACR_EPIPE;
-    i[24] = ACR_EXDEV;
-    i[25] = ACR_ENOTEMPTY;
-    i[26] = ACR_EAFNOSUPPORT;
-    i[27] = ACR_E2BIG;
+    if (!(i = (jint *)ACR_Calloc(_E, THROW_FMARK, 128 * sizeof(jint)))) {
+        /* Exception was aleady thrown */
+        return;
+    }
+    i[0]  = ACR_OS_LAST_CANONERR - ACR_OS_START_CANONERR;
+    i[1]  = ACR_EPERM;
+    i[2]  = ACR_ENOENT;
+    i[3]  = ACR_ESRCH;
+    i[4]  = ACR_EINTR;
+    i[5]  = ACR_EIO;
+    i[6]  = ACR_ENXIO;
+    i[7]  = ACR_E2BIG;
+    i[8]  = ACR_ENOEXEC;
+    i[9]  = ACR_EBADF;
+    i[10] = ACR_ECHILD;
+    i[11] = ACR_EDEADLK;
+    i[12] = ACR_ENOMEM;
+    i[13] = ACR_EACCES;
+    i[14] = ACR_EFAULT;
+    i[15] = ACR_ENOTBLK;
+    i[16] = ACR_EBUSY;
+    i[17] = ACR_EEXIST;
+    i[18] = ACR_EXDEV;
+    i[19] = ACR_ENODEV;
+    i[20] = ACR_ENOTDIR;
+    i[21] = ACR_EISDIR;
+    i[22] = ACR_EINVAL;
+    i[23] = ACR_ENFILE;
+    i[24] = ACR_EMFILE;
+    i[25] = ACR_ENOTTY;
+    i[26] = ACR_ETXTBSY;
+    i[27] = ACR_EFBIG;
+    i[28] = ACR_ENOSPC;
+    i[29] = ACR_ESPIPE;
+    i[30] = ACR_EROFS;
+    i[31] = ACR_EMLINK;
+    i[32] = ACR_EPIPE;
+    i[33] = ACR_EDOM;
+    i[34] = ACR_ERANGE;
+    i[35] = ACR_EAGAIN;
+    i[36] = ACR_EWOULDBLOCK;
+    i[37] = ACR_EINPROGRESS;
+    i[38] = ACR_EALREADY;
+    i[39] = ACR_ENOTSOCK;
+    i[40] = ACR_EDESTADDRREQ;
+    i[41] = ACR_EMSGSIZE;
+    i[42] = ACR_EPROTOTYPE;
+    i[43] = ACR_ENOPROTOOPT;
+    i[44] = ACR_EPROTONOSUPPORT;
+    i[45] = ACR_ESOCKTNOSUPPORT;
+    i[46] = ACR_EOPNOTSUPP;
+    i[47] = ACR_EPFNOSUPPORT;
+    i[48] = ACR_EAFNOSUPPORT;
+    i[49] = ACR_EADDRINUSE;
+    i[50] = ACR_EADDRNOTAVAIL;
+    i[51] = ACR_ENETDOWN;
+    i[52] = ACR_ENETUNREACH;
+    i[53] = ACR_ENETRESET;
+    i[54] = ACR_ECONNABORTED;
+    i[55] = ACR_ECONNRESET;
+    i[56] = ACR_ENOBUFS;
+    i[57] = ACR_EISCONN;
+    i[58] = ACR_ENOTCONN;
+    i[59] = ACR_ESHUTDOWN;
+    i[60] = ACR_ETOOMANYREFS;
+    i[61] = ACR_ETIMEDOUT;
+    i[62] = ACR_ECONNREFUSED;
+    i[63] = ACR_ELOOP;
+    i[64] = ACR_ENAMETOOLONG;
+    i[65] = ACR_EHOSTDOWN;
+    i[66] = ACR_EHOSTUNREACH;
+    i[67] = ACR_ENOTEMPTY;
+    i[68] = ACR_EPROCLIM;
+    i[69] = ACR_EUSERS;
+    i[70] = ACR_EDQUOT;
+    i[71] = ACR_ESTALE;
+    i[72] = ACR_EREMOTE;
+    i[73] = ACR_EBADRPC;
+    i[74] = ACR_ERPCMISMATCH;
+    i[75] = ACR_EPROGUNAVAIL;
+    i[76] = ACR_EPROGMISMATCH;
+    i[77] = ACR_EPROCUNAVAIL;
+    i[78] = ACR_ENOLCK;
+    i[79] = ACR_ENOSYS;
+    i[80] = ACR_EFTYPE;
+    i[81] = ACR_EAUTH;
+    i[82] = ACR_ENEEDAUTH;
+    i[83] = ACR_EIPSEC;
+    i[84] = ACR_ENOATTR;
+    i[85] = ACR_EILSEQ;
+    i[86] = ACR_ENOMEDIUM;
+    i[87] = ACR_EMEDIUMTYPE;
+    i[88] = ACR_EOVERFLOW;
+    i[89] = ACR_ECANCELED;
+    i[90] = ACR_EIDRM;
+    i[91] = ACR_ENOMSG;
 
-    (*_E)->SetIntArrayRegion(_E, ra, 0, 32, &i[0]);
+    (*_E)->SetIntArrayRegion(_E, ra, 0, 128, i);
+    x_free(i);
 }