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 2011/04/13 18:07:00 UTC

svn commit: r1091838 - in /commons/sandbox/runtime/trunk/src/main: java/org/apache/commons/runtime/ java/org/apache/commons/runtime/exception/ native/include/acr/ native/os/unix/ native/shared/

Author: mturk
Date: Wed Apr 13 16:07:00 2011
New Revision: 1091838

URL: http://svn.apache.org/viewvc?rev=1091838&view=rev
Log:
Rename system exception class

Added:
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/SystemException.java
      - copied, changed from r1084131, commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/OperatingSystemException.java
Removed:
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/OperatingSystemException.java
Modified:
    commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/PosixSemaphore.java
    commons/sandbox/runtime/trunk/src/main/native/include/acr/error.h
    commons/sandbox/runtime/trunk/src/main/native/os/unix/semaphore.c
    commons/sandbox/runtime/trunk/src/main/native/shared/error.c

Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/PosixSemaphore.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/PosixSemaphore.java?rev=1091838&r1=1091837&r2=1091838&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/PosixSemaphore.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/PosixSemaphore.java Wed Apr 13 16:07:00 2011
@@ -16,6 +16,9 @@
 package org.apache.commons.runtime;
 
 import java.io.IOException;
+import org.apache.commons.runtime.exception.AlreadyExistsException;
+import org.apache.commons.runtime.exception.NoSuchObjectException;
+import org.apache.commons.runtime.exception.SystemException;
 
 /**
  * PosixSemaphore class.
@@ -32,4 +35,24 @@ final class PosixSemaphore extends Semap
         // No Instance
     }
 
+    private static native int  unlink0(String name);
+    private static native long create0(String name, int value)
+        throws IllegalAccessException,
+               IllegalArgumentException,
+               AlreadyExistsException,
+               SystemException;
+    private static native long open0(String name)
+        throws IllegalAccessException,
+               IllegalArgumentException,
+               NoSuchObjectException,
+               SystemException;
+    
+    private static native int  close0(long sema);
+    private static native int  wait0(long sema);
+    private static native int  try0(long sema);
+    private static native int  release0(long sema);
+
+    // OS semaphore handle (sem_t)
+    private long sd;
+
 }

Copied: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/SystemException.java (from r1084131, commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/OperatingSystemException.java)
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/SystemException.java?p2=commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/SystemException.java&p1=commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/OperatingSystemException.java&r1=1084131&r2=1091838&rev=1091838&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/OperatingSystemException.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/exception/SystemException.java Wed Apr 13 16:07:00 2011
@@ -17,21 +17,21 @@
 package org.apache.commons.runtime.exception;
 
 /**
- * OperatingSystemException
+ * SystemException
  *
  * @author Mladen Turk
  *
  */
 
