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/06/04 07:51:28 UTC
svn commit: r1131319 - in /commons/sandbox/runtime/trunk/src/main:
java/org/apache/commons/runtime/ java/org/apache/commons/runtime/io/
java/org/apache/commons/runtime/net/ native/shared/
test/org/apache/commons/runtime/
Author: mturk
Date: Sat Jun 4 05:51:27 2011
New Revision: 1131319
URL: http://svn.apache.org/viewvc?rev=1131319&view=rev
Log:
Misc tweaks
Added:
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Utils.java (with props)
Modified:
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Errno.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Local.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/AbstractAddress.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/InetSocketAddress.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Local.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalEndpoint.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java
commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketEndpoint.java
commons/sandbox/runtime/trunk/src/main/native/shared/error.c
commons/sandbox/runtime/trunk/src/main/test/org/apache/commons/runtime/TestSelectionKey.java
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Errno.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Errno.java?rev=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Errno.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/Errno.java Sat Jun 4 05:51:27 2011
@@ -16,6 +16,7 @@
package org.apache.commons.runtime;
+import java.io.IOException;
/**
* Errno class.
*
@@ -332,4 +333,27 @@ public final class Errno
*/
public static native String msg();
+ public static native void throw0(int errno, String msg)
+ throws Exception;
+ public static native void throw1(int errno)
+ throws Exception;
+
+ /**
+ * Throws an exception according to the error code.
+ */
+ public static void throwException(int errno, String msg)
+ throws Exception
+ {
+ throw0(errno, msg);
+ }
+
+ /**
+ * Throws an exception according to the error code.
+ */
+ public static void throwException(int errno)
+ throws Exception
+ {
+ throw1(errno);
+ }
+
}
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Local.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Local.java?rev=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Local.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/io/Local.java Sat Jun 4 05:51:27 2011
@@ -17,6 +17,7 @@
package org.apache.commons.runtime.io;
+
import org.apache.commons.runtime.util.StringManager;
/** Io package private constants
@@ -30,4 +31,5 @@ class Local
static {
sm = StringManager.getManager(Package);
}
+
}
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/AbstractAddress.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/AbstractAddress.java?rev=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/AbstractAddress.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/AbstractAddress.java Sat Jun 4 05:51:27 2011
@@ -23,11 +23,11 @@ package org.apache.commons.runtime.net;
*/
final class AbstractAddress extends EndpointAddress
{
- public static final int SALEN;
- private static native int size0();
+ public static final int SIZE;
+ private static native int size0();
static {
- SALEN = size0();
+ SIZE = size0();
}
/**
@@ -58,4 +58,9 @@ final class AbstractAddress extends Endp
return e.sa;
}
+ public static byte[] alloc()
+ {
+ return new byte[SIZE];
+ }
+
}
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/InetSocketAddress.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/InetSocketAddress.java?rev=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/InetSocketAddress.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/InetSocketAddress.java Sat Jun 4 05:51:27 2011
@@ -59,7 +59,7 @@ public class InetSocketAddress extends S
{
if (port < 0 || port > 65535)
throw new InvalidRangeException(Local.sm.get("port.ERANGE"));
- int salen = AbstractAddress.SALEN;
+ int salen = AbstractAddress.SIZE;
byte[] sa = AbstractSocketAddress.getnameinfo(AddressFamily.UNSPEC, hostname, null, port);
int naddr = sa.length / salen;
SocketAddress[] a = new SocketAddress[naddr];
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Local.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Local.java?rev=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Local.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Local.java Sat Jun 4 05:51:27 2011
@@ -17,6 +17,7 @@
package org.apache.commons.runtime.net;
+
import org.apache.commons.runtime.util.StringManager;
/** Net package private constants
@@ -30,4 +31,5 @@ class Local
static {
sm = StringManager.getManager(Package);
}
+
}
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalEndpoint.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalEndpoint.java?rev=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalEndpoint.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalEndpoint.java Sat Jun 4 05:51:27 2011
@@ -25,8 +25,10 @@ import java.io.SyncFailedException;
import java.net.SocketException;
import org.apache.commons.runtime.io.ClosedDescriptorException;
import org.apache.commons.runtime.io.Descriptor;
-import org.apache.commons.runtime.OverflowException;
+import org.apache.commons.runtime.Errno;
import org.apache.commons.runtime.Status;
+import org.apache.commons.runtime.OverflowException;
+import org.apache.commons.runtime.TimeoutException;
/**
* This class represents a local endpoint.
@@ -77,8 +79,12 @@ public class LocalEndpoint extends Endpo
if (sd.closed())
sd.create(SocketType.STREAM);
int rc = connect0(sd.fd(), endpoint.sockaddr(), timeout);
- if (rc != 0)
- throw new IOException(Status.describe(rc));
+ if (rc != 0) {
+ if (Status.IS_TIMEUP(rc))
+ throw new TimeoutException();
+ else
+ throw new IOException(Status.describe(rc));
+ }
}
public final void connect(EndpointAddress endpoint)
@@ -114,7 +120,7 @@ public class LocalEndpoint extends Endpo
return sd;
int rc = nonblock0(sd.fd(), block);
if (rc != 0)
- throw new SocketException(Status.describe(rc));
+ throw new IOException(Status.describe(rc));
blocking = block;
return sd;
}
@@ -157,7 +163,6 @@ public class LocalEndpoint extends Endpo
OverflowException,
IOException
{
- ops = ops & 0x000f;
if (sd.closed())
throw new ClosedDescriptorException();
AbstractSelector sel = (AbstractSelector)selector;
@@ -171,7 +176,7 @@ public class LocalEndpoint extends Endpo
throw new IllegalSelectorException();
if (att != null)
key.attach(att);
- return key.queue(ops);
+ return key.queue(ops & 0x000f);
}
}
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java?rev=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/LocalServerEndpoint.java Sat Jun 4 05:51:27 2011
@@ -177,7 +177,7 @@ public class LocalServerEndpoint extends
{
if (sd.closed())
throw new ClosedDescriptorException();
- byte[] addr = new byte[AbstractAddress.SALEN];
+ byte[] addr = AbstractAddress.alloc();
int fd = accept0(sd.fd(), addr);
LocalDescriptor ad = new LocalDescriptor(fd);
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketEndpoint.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketEndpoint.java?rev=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketEndpoint.java (original)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/SocketEndpoint.java Sat Jun 4 05:51:27 2011
@@ -146,7 +146,6 @@ public class SocketEndpoint extends Endp
OverflowException,
IOException
{
- ops = ops & 0x000f;
if (sd.closed())
throw new ClosedDescriptorException();
AbstractSelector sel = (AbstractSelector)selector;
@@ -160,7 +159,7 @@ public class SocketEndpoint extends Endp
throw new IllegalSelectorException();
if (att != null)
key.attach(att);
- return key.queue(ops);
+ return key.queue(ops & 0x000f);
}
}
Added: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Utils.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Utils.java?rev=1131319&view=auto
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Utils.java (added)
+++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Utils.java Sat Jun 4 05:51:27 2011
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.apache.commons.runtime.net;
+
+import java.io.IOException;
+
+public final class Utils
+{
+ private Utils()
+ {
+ // No instance.
+ }
+
+}
Propchange: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/net/Utils.java
------------------------------------------------------------------------------
svn:eol-style = native
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=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/error.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/error.c Sat Jun 4 05:51:27 2011
@@ -751,6 +751,7 @@ void
AcrThrowByError(JNI_STDENV, int def, int err, const char *msg)
{
int cls = def;
+ const char *str = 0;
if (ACR_STATUS_IS_EEXIST(err))
cls = ACR_EX_EEXIST;
@@ -782,7 +783,11 @@ AcrThrowByError(JNI_STDENV, int def, int
cls = ACR_EX_EBADF;
else if (err == ACR_EOVERFLOW)
cls = ACR_EX_EOVERFLOW;
- AcrThrow(env, cls, msg);
+ else if (err == ACR_ETIMEDOUT)
+ cls = ACR_EX_TIMEOUT;
+ else
+ str = msg;
+ AcrThrow(env, cls, str);
}
ACR_JNI_EXPORT(jint, Status, init0)(JNI_STDARGS)
@@ -931,7 +936,7 @@ ACR_JNI_EXPORT(jboolean, Status, is0)(JN
rv = JNI_TRUE;
break;
case 7:
- if (ACR_STATUS_IS_TIMEUP(err))
+ if (ACR_STATUS_IS_TIMEUP(err) || err == ACR_ETIMEDOUT)
rv = JNI_TRUE;
break;
default:
@@ -952,3 +957,19 @@ ACR_JNI_EXPORT(jstring, Errno, msg)(JNI_
_cr_strerror_r(AcrGetThreadError(), buf, ACR_MBUFF_SIZ);
return AcrNewJavaStringA(env, buf);
}
+
+ACR_JNI_EXPORT(void, Errno, throw0)(JNI_STDARGS, jint err, jstring msg)
+{
+ WITH_CSTR(msg) {
+ AcrThrowByError(env, ACR_EX_ESYS, err, J2S(msg));
+ } DONE_WITH_STR(msg);
+
+}
+
+ACR_JNI_EXPORT(void, Errno, throw1)(JNI_STDARGS, jint err)
+{
+ char msg[ACR_MBUFF_SIZ] = "";
+
+ _cr_strerror_r(err, msg, ACR_MBUFF_SIZ);
+ AcrThrowByError(env, ACR_EX_ESYS, err, msg);
+}
Modified: commons/sandbox/runtime/trunk/src/main/test/org/apache/commons/runtime/TestSelectionKey.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/test/org/apache/commons/runtime/TestSelectionKey.java?rev=1131319&r1=1131318&r2=1131319&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/test/org/apache/commons/runtime/TestSelectionKey.java (original)
+++ commons/sandbox/runtime/trunk/src/main/test/org/apache/commons/runtime/TestSelectionKey.java Sat Jun 4 05:51:27 2011
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.net.SocketException;
import org.testng.annotations.*;
import org.testng.Assert;
+import org.apache.commons.runtime.Errno;
public class TestSelectionKey extends Assert
{