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/10/05 08:54:21 UTC

svn commit: r821701 - /commons/sandbox/runtime/trunk/src/main/native/shared/descriptor.c

Author: mturk
Date: Mon Oct  5 06:54:20 2009
New Revision: 821701

URL: http://svn.apache.org/viewvc?rev=821701&view=rev
Log:
Callbacks retun ENOTIMPL, not EINVAL if sync of flush is unsupported

Modified:
    commons/sandbox/runtime/trunk/src/main/native/shared/descriptor.c

Modified: commons/sandbox/runtime/trunk/src/main/native/shared/descriptor.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/descriptor.c?rev=821701&r1=821700&r2=821701&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/descriptor.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/descriptor.c Mon Oct  5 06:54:20 2009
@@ -21,6 +21,7 @@
 
 #include "acr.h"
 #include "acr_private.h"
+#include "acr_arch.h"
 #include "acr_error.h"
 #include "acr_clazz.h"
 #include "acr_string.h"
@@ -173,7 +174,7 @@
             cb.data = GET_IFIELD_O(0006, _O);
             if ((rc = (*handler)(_E, _O, ACR_DESC_CLOSE, &cb))) {
                 /* Throw IOException with errno message */
-                ACR_ThrowException(_E, THROW_FMARK, ACR_EX_EIO, rc);
+                ACR_THROW_IO_IF_ERR(rc);
             }
         }
     }
@@ -220,10 +221,12 @@
             cb.thiz = _O;
             cb.data = GET_IFIELD_O(0006, _O);
             if ((rc = (*handler)(_E, _O, ACR_DESC_SYNC, &cb))) {
-                if (rc == ACR_EINVAL)
-                    ACR_ThrowException(_E, THROW_NMARK, ACR_EX_ESYNC, 0);
-                else
-                    ACR_ThrowException(_E, THROW_FMARK, ACR_EX_EIO, rc);
+                if (rc == ACR_ENOTIMPL) {
+                    ACR_THROW_EX_IF_ERR(ACR_EX_ESYNC, rc);
+                }
+                else {
+                    ACR_THROW_IO_IF_ERR(rc);
+                }
             }
         }
     }
@@ -247,10 +250,12 @@
             cb.thiz = _O;
             cb.data = GET_IFIELD_O(0006, _O);
             if ((rc = (*handler)(_E, _O, ACR_DESC_FLUSH, &cb))) {
-                if (rc == ACR_EINVAL)
-                    ACR_ThrowException(_E, THROW_NMARK, ACR_EX_ESYNC, 0);
-                else
-                    ACR_ThrowException(_E, THROW_FMARK, ACR_EX_EIO, rc);
+                if (rc == ACR_ENOTIMPL) {
+                    ACR_THROW_EX_IF_ERR(ACR_EX_ESYNC, rc);
+                }
+                else {
+                    ACR_THROW_IO_IF_ERR(rc);
+                }
             }
         }
     }