-public class OperatingSystemException extends RuntimeException
+public class SystemException extends RuntimeException
 {
 
-    public OperatingSystemException()
+    public SystemException()
     {
         super();
     }
 
-    public OperatingSystemException(String msg)
+    public SystemException(String msg)
     {
         super(msg);
     }

Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr/error.h
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr/error.h?rev=1091838&r1=1091837&r2=1091838&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/acr/error.h (original)
+++ commons/sandbox/runtime/trunk/src/main/native/include/acr/error.h Wed Apr 13 16:07:00 2011
@@ -58,7 +58,7 @@ enum {
     ACR_EX_ESOCK,           /* java/net/SocketException */
     ACR_EX_EEXIST,          /* exception/AlreadyExistsException */
     ACR_EX_ENOENT,          /* exception/NoSuchObjectException */
-    ACR_EX_OSERR,           /* exception/OperatingSystemException */
+    ACR_EX_ESYS,            /* exception/SystemException */
     ACR_EX_ETIMEOUT,        /* exception/TimeoutException */
     ACR_EX_UNSUPPORTED,     /* exception/UnsupportedOperatingSystemException */
     ACR_EX_LEN
@@ -1606,9 +1606,11 @@ ACR_INLINE(DWORD) AcrNetOsError()
 #if defined(DEBUG) || defined(_DEBUG)
 #define ACR_THROW(CL, ER)       AcrDebugThrowException(env, __FILE_FUNC_LINE__, (CL), (ER))
 #define ACR_THROW_OS_ERROR(CL)  AcrDebugThrowException(env, __FILE_FUNC_LINE__, (CL), ACR_GET_OS_ERROR())
+#define ACR_THROW_SYS_ERROR()   AcrDebugThrowException(env, __FILE_FUNC_LINE__, ACR_EX_ESYS, ACR_GET_OS_ERROR())
 #else
 #define ACR_THROW(CL, ER)       AcrThrowException(env, (CL), (ER))
 #define ACR_THROW_OS_ERROR(CL)  AcrThrowException(env, (CL), ACR_GET_OS_ERROR())
+#define ACR_THROW_SYS_ERROR()   AcrThrowException(env, ACR_EX_ESYS, ACR_GET_OS_ERROR())
 #endif
 #define ACR_THROW_MSG(CL, MS)   AcrThrow(env, (CL), MS)
 

Modified: commons/sandbox/runtime/trunk/src/main/native/os/unix/semaphore.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/unix/semaphore.c?rev=1091838&r1=1091837&r2=1091838&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/os/unix/semaphore.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/os/unix/semaphore.c Wed Apr 13 16:07:00 2011
@@ -69,11 +69,14 @@ ACR_JNI_EXPORT(jobject, Semaphore, getIm
     return (*env)->NewObject(env, _clazzn.i, J4MID(0000));
 }
 
-ACR_JNI_EXPORT(void, PosixSemaphore, unlink0)(JNI_STDARGS, jstring name)
+ACR_JNI_EXPORT(jint, PosixSemaphore, unlink0)(JNI_STDARGS, jstring name)
 {
+    int rc = 0;
     WITH_CSTR(name) {
-        sem_unlink(J2S(name));        
-    } DONE_WITH_STR(name);    
+        if (sem_unlink(J2S(name)) == -1)
+            rc = ACR_GET_OS_ERROR();
+    } DONE_WITH_STR(name);
+    return rc;
 }
 
 ACR_JNI_EXPORT(jlong, PosixSemaphore, create0)(JNI_STDARGS,
@@ -94,7 +97,7 @@ ACR_JNI_EXPORT(jlong, PosixSemaphore, cr
                 ACR_THROW(ACR_EX_EACCES, 0);
             }
             else {
-                ACR_THROW_OS_ERROR(ACR_EX_EIO);                
+                ACR_THROW_SYS_ERROR();                
             }
         }
     } DONE_WITH_STR(name);    
@@ -120,24 +123,22 @@ ACR_JNI_EXPORT(jlong, PosixSemaphore, op
                 ACR_THROW(ACR_EX_EACCES, 0);
             }
             else {
-                ACR_THROW_OS_ERROR(ACR_EX_EIO);                
+                ACR_THROW_SYS_ERROR();                
             }
-            ACR_THROW_OS_ERROR(ACR_EX_EIO);                
         }
     } DONE_WITH_STR(name);    
     
     return P2J(sp);
 }
 
-ACR_JNI_EXPORT(void, PosixSemaphore, close0)(JNI_STDARGS, jlong sem)
+ACR_JNI_EXPORT(jint, PosixSemaphore, close0)(JNI_STDARGS, jlong sem)
 {
     sem_t *sp = J2P(sem, sem_t *);
 
-    if (sp != SEM_FAILED) {
-        if (sem_close(sp)) {
-            ACR_THROW_OS_ERROR(ACR_EX_OSERR);
-        }
-    }
+    if (sem_close(sp) == -1)
+        return ACR_GET_OS_ERROR();
+    else
+        return 0;
 }
 
 ACR_JNI_EXPORT(jint, PosixSemaphore, wait0)(JNI_STDARGS, jlong sem)

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=1091838&r1=1091837&r2=1091838&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/error.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/error.c Wed Apr 13 16:07:00 2011
@@ -52,7 +52,7 @@ static struct {
     { 0, "java/net/SocketException"                             },
     { 0, ACR_EXCEPTION_CP "AlreadyExistsException"              },    
     { 0, ACR_EXCEPTION_CP "NoSuchObjectException"               },
-    { 0, ACR_EXCEPTION_CP "OperatingSystemException"            },
+    { 0, ACR_EXCEPTION_CP "SystemException"                     },
     { 0, ACR_EXCEPTION_CP "TimeoutException"                    },
     { 0, ACR_EXCEPTION_CP "UnsupportedOperatingSystemException" },
     { 0, 0                                                      }