You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2007/10/25 16:45:48 UTC
svn commit: r588245 [6/10] - in /harmony/enhanced/classlib/branches/java6:
depends/build/ depends/files/ make/
modules/annotation/src/test/java/org/apache/harmony/annotation/tests/java/lang/annotation/
modules/archive/ modules/archive/src/main/java/jav...
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/filedesc.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/filedesc.c?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/filedesc.c (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/filedesc.c Thu Oct 25 07:44:56 2007
@@ -16,6 +16,7 @@
*/
#include "iohelp.h"
+#include "nethelp.h"
#include "exceptions.h"
#include "harmonyglob.h"
@@ -26,7 +27,7 @@
* Currently only answer false if the descriptor is -1. Possibly there
* could be an OS check to see if the handle has been invalidated
*/
- void *descriptor = getJavaIoFileDescriptorContentsAsPointer (env, recv);
+ void *descriptor = getJavaIoFileDescriptorContentsAsAPointer (env, recv);
return (IDATA) descriptor != -1;
}
@@ -38,7 +39,7 @@
I_32 syncfailed = 0;
PORT_ACCESS_FROM_ENV (env);
- descriptor = (IDATA) getJavaIoFileDescriptorContentsAsPointer (env, recv);
+ descriptor = (IDATA) getJavaIoFileDescriptorContentsAsAPointer (env, recv);
if (descriptor == -1)
{
syncfailed = 1;
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/nethelp.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/nethelp.c?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/nethelp.c (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/nethelp.c Thu Oct 25 07:44:56 2007
@@ -1427,3 +1427,236 @@
addrarray_field = HARMONY_CACHE_GET (env, FID_java_net_InetAddress_address);
(*env)->SetObjectField(env, localAddr_object, addrarray_field, addr_array);
}
+
+/**
+ * This will write count bytes from buffer starting at offset
+ */
+void
+ioh_writebytesImpl (JNIEnv * env, jobject recv, jbyteArray buffer,
+ jint offset, jint count, IDATA descriptor)
+{
+ I_32 result = 0;
+ jbyte *buf;
+ PORT_ACCESS_FROM_ENV (env);
+ jsize len;
+ char *errorMessage = NULL;
+
+/* TODO: ARRAY PINNING */
+#define INTERNAL_MAX 512
+ jbyte internalBuffer[INTERNAL_MAX];
+
+ if (buffer == NULL)
+ {
+ throwNPException (env, "buffer is null");
+ return;
+ }
+
+ len = (*env)->GetArrayLength (env, buffer);
+
+ /**
+ * If offset is negative, or count is negative, or offset+count is greater
+ * than the length of the array b, then an IndexOutOfBoundsException is thrown.
+ * Must test offset > len, or len - offset < count to avoid int overflow caused
+ * by offset + count
+ */
+ if (offset < 0 || count < 0 || offset > len || (len - offset) < count)
+ {
+ throwIndexOutOfBoundsException (env);
+ return;
+ }
+
+ /* If len or count is zero, just return 0 */
+ if (len == 0 || count == 0)
+ return;
+
+ if (descriptor == -1)
+ {
+ throwJavaIoIOExceptionClosed (env);
+ return;
+ }
+ if (count > INTERNAL_MAX)
+ {
+ buf = hymem_allocate_memory (count);
+ }
+ else
+ {
+ buf = internalBuffer;
+ }
+
+ if (buf == NULL)
+ {
+ throwNewOutOfMemoryError (env, "");
+ return;
+ }
+ ((*env)->GetByteArrayRegion (env, buffer, offset, count, buf));
+
+ result = hyfile_write (descriptor, buf, count);
+
+ /**
+ * if there is an error, find the error message before calling free in case
+ * hymem_free_memory changes the error code
+ */
+ if (result < 0)
+ errorMessage = ioLookupErrorString (env, result);
+
+ if (buf != internalBuffer)
+ {
+ hymem_free_memory (buf);
+ }
+#undef INTERNAL_MAX
+
+ if (result < 0)
+ throwJavaIoIOException (env, errorMessage);
+}
+
+/**
+ * This will read a up to count bytes into buffer starting at offset
+ */
+jint
+ioh_readbytesImpl (JNIEnv * env, jobject recv, jbyteArray buffer, jint offset,
+ jint count, IDATA descriptor)
+{
+ I_32 result;
+ jsize len;
+ jbyte *buf;
+
+/* TODO: ARRAY PINNING */
+#define INTERNAL_MAX 2048
+ jbyte internalBuffer[INTERNAL_MAX];
+
+ PORT_ACCESS_FROM_ENV (env);
+
+ if (buffer == NULL)
+ {
+ throwNPException (env, "buffer is null");
+ return 0;
+ }
+
+ len = (*env)->GetArrayLength (env, buffer);
+ /**
+ * Throw IndexOutOfBoundsException according to spec.
+ * Must test offset > len, or len - offset < count to avoid
+ * int overflow caused by offset + count
+ */
+ if (offset < 0 || count < 0 || offset > len || (len - offset) < count)
+ {
+ throwIndexOutOfBoundsException (env);
+ return 0;
+ }
+ /* If len is 0, simply return 0 (even if it is closed) */
+ if (len == 0 || count == 0)
+ return 0;
+
+ if (descriptor == -1)
+ {
+ throwJavaIoIOExceptionClosed (env);
+ return 0;
+ }
+ if (len >= INTERNAL_MAX)
+ {
+ buf = hymem_allocate_memory (len);
+ }
+ else
+ {
+ buf = internalBuffer;
+ }
+
+ if (buf == NULL)
+ {
+ throwNewOutOfMemoryError (env, "");
+ return 0;
+ }
+ /* Must FREE buffer before returning */
+
+ if (descriptor == 0)
+ {
+ /* hytty_get_chars() returns zero on EOF */
+ if ((result = hytty_get_chars (buf, count)) == 0)
+ result = -1;
+ }
+ else
+ {
+ result = hyfile_read (descriptor, buf, count);
+ }
+ if (result > 0)
+ (*env)->SetByteArrayRegion (env, buffer, offset, result, buf);
+
+ if (buf != internalBuffer)
+ {
+ hymem_free_memory (buf);
+ }
+#undef INTERNAL_MAX
+
+ return result;
+}
+
+/**
+ * This will close a file descriptor
+ */
+void
+new_ioh_close (JNIEnv * env, jobject recv, jfieldID fdFID)
+{
+ jobject fd;
+ IDATA descriptor;
+ PORT_ACCESS_FROM_ENV (env);
+
+ /* fetch the fd field from the object */
+ fd = (*env)->GetObjectField (env, recv, fdFID);
+
+ /* dereference the C pointer from the wrapper object */
+ descriptor = (IDATA) getJavaIoFileDescriptorContentsAsAPointer (env, fd);
+
+ /* Check for closed file, in, out, and err */
+ if (descriptor >= -1 && descriptor <= 2)
+ {
+ return;
+ }
+
+ hyfile_close (descriptor);
+ setJavaIoFileDescriptorContents (env, fd, (void *) -1);
+ return;
+}
+
+/**
+ * Answer the errorString corresponding to the errorNumber, if available.
+ * This function will answer a default error string, if the errorNumber is not
+ * recognized.
+ *
+ * This function will have to be reworked to handle internationalization properly, removing
+ * the explicit strings.
+ *
+ * @param anErrorNum the error code to resolve to a human readable string
+ *
+ * @return a human readable error string
+ */
+
+char *
+ioLookupErrorString (JNIEnv * env, I_32 anErrorNum)
+{
+ PORT_ACCESS_FROM_ENV (env);
+ switch (anErrorNum)
+ {
+ case HYPORT_ERROR_FILE_NOTFOUND:
+ return "File not found";
+ case HYPORT_ERROR_FILE_NOPERMISSION:
+ return "Lacking proper permissions to perform the operation";
+ case HYPORT_ERROR_FILE_DISKFULL:
+ return "Disk is full";
+ case HYPORT_ERROR_FILE_NOENT:
+ return "A component of the path name does not exist";
+ case HYPORT_ERROR_FILE_NOTDIR:
+ return "A component of the path name is not a directory";
+ case HYPORT_ERROR_FILE_BADF:
+ return "File descriptor invalid";
+ case HYPORT_ERROR_FILE_EXIST:
+ return "File already exists";
+ case HYPORT_ERROR_FILE_INVAL:
+ return "A parameter is invalid";
+ case HYPORT_ERROR_FILE_LOOP:
+ return "Followed too many symbolic links, possibly stuck in loop";
+ case HYPORT_ERROR_FILE_NAMETOOLONG:
+ return "Filename exceeds maximum length";
+ default:
+ return (char *) hyfile_error_message ();
+ }
+}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/nethelp.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/nethelp.h?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/nethelp.h (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/nethelp.h Thu Oct 25 07:44:56 2007
@@ -101,4 +101,11 @@
void setSocketLocalAddressContent(JNIEnv * env, jclass channel_class, jobject channel_object,jbyte * address);
+jint ioh_readbytesImpl (JNIEnv * env, jobject recv, jbyteArray buffer,
+ jint offset, jint count, IDATA descriptor);
+void ioh_writebytesImpl (JNIEnv * env, jobject recv, jbyteArray buffer,
+ jint offset, jint count, IDATA descriptor);
+void new_ioh_close (JNIEnv * env, jobject recv, jfieldID fdFID);
+char *ioLookupErrorString (JNIEnv * env, I_32 anErrorNum);
+
#endif /* nethelp_h */
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/ois.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/ois.c?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/ois.c (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/ois.c Thu Oct 25 07:44:56 2007
@@ -174,7 +174,7 @@
}
else
{
- /* Instantiate an object of a given class and constuct it using
+ /* Instantiate an object of a given class and construct it using
the constructor of the other class. */
jobject obj;
obj = (*env)->AllocObject(env, instantiationClass);
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/process.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/process.c?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/process.c (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/process.c Thu Oct 25 07:44:56 2007
@@ -16,6 +16,7 @@
*/
#include "iohelp.h"
+#include "nethelp.h"
#include "exceptions.h"
#include "procimpl.h"
@@ -255,7 +256,7 @@
jobject recv,
jobject arg1, jlong arg2)
{
- setJavaIoFileDescriptorContentsAsPointer (env, arg1, (void *) ((IDATA) arg2));
+ setJavaIoFileDescriptorContents (env, arg1, (void *) ((IDATA) arg2));
}
JNIEXPORT void JNICALL
@@ -263,7 +264,7 @@
jobject recv,
jobject arg1, jlong arg2)
{
- setJavaIoFileDescriptorContentsAsPointer (env, arg1, (void *) ((IDATA) arg2));
+ setJavaIoFileDescriptorContents (env, arg1, (void *) ((IDATA) arg2));
}
/* Wait for the receiver to finish then return the exit value */
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/socket.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/socket.c?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/socket.c (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/shared/socket.c Thu Oct 25 07:44:56 2007
@@ -106,7 +106,7 @@
if (0 == result)
{
- setJavaIoFileDescriptorContentsAsPointer (env, thisObjFD, sockdesc);
+ setJavaIoFileDescriptorContents (env, thisObjFD, sockdesc);
}
}
@@ -273,7 +273,7 @@
U_32 interfaceIndex;
U_32 scope_id = 0;
- /* JNI objects needed to access the information in the optVal oject passed in */
+ /* JNI objects needed to access the information in the optVal object passed in */
/* the object passed in is a GenericIPMreq object */
jclass cls;
jfieldID multiaddrID;
@@ -478,7 +478,7 @@
U_32 interfaceIndex;
U_32 scope_id = 0;
-/* JNI objects needed to access the information in the optVal oject passed in */
+/* JNI objects needed to access the information in the optVal object passed in */
/* the object passed in is a GenericIPMreq object */
jclass cls;
jfieldID multiaddrID;
@@ -817,7 +817,7 @@
#if defined(WIN32)
PORT_ACCESS_FROM_ENV (env);
- hysocketP = getJavaIoFileDescriptorContentsAsPointer (env, fileDescriptor);
+ hysocketP = getJavaIoFileDescriptorContentsAsAPointer (env, fileDescriptor);
if (!hysock_socketIsValid (hysocketP))
{
throwJavaNetSocketException (env, HYPORT_ERROR_SOCKET_BADSOCKET);
@@ -857,7 +857,7 @@
SELECT_NOPOLL:
- hysocketP = getJavaIoFileDescriptorContentsAsPointer (env, fileDescriptor);
+ hysocketP = getJavaIoFileDescriptorContentsAsAPointer (env, fileDescriptor);
if (!hysock_socketIsValid (hysocketP)) {
throwJavaNetSocketException (env, HYPORT_ERROR_SOCKET_BADSOCKET);
@@ -913,7 +913,7 @@
*/
hysocketP =
- getJavaIoFileDescriptorContentsAsPointer (env, fileDescriptor);
+ getJavaIoFileDescriptorContentsAsAPointer (env, fileDescriptor);
if (!hysock_socketIsValid (hysocketP))
{
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/OSFileSystemLinux32.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/OSFileSystemLinux32.c?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/OSFileSystemLinux32.c (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/OSFileSystemLinux32.c Thu Oct 25 07:44:56 2007
@@ -31,12 +31,11 @@
#endif
#include "vmi.h"
#include "iohelp.h"
+#include "nethelp.h"
#include "IFileSystem.h"
#include "OSFileSystem.h"
-void *getJavaIoFileDescriptorContentsAsPointer (JNIEnv * env, jobject fd);
-
typedef int OSSOCKET;
typedef struct hysocket_struct
{
@@ -203,7 +202,7 @@
jint *offsets;
jint *lengths;
int i = 0;
- long totalRead = 0;
+ long totalWritten = 0;
struct iovec *vectors = (struct iovec *)hymem_allocate_memory(size * sizeof(struct iovec));
if(vectors == NULL){
return -1;
@@ -216,7 +215,7 @@
vectors[i].iov_len = lengths[i];
i++;
}
- totalRead = writev(fd, vectors, size);
+ totalWritten = writev(fd, vectors, size);
if(bufsCopied){
(*env)->ReleaseLongArrayElements(env, jbuffers, bufs, JNI_ABORT);
}
@@ -227,7 +226,7 @@
(*env)->ReleaseIntArrayElements(env, jlengths, lengths, JNI_ABORT);
}
hymem_free_memory(vectors);
- return totalRead;
+ return totalWritten;
}
/*
@@ -241,7 +240,7 @@
OSSOCKET socket;
//TODO IPV6
hysocket_t hysocketP =
- (hysocket_t)getJavaIoFileDescriptorContentsAsPointer (env,sd);
+ (hysocket_t)getJavaIoFileDescriptorContentsAsAPointer (env,sd);
if(hysocketP == NULL)
return -1;
socket = hysocketP->sock;
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/exports.txt
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/exports.txt?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/exports.txt (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/exports.txt Thu Oct 25 07:44:56 2007
@@ -55,18 +55,6 @@
Java_java_io_FileDescriptor_oneTimeInitialization
Java_java_io_FileDescriptor_syncImpl
Java_java_io_FileDescriptor_valid
-Java_java_io_FileInputStream_available
-Java_java_io_FileInputStream_closeImpl
-Java_java_io_FileInputStream_oneTimeInitialization
-Java_java_io_FileInputStream_openImpl
-Java_java_io_FileInputStream_readByteImpl
-Java_java_io_FileInputStream_readImpl
-Java_java_io_FileInputStream_skip
-Java_java_io_FileOutputStream_closeImpl
-Java_java_io_FileOutputStream_oneTimeInitialization
-Java_java_io_FileOutputStream_openImpl
-Java_java_io_FileOutputStream_writeByteImpl
-Java_java_io_FileOutputStream_writeImpl
Java_java_io_ObjectInputStream_newInstance
Java_java_io_ObjectInputStream_objSetField
Java_java_io_ObjectInputStream_setField__Ljava_lang_Object_2Ljava_lang_Class_2Ljava_lang_String_2B
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/helpers.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/helpers.c?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/helpers.c (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/helpers.c Thu Oct 25 07:44:56 2007
@@ -82,8 +82,8 @@
getPlatformRoots (char *rootStrings)
{
rootStrings[0] = (char) '/';
- rootStrings[1] = (char) NULL;
- rootStrings[2] = (char) NULL;
+ rootStrings[1] = (char) 0;
+ rootStrings[2] = (char) 0;
return 1;
}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/makefile
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/makefile?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/makefile (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/unix/makefile Thu Oct 25 07:44:56 2007
@@ -37,7 +37,7 @@
OSNetworkSystemLinux.o OSResourcesMonitorLinux.o hyenv.o consoleimpl.o
ifneq ($(HY_ZIP_API),true)
-MDLLIBFILES += $(LIBPATH)libhyzip.a $(DLLPATH)libhyzlib$(HY_LINKLIB_SUFFIX)
+MDLLIBFILES += $(LIBPATH)libhyzip.a $(MDLLIBZLIB)
endif
MDLLIBFILES += $(LIBPATH)libhypool.a $(LIBPATH)libhyfdlibm.a \
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/windows/OSFileSystemWin32.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/windows/OSFileSystemWin32.c?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/windows/OSFileSystemWin32.c (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/windows/OSFileSystemWin32.c Thu Oct 25 07:44:56 2007
@@ -236,7 +236,7 @@
count = 0x7FFFFFFF;
}
- hysocketP = getJavaIoFileDescriptorContentsAsPointer(env,sd);
+ hysocketP = getJavaIoFileDescriptorContentsAsAPointer(env,sd);
socket = (SOCKET)hysocketP->ipv4;
pos_low = SetFilePointer(hfile,0,&pos_high,FILE_CURRENT);
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/windows/OSNetworkSystemWin32.c
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/windows/OSNetworkSystemWin32.c?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/windows/OSNetworkSystemWin32.c (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/luni/windows/OSNetworkSystemWin32.c Thu Oct 25 07:44:56 2007
@@ -58,7 +58,7 @@
FD_ZERO (&fdset_write->handle);
for (val = 0; val<countReadC; val++){
gotFD = (*env)->GetObjectArrayElement(env,readFDArray,val);
- hysocketP = getJavaIoFileDescriptorContentsAsPointer (env, gotFD);
+ hysocketP = getJavaIoFileDescriptorContentsAsAPointer (env, gotFD);
(*env)->DeleteLocalRef(env, gotFD);
if (!hysock_socketIsValid (hysocketP)){
@@ -79,7 +79,7 @@
}
for (val = 0; val<countWriteC; val++){
gotFD = (*env)->GetObjectArrayElement(env,writeFDArray,val);
- hysocketP = getJavaIoFileDescriptorContentsAsPointer (env, gotFD);
+ hysocketP = getJavaIoFileDescriptorContentsAsAPointer (env, gotFD);
(*env)->DeleteLocalRef(env, gotFD);
if (!hysock_socketIsValid (hysocketP)){
@@ -122,7 +122,7 @@
flagArray = (*env)->GetIntArrayElements(env,outFlags, &isCopy);
for (val=0;val<countReadC;val++){
gotFD = (*env)->GetObjectArrayElement(env,readFDArray,val);
- hysocketP = getJavaIoFileDescriptorContentsAsPointer (env, gotFD);
+ hysocketP = getJavaIoFileDescriptorContentsAsAPointer (env, gotFD);
(*env)->DeleteLocalRef(env, gotFD);
if (!hysock_socketIsValid (hysocketP)){
@@ -146,7 +146,7 @@
for (val=0;val<countWriteC;val++){
gotFD = (*env)->GetObjectArrayElement(env,writeFDArray,val);
- hysocketP = getJavaIoFileDescriptorContentsAsPointer (env, gotFD);
+ hysocketP = getJavaIoFileDescriptorContentsAsAPointer (env, gotFD);
(*env)->DeleteLocalRef(env, gotFD);
if (!hysock_socketIsValid (hysocketP)){
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java Thu Oct 25 07:44:56 2007
@@ -366,7 +366,7 @@
assertEquals((byte) i, result[0]);
} else {
/*
- * Substitue character should be 0x1A [1], but may be '?'
+ * Substitute character should be 0x1A [1], but may be '?'
* character. [1]
* http://en.wikipedia.org/wiki/Substitute_character
*/
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/ThreadTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/ThreadTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/ThreadTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/ThreadTest.java Thu Oct 25 07:44:56 2007
@@ -262,10 +262,13 @@
*/
public void test_activeCount() {
// Test for method int java.lang.Thread.activeCount()
- Thread t = new Thread(new SimpleThread(1));
- int active = Thread.activeCount();
- assertTrue("Incorrect read made: " + active, active > 0);
- t.start();
+ Thread t = new Thread(new SimpleThread(10));
+ int active = 0;
+ synchronized (t) {
+ t.start();
+ active = Thread.activeCount();
+ }
+ assertTrue("Incorrect activeCount for current group: " + active, active > 1);
try {
t.join();
} catch (InterruptedException e) {
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FileInputStreamTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FileInputStreamTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FileInputStreamTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FileInputStreamTest.java Thu Oct 25 07:44:56 2007
@@ -351,7 +351,7 @@
try {
fis.read(new byte[1], 0, 5);
- fail("IndexOutOfBoundsException must be thrown if off+len > b.lengh");
+ fail("IndexOutOfBoundsException must be thrown if off+len > b.length");
} catch (IndexOutOfBoundsException e) {}
try {
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FileOutputStreamTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FileOutputStreamTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FileOutputStreamTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FileOutputStreamTest.java Thu Oct 25 07:44:56 2007
@@ -196,7 +196,7 @@
try {
fos.write(new byte[1], 0, 5);
- fail("IndexOutOfBoundsException must be thrown if off+len > b.lengh");
+ fail("IndexOutOfBoundsException must be thrown if off+len > b.length");
} catch (IndexOutOfBoundsException e) {}
try {
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FilePermissionTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FilePermissionTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FilePermissionTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/FilePermissionTest.java Thu Oct 25 07:44:56 2007
@@ -48,7 +48,7 @@
assertEquals("action given to the constructor did not correspond - constructor failed",
"write", constructFile.getActions());
assertTrue(
- "name given to the construcotr did not correspond - construcotr failed",
+ "name given to the constructor did not correspond - constructor failed",
constructFile.getName() == "test constructor");
// Regression test for HARMONY-1050
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/RandomAccessFileTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/RandomAccessFileTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/RandomAccessFileTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/RandomAccessFileTest.java Thu Oct 25 07:44:56 2007
@@ -774,7 +774,7 @@
try {
raf.read(new byte[1], 0, 5);
- fail("IndexOutOfBoundsException must be thrown if off+len > b.lengh");
+ fail("IndexOutOfBoundsException must be thrown if off+len > b.length");
} catch (IndexOutOfBoundsException e) {
}
@@ -878,7 +878,7 @@
try {
raf.write(new byte[1], 0, 5);
- fail("IndexOutOfBoundsException must be thrown if off+len > b.lengh");
+ fail("IndexOutOfBoundsException must be thrown if off+len > b.length");
} catch (IndexOutOfBoundsException e) {
}
@@ -936,4 +936,4 @@
super.tearDown();
}
-}
\ No newline at end of file
+}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/UTFDataFormatExceptionTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/UTFDataFormatExceptionTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/UTFDataFormatExceptionTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/io/UTFDataFormatExceptionTest.java Thu Oct 25 07:44:56 2007
@@ -41,7 +41,7 @@
} catch (UTFDataFormatException e) {
return;
} catch (Exception e) {
- fail("Exeption during Constructor test : " + e.getMessage());
+ fail("Exception during Constructor test : " + e.getMessage());
}
}
@@ -63,7 +63,7 @@
} catch (UTFDataFormatException e) {
return;
} catch (Exception e) {
- fail("Exeption during Constructor test : " + e.getMessage());
+ fail("Exception during Constructor test : " + e.getMessage());
}
}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/lang/reflect/ConstructorTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/lang/reflect/ConstructorTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/lang/reflect/ConstructorTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/lang/reflect/ConstructorTest.java Thu Oct 25 07:44:56 2007
@@ -63,7 +63,7 @@
} catch (Exception e) {
fail("Exception during equals test : " + e.getMessage());
}
- assertTrue("Different Contructors returned equal", !ctor1.equals(ctor2));
+ assertTrue("Different Constructors returned equal", !ctor1.equals(ctor2));
}
/**
@@ -160,7 +160,7 @@
.equals(
"tests.api.java.lang.reflect.ConstructorTest$ConstructorTestHelper"));
} catch (Exception e) {
- fail("Exception obtaining contructor : " + e.getMessage());
+ fail("Exception obtaining constructor : " + e.getMessage());
}
}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/DatagramSocketTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/DatagramSocketTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/DatagramSocketTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/DatagramSocketTest.java Thu Oct 25 07:44:56 2007
@@ -1139,7 +1139,7 @@
int portNumber = Support_PortManager.getNextPortForUDP();
ds = new java.net.DatagramSocket(new mySocketAddress());
fail(
- "No exception when constucting datagramSocket with unsupported SocketAddress type");
+ "No exception when constructing datagramSocket with unsupported SocketAddress type");
} catch (IllegalArgumentException e) {
}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/JarURLConnectionTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/JarURLConnectionTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/JarURLConnectionTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/JarURLConnectionTest.java Thu Oct 25 07:44:56 2007
@@ -242,7 +242,7 @@
// equal but not same manifest
assertEquals(mf,juc.getManifest());
assertNotSame(mf,juc.getManifest());
- // same main attrubutes
+ // same main attributes
assertEquals(juc.getMainAttributes(),mf.getMainAttributes());
}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/ProxySelectorTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/ProxySelectorTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/ProxySelectorTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/ProxySelectorTest.java Thu Oct 25 07:44:56 2007
@@ -74,7 +74,7 @@
/*
* Original system properties must be restored after running each test case.
*/
- private Properties orignalSystemProperties;
+ private Properties originalSystemProperties;
/**
* @tests java.net.ProxySelector#getDefault()
@@ -91,7 +91,7 @@
* @tests java.net.ProxySelector#getDefault()
*/
public void test_getDefault_Security() {
- SecurityManager orignalSecurityManager = System.getSecurityManager();
+ SecurityManager originalSecurityManager = System.getSecurityManager();
try {
System.setSecurityManager(new MockSecurityManager());
} catch (SecurityException e) {
@@ -105,7 +105,7 @@
} catch (SecurityException e) {
// expected
} finally {
- System.setSecurityManager(orignalSecurityManager);
+ System.setSecurityManager(originalSecurityManager);
}
}
@@ -131,7 +131,7 @@
*/
public void test_setDefaultLjava_net_ProxySelector_Security() {
ProxySelector originalSelector = ProxySelector.getDefault();
- SecurityManager orignalSecurityManager = System.getSecurityManager();
+ SecurityManager originalSecurityManager = System.getSecurityManager();
try {
System.setSecurityManager(new MockSecurityManager());
} catch (SecurityException e) {
@@ -146,7 +146,7 @@
} catch (SecurityException e) {
// expected
} finally {
- System.setSecurityManager(orignalSecurityManager);
+ System.setSecurityManager(originalSecurityManager);
ProxySelector.setDefault(originalSelector);
}
}
@@ -621,15 +621,15 @@
protected void setUp() throws Exception {
super.setUp();
// save original system properties
- orignalSystemProperties = (Properties) System.getProperties().clone();
+ originalSystemProperties = (Properties) System.getProperties().clone();
}
/*
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
- // restore orignal system properties
- System.setProperties(orignalSystemProperties);
+ // restore original system properties
+ System.setProperties(originalSystemProperties);
super.tearDown();
}
}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/URITest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/URITest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/URITest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/URITest.java Thu Oct 25 07:44:56 2007
@@ -535,7 +535,7 @@
// hierarchical tests..
- // diffrent authorities
+ // different authorities
{ "//www.test.com/test", "//www.test2.com/test" },
{ "/nullauth", "//nonnullauth/test" }, // one null authority
@@ -1443,7 +1443,7 @@
new URI("//fgj234fkgj.jhj.123"),
- // '-' cannot be first or last charcter in a label
+ // '-' cannot be first or last character in a label
new URI("//-domain.name"), new URI("//domain.name-"),
new URI("//domain-"),
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/URLTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/URLTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/URLTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/net/URLTest.java Thu Oct 25 07:44:56 2007
@@ -1189,7 +1189,7 @@
URL ftpUrl = new URL("ftp://" + Support_Configuration.FTPTestAddress
+ "/nettest.txt");
URL[] urlList = { httpUrl, ftpUrl };
- ProxySelector orignalSelector = ProxySelector.getDefault();
+ ProxySelector originalSelector = ProxySelector.getDefault();
ProxySelector.setDefault(new MockProxySelector());
try {
for (int i = 0; i < urlList.length; ++i) {
@@ -1205,8 +1205,7 @@
+ urlList[i], isSelectCalled);
}
} finally {
- ProxySelector.setDefault(orignalSelector);
-
+ ProxySelector.setDefault(originalSelector);
}
}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/ArrayListTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/ArrayListTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/ArrayListTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/ArrayListTest.java Thu Oct 25 07:44:56 2007
@@ -19,11 +19,11 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.ConcurrentModificationException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import java.util.ConcurrentModificationException;
import java.util.Vector;
import tests.support.Support_ListTest;
@@ -544,8 +544,35 @@
list.addAll(0, collection);
assertEquals(14, list.size());
}
-
-
+
+ public static class ArrayListExtend extends ArrayList {
+
+ private int size = 0;
+
+ public ArrayListExtend() {
+ super(10);
+ }
+
+ public boolean add(Object o) {
+ size++;
+ return super.add(o);
+ }
+
+ public int size() {
+ return size;
+ }
+ }
+
+ public void test_subclassing() {
+ ArrayListExtend a = new ArrayListExtend();
+ /*
+ * Regression test for subclasses that override size() (which used to
+ * cause an exception when growing 'a').
+ */
+ for (int i = 0; i < 100; i++) {
+ a.add(new Object());
+ }
+ }
/**
* Sets up the fixture, for example, open a network connection. This method
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/EnumSetTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/EnumSetTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/EnumSetTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/EnumSetTest.java Thu Oct 25 07:44:56 2007
@@ -420,7 +420,7 @@
/**
* @tests java.util.EnumSet#remove(Object)
*/
- public void test_remove_LOject() {
+ public void test_remove_LObject() {
Set<EnumFoo> set = EnumSet.noneOf(EnumFoo.class);
Enum[] elements = EnumFoo.class.getEnumConstants();
for(int i = 0; i < elements.length; i++) {
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/PropertyResourceBundleTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/PropertyResourceBundleTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/PropertyResourceBundleTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/PropertyResourceBundleTest.java Thu Oct 25 07:44:56 2007
@@ -152,7 +152,7 @@
prb = new PropertyResourceBundle(propertiesStream);
} catch (java.io.IOException e) {
fail(
- "Contruction of PropertyResourceBundle threw IOException");
+ "Construction of PropertyResourceBundle threw IOException");
}
}
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/ScannerTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/ScannerTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/ScannerTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/tests/api/java/util/ScannerTest.java Thu Oct 25 07:44:56 2007
@@ -4798,7 +4798,7 @@
mresult = s.match();
assertEquals(0, mresult.start());
assertEquals(2, mresult.end());
- // Postion is now pointing at the bar. "12|345test1234test next"
+ // Position is now pointing at the bar. "12|345test1234test next"
result = s.findWithinHorizon(Pattern.compile("\\p{Digit}+"), 6);
assertEquals("345", result);
@@ -4806,7 +4806,7 @@
mresult = s.match();
assertEquals(2, mresult.start());
assertEquals(5, mresult.end());
- // Postion is now pointing at the bar. "12345|test1234test next"
+ // Position is now pointing at the bar. "12345|test1234test next"
// If no such pattern is detected then the null is returned and the
// scanner's position remains unchanged.
@@ -4822,7 +4822,7 @@
assertEquals("345", mresult.group());
assertEquals(2, mresult.start());
assertEquals(5, mresult.end());
- // Postion is now still pointing at the bar. "12345|test1234test next"
+ // Position is now still pointing at the bar. "12345|test1234test next"
// If horizon is 0, then the horizon is ignored and this method
// continues to search through the input looking for the specified
@@ -4831,7 +4831,7 @@
mresult = s.match();
assertEquals(9, mresult.start());
assertEquals(13, mresult.end());
- // Postion is now pointing at the bar. "12345test1234|test next"
+ // Position is now pointing at the bar. "12345test1234|test next"
assertEquals("test", s.next());
mresult = s.match();
Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/windows/org/apache/harmony/luni/tests/java/io/WinFileTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/windows/org/apache/harmony/luni/tests/java/io/WinFileTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/windows/org/apache/harmony/luni/tests/java/io/WinFileTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/windows/org/apache/harmony/luni/tests/java/io/WinFileTest.java Thu Oct 25 07:44:56 2007
@@ -18,6 +18,10 @@
import java.io.File;
import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+
+import tests.support.resource.Support_Resources;
import junit.framework.TestCase;
@@ -94,6 +98,43 @@
dir.deleteOnExit();
}
}
+
+
+ /**
+ * Regression test for HARMONY-4794
+ */
+ public void testNonASCIIFileName_4794() throws IOException {
+ final String FILENAME="\u30d5\u30a1\u30a4\u30eb1.txt";
+ final String CONTENT = "A pretty predicament";
+ final String CNTNT_CHARSET = "ISO-8859-1";
+
+ File folder = Support_Resources.createTempFolder();
+ File f = new File(folder, FILENAME);
+ FileOutputStream fos = new FileOutputStream(f);
+ FileInputStream fis;
+
+ f.createNewFile();
+ f.deleteOnExit();
+ fos.write(CONTENT.getBytes(CNTNT_CHARSET));
+ fos.close();
+
+ f = new File(folder, FILENAME);
+ assertEquals("Invalid file name", FILENAME, f.getName());
+ if (f.exists()) {
+ byte tmp[] = new byte[256];
+ String wasRed;
+ int n;
+
+ fis = new FileInputStream(f);
+ n = fis.read(tmp);
+ fis.close();
+ wasRed = new String(tmp, 0, n, CNTNT_CHARSET);
+ assertEquals("Invalid content was red", CONTENT, wasRed);
+ } else {
+ fail("File does not exist");
+ }
+ }
+
/**
* @tests java.io.File#canExecute()
Modified: harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/BitLevel.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/BitLevel.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/BitLevel.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/BitLevel.java Thu Oct 25 07:44:56 2007
@@ -37,7 +37,7 @@
*/
class BitLevel {
- /** Just to denote that this class can't be instantied. */
+ /** Just to denote that this class can't be instantiated. */
private BitLevel() {}
Modified: harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Conversion.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Conversion.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Conversion.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Conversion.java Thu Oct 25 07:44:56 2007
@@ -26,7 +26,7 @@
*/
class Conversion {
- /** Just to denote that this class can't be instantied */
+ /** Just to denote that this class can't be instantiated */
private Conversion() {}
/**
Modified: harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Division.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Division.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Division.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Division.java Thu Oct 25 07:44:56 2007
@@ -431,7 +431,7 @@
}
} else {
- // Use Knuth's algorithm of sucessive subtract and shifting
+ // Use Knuth's algorithm of successive subtract and shifting
do {
Elementary.inplaceSubtract(op2, op1); // both are odd
BitLevel.inplaceShiftRight(op2, op2.getLowestSetBit()); // op2 is even
Modified: harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Elementary.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Elementary.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Elementary.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Elementary.java Thu Oct 25 07:44:56 2007
@@ -32,7 +32,7 @@
*/
class Elementary {
- /** Just to denote that this class can't be instantied */
+ /** Just to denote that this class can't be instantiated */
private Elementary() {
}
Modified: harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Logical.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Logical.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Logical.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Logical.java Thu Oct 25 07:44:56 2007
@@ -32,7 +32,7 @@
*/
class Logical {
- /** Just to denote that this class can't be instantied. */
+ /** Just to denote that this class can't be instantiated. */
private Logical() {}
Modified: harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Multiplication.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Multiplication.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Multiplication.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Multiplication.java Thu Oct 25 07:44:56 2007
@@ -27,7 +27,7 @@
*/
class Multiplication {
- /** Just to denote that this class can't be instantied. */
+ /** Just to denote that this class can't be instantiated. */
private Multiplication() {}
/**
@@ -355,7 +355,7 @@
/**
* Performs a<sup>2</sup>
* @param a The number to square.
- * @param length The lenght of the number to square.
+ * @param length The length of the number to square.
*/
static int[] square(int[] a, int s) {
int [] t = new int [s<<1];
Modified: harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Primality.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Primality.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Primality.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/math/src/main/java/java/math/Primality.java Thu Oct 25 07:44:56 2007
@@ -27,7 +27,7 @@
*/
class Primality {
- /** Just to denote that this class can't be instantied. */
+ /** Just to denote that this class can't be instantiated. */
private Primality() {}
/* Private Fields */
Modified: harmony/enhanced/classlib/branches/java6/modules/misc/src/main/native/accessors/unix/makefile
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/misc/src/main/native/accessors/unix/makefile?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/misc/src/main/native/accessors/unix/makefile (original)
+++ harmony/enhanced/classlib/branches/java6/modules/misc/src/main/native/accessors/unix/makefile Thu Oct 25 07:44:56 2007
@@ -26,7 +26,7 @@
$(SHAREDSUB)org_apache_harmony_misc_accessors_StringAccessorImpl.o
ifneq ($(HY_ZIP_API),true)
-MDLLIBFILES += $(LIBPATH)libhyzip.a $(DLLPATH)libhyzlib$(HY_LINKLIB_SUFFIX)
+MDLLIBFILES += $(LIBPATH)libhyzip.a $(MDLLIBZLIB)
endif
MDLLIBFILES += $(LIBPATH)libhypool.a $(LIBPATH)libhyfdlibm.a \
Modified: harmony/enhanced/classlib/branches/java6/modules/nio/.classpath
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio/.classpath?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio/.classpath (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio/.classpath Thu Oct 25 07:44:56 2007
@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry output="bin/main" kind="src" path="src/main/java"/>
- <classpathentry output="bin/test" kind="src" path="src/test/java/common"/>
- <classpathentry output="bin/test" kind="src" path="src/test/java/windows"/>
- <classpathentry output="bin/test" kind="src" path="src/test/java/unix"/>
- <classpathentry output="bin/test" kind="src" path="src/test/resources"/>
+ <classpathentry kind="src" path="src/main/java/windows"/>
+ <classpathentry kind="src" path="src/main/java/common"/>
+ <classpathentry kind="src" path="src/main/java/unix"/>
+ <classpathentry kind="src" output="bin/test" path="src/test/java/common"/>
+ <classpathentry kind="src" output="bin/test" path="src/test/java/windows"/>
+ <classpathentry kind="src" output="bin/test" path="src/test/java/unix"/>
+ <classpathentry kind="src" output="bin/test" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry sourcepath="JUNIT_SRC_HOME/junitsrc.zip" kind="var" path="JUNIT_HOME/junit.jar"/>
+ <classpathentry kind="var" path="JUNIT_HOME/junit.jar" sourcepath="JUNIT_SRC_HOME/junitsrc.zip"/>
<classpathentry kind="output" path="bin/main"/>
</classpath>
Modified: harmony/enhanced/classlib/branches/java6/modules/nio/build.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio/build.xml?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio/build.xml (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio/build.xml Thu Oct 25 07:44:56 2007
@@ -26,6 +26,9 @@
<!-- set global properties for this build. -->
<xmlproperty file="make/hyproperties.xml" semanticAttributes="true" />
+ <property name="hy.nio.src.main.java.platform"
+ value="${hy.nio.src.main.java}/../${hy.os.family}" />
+
<property name="hy.nio.src.test.java.platform"
value="${hy.nio.src.test.java}/../${hy.os.family}" />
@@ -100,7 +103,6 @@
<mkdir dir="${hy.build}" />
<javac sourcepath=""
- srcdir="${hy.nio.src.main.java}"
destdir="${hy.build}"
compiler="${hy.javac.compiler}"
memoryMaximumSize="${hy.javac.maxmem}"
@@ -109,6 +111,11 @@
debug="${hy.javac.debug}">
<compilerarg line="${build.compilerarg}" />
+
+ <src>
+ <pathelement location="${hy.nio.src.main.java}"/>
+ <pathelement location="${hy.nio.src.main.java.platform}" />
+ </src>
<bootclasspath>
<fileset dir="${hy.jdk}/jre/lib/boot">
Modified: harmony/enhanced/classlib/branches/java6/modules/nio/make/hyproperties.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio/make/hyproperties.xml?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio/make/hyproperties.xml (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio/make/hyproperties.xml Thu Oct 25 07:44:56 2007
@@ -20,7 +20,7 @@
<nio location=".">
<src>
<main>
- <java location="src/main/java" />
+ <java location="src/main/java/common" />
<resources location="src/main/resources" />
<native location="src/main/native" />
</main>
Modified: harmony/enhanced/classlib/branches/java6/modules/nio/src/main/native/nio/unix/exports.txt
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio/src/main/native/nio/unix/exports.txt?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio/src/main/native/nio/unix/exports.txt (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio/src/main/native/nio/unix/exports.txt Thu Oct 25 07:44:56 2007
@@ -2,3 +2,8 @@
GetDirectBufferAddress
GetDirectBufferCapacity
Java_org_apache_harmony_nio_AddressUtil_getFDAddress
+Java_org_apache_harmony_nio_internal_EpollSelectorImpl_resolveFD
+Java_org_apache_harmony_nio_internal_EpollSelectorImpl_prepare
+Java_org_apache_harmony_nio_internal_EpollSelectorImpl_addFileDescriptor
+Java_org_apache_harmony_nio_internal_EpollSelectorImpl_delFileDescriptor
+Java_org_apache_harmony_nio_internal_EpollSelectorImpl_epoll
Modified: harmony/enhanced/classlib/branches/java6/modules/nio/src/main/native/nio/unix/makefile
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio/src/main/native/nio/unix/makefile?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio/src/main/native/nio/unix/makefile (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio/src/main/native/nio/unix/makefile Thu Oct 25 07:44:56 2007
@@ -22,7 +22,7 @@
CFLAGS += -fpic
BUILDFILES = \
- ../shared/DirectBufferUtil.o ../shared/AddressUtil.o
+ ../shared/DirectBufferUtil.o ../shared/AddressUtil.o ../unix/EpollSelectorImpl.o
ifneq ($(HY_ZIP_API),true)
MDLLIBFILES += $(LIBPATH)libhyzip.a
Modified: harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/DatagramChannelTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/DatagramChannelTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/DatagramChannelTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/DatagramChannelTest.java Thu Oct 25 07:44:56 2007
@@ -2403,29 +2403,29 @@
public void test_write_LBuffer_positioned() throws Exception {
// Regression test for Harmony-683
- int postion = 16;
+ int position = 16;
DatagramChannel dc = DatagramChannel.open();
byte[] sourceArray = new byte[CAPACITY_NORMAL];
dc.connect(localAddr1);
// write
ByteBuffer sourceBuf = ByteBuffer.wrap(sourceArray);
- sourceBuf.position(postion);
- assertEquals(CAPACITY_NORMAL - postion, dc.write(sourceBuf));
+ sourceBuf.position(position);
+ assertEquals(CAPACITY_NORMAL - position, dc.write(sourceBuf));
}
- public void test_send_LBuffer_LSocketAddress_PositonNotZero()
+ public void test_send_LBuffer_LSocketAddress_PositionNotZero()
throws Exception {
// regression test for Harmony-701
int CAPACITY_NORMAL = 256;
- int postion = 16;
+ int position = 16;
DatagramChannel dc = DatagramChannel.open();
byte[] sourceArray = new byte[CAPACITY_NORMAL];
// send ByteBuffer whose position is not zero
ByteBuffer sourceBuf = ByteBuffer.wrap(sourceArray);
- sourceBuf.position(postion);
+ sourceBuf.position(position);
int ret = dc.send(sourceBuf, localAddr1);
// assert send (256 - 16) bytes
- assertEquals(CAPACITY_NORMAL - postion, ret);
+ assertEquals(CAPACITY_NORMAL - position, ret);
// assert the position of ByteBuffer has been set
assertEquals(CAPACITY_NORMAL, sourceBuf.position());
}
Modified: harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/FileChannelTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/FileChannelTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/FileChannelTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/FileChannelTest.java Thu Oct 25 07:44:56 2007
@@ -1331,7 +1331,7 @@
/**
* @tests java.nio.channels.FileChannel#read(ByteBuffer,long)
*/
- public void test_readLByteBufferJ_Postion_BeyondFileLimit()
+ public void test_readLByteBufferJ_Position_BeyondFileLimit()
throws Exception {
writeDataToFile(fileOfReadOnlyFileChannel);
@@ -1346,7 +1346,7 @@
/**
* @tests java.nio.channels.FileChannel#read(ByteBuffer,long)
*/
- public void test_readLByteBufferJ_Postion_As_Long() throws Exception {
+ public void test_readLByteBufferJ_Position_As_Long() throws Exception {
ByteBuffer readBuffer = ByteBuffer.allocate(CAPACITY);
try {
readOnlyFileChannel.read(readBuffer, Long.MAX_VALUE);
Modified: harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/ServerSocketChannelTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/ServerSocketChannelTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/ServerSocketChannelTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/ServerSocketChannelTest.java Thu Oct 25 07:44:56 2007
@@ -572,4 +572,19 @@
// expected
}
}
+ /**
+ * Regression test for HARMONY-4961
+ */
+ public void test_socket_getLocalPort() throws IOException {
+ serverChannel.socket().bind(localAddr1);
+ clientChannel.connect(localAddr1);
+ SocketChannel myChannel = serverChannel.accept();
+ int port = myChannel.socket().getLocalPort();
+ assertEquals(localAddr1.getPort(), port);
+ myChannel.close();
+ clientChannel.close();
+ serverChannel.close();
+ }
+
+
}
Modified: harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java Thu Oct 25 07:44:56 2007
@@ -389,17 +389,17 @@
assertEquals(s.getLocalAddress().getHostAddress(), "0.0.0.0");
// RI fails here. RI returns 0 while spec says unbound socket should
// return -1.
- assertEquals(s.getLocalPort(), -1);
+ assertEquals(-1, s.getLocalPort());
assertFalse(s.getReuseAddress());
assertNull(s.getLocalSocketAddress());
// not connected
- assertEquals(s.getPort(), 0);
+ assertEquals(0, s.getPort());
assertTrue(s.getReceiveBufferSize() >= 8192);
assertNull(s.getRemoteSocketAddress());
assertTrue(s.getSendBufferSize() >= 8192);
- assertEquals(s.getSoTimeout(), 0);
- assertEquals(s.getTrafficClass(), 0);
+ assertEquals(0, s.getSoTimeout());
+ assertEquals(0, s.getTrafficClass());
}
@@ -431,8 +431,8 @@
assertEquals(s.getRemoteSocketAddress(), (SocketAddress) address);
// assertFalse(s.getReuseAddress());
assertTrue(s.getSendBufferSize() >= 8192);
- assertEquals(s.getSoTimeout(), 0);
- assertEquals(s.getTrafficClass(), 0);
+ assertEquals(0, s.getSoTimeout());
+ assertEquals(0, s.getTrafficClass());
}
private void assertSocketAction_Block_BeforeConnect(Socket s)
Modified: harmony/enhanced/classlib/branches/java6/modules/nio_char/.classpath
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/nio_char/.classpath?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/nio_char/.classpath (original)
+++ harmony/enhanced/classlib/branches/java6/modules/nio_char/.classpath Thu Oct 25 07:44:56 2007
@@ -5,7 +5,7 @@
<classpathentry kind="src" output="bin/test" path="src/test/java"/>
<classpathentry kind="src" output="bin/test" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="var" path="JUNIT_HOME/junit.jar" sourcepath="JUNIT_SRC_HOME/junitsrc.zip"/>
<classpathentry kind="lib" path="src/test/resources/jars/charset_provider.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
<classpathentry kind="output" path="bin/main"/>
</classpath>
Modified: harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayout.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayout.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayout.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayout.java Thu Oct 25 07:44:56 2007
@@ -248,5 +248,18 @@
public String getName() {
return name;
}
+
+ public int numBackwardsCallables() {
+ int num = 0;
+ String[] split = layout.split("\\(");
+ if(split.length > 0) {
+ for (int i = 1; i < split.length; i++) {
+ if(split[i].startsWith("-") || split[i].startsWith("0")) {
+ num++;
+ }
+ }
+ }
+ return num;
+ }
}
Modified: harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayoutMap.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayoutMap.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayoutMap.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeLayoutMap.java Thu Oct 25 07:44:56 2007
@@ -16,10 +16,6 @@
*/
package org.apache.harmony.pack200;
-// NOTE: Do not use generics in this code; it needs to run on JVMs < 1.5
-// NOTE: Do not extract strings as messages; this code is still a
-// work-in-progress
-// NOTE: Also, don't get rid of 'else' statements for the hell of it ...
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -223,6 +219,12 @@
}
return null;
}
+
+ public AttributeLayout getAttributeLayout(int index, int context)
+ throws Pack200Exception {
+ Map map = layouts[context];
+ return (AttributeLayout) map.get(new Integer(index));
+ }
/**
* The map should not contain the same layout and name combination more than
Modified: harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BHSDCodec.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BHSDCodec.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BHSDCodec.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BHSDCodec.java Thu Oct 25 07:44:56 2007
@@ -15,19 +15,17 @@
* limitations under the License.
*/
package org.apache.harmony.pack200;
-//NOTE: Do not use generics in this code; it needs to run on JVMs < 1.5
-//NOTE: Do not extract strings as messages; this code is still a work-in-progress
-//NOTE: Also, don't get rid of 'else' statements for the hell of it ...
+
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
/**
* TODO Comment -- quite a lot can be nicked from Codec, since this was created
* from it
- *
- * @author Alex Blewitt
- *
+ *
*/
public final class BHSDCodec extends Codec {
@@ -155,13 +153,23 @@
x = in.read();
if (x == -1)
throw new EOFException("End of stream reached whilst decoding");
- z += x * Math.pow(h, n);
+ z += x * Math.pow(h, n);
n++;
} while (n < b & isHigh(x));
- long u = z;
- long twoPowS = (long)Math.pow(2, s);
- double twoPowSMinusOne = twoPowS-1;
+
+// TODO: Decide whether to use this algorithm instead (neater, possibly quicker but less easy to understand)
+// if (isSigned()) {
+// int u = ((1 << s) - 1);
+// if ((z & u) == u) {
+// z = z >>> s ^ -1L;
+// } else {
+// z = z - (z >>> s);
+// }
+// }
if(isSigned()) {
+ long u = z;
+ long twoPowS = (long)Math.pow(2, s);
+ double twoPowSMinusOne = twoPowS-1;
if(u % twoPowS < twoPowSMinusOne) {
if(cardinality < Math.pow(2, 32)) {
z = (long) (u - (Math.floor(u/ twoPowS)));
@@ -172,8 +180,8 @@
z = (long) (-Math.floor(u/ twoPowS) - 1);
}
}
- if (isDelta())
- z += last;
+ if (isDelta())
+ z += last;
return z;
}
@@ -196,6 +204,50 @@
public boolean encodes(long value) {
return (value >= smallest() && value <= largest());
}
+
+ public byte[] encode(long value, long last) throws Pack200Exception {
+ if (isDelta()) {
+ value -= last;
+ }
+ if (!encodes(value)) {
+ throw new Pack200Exception("The codec " + toString()
+ + " does not encode the value " + value);
+ }
+ long z = value;
+ if (isSigned()) {
+ if (z < 0) {
+ z = (-z << s) - 1;
+ } else {
+ if (s == 1) {
+ z = z << s;
+ } else {
+ z += (z - z % 3) / 3;
+ }
+ }
+ }
+ List byteList = new ArrayList();
+ for (int n = 0; n < b; n++) {
+ long byteN;
+ if (z < l) {
+ byteN = z;
+ } else {
+ byteN = z % h;
+ while (byteN < l)
+ byteN += h;
+ }
+ byteList.add(new Byte((byte) byteN));
+ if (byteN < l) {
+ break;
+ }
+ z -= byteN;
+ z /= h;
+ }
+ byte[] bytes = new byte[byteList.size()];
+ for (int i = 0; i < bytes.length; i++) {
+ bytes[i] = ((Byte) byteList.get(i)).byteValue();
+ }
+ return bytes;
+ }
/**
* Returns true if this codec is a delta codec
@@ -220,19 +272,15 @@
*/
public long largest() {
long result;
- if (isDelta()) {
- result = Long.MAX_VALUE;
+ // TODO This can probably be optimized into a better mathematical statement
+ if (s == 0) {
+ result = cardinality() - 1;
+ } else if (s == 1) {
+ result = cardinality() / 2 - 1;
+ } else if (s == 2) {
+ result = (3L * cardinality()) / 4 - 1;
} else {
- // TODO This can probably be optimized into a better mathematical statement
- if (s == 0) {
- result = cardinality() - 1;
- } else if (s == 1) {
- result = cardinality() / 2 - 1;
- } else if (s == 2) {
- result = (3L * cardinality()) / 4 - 1;
- } else {
- throw new Error("Unknown s value");
- }
+ throw new Error("Unknown s value");
}
return Math.min((s == 0 ? ((long) Integer.MAX_VALUE) << 1
: Integer.MAX_VALUE) - 1, result);
@@ -244,14 +292,10 @@
*/
public long smallest() {
long result;
- if (isDelta()) {
- result = Integer.MIN_VALUE;
+ if (isSigned()) {
+ result = -cardinality() / (1 << s);
} else {
- if (isSigned()) {
- result = -cardinality() / (1 << s);
- } else {
- result = 0;
- }
+ result = 0;
}
return Math.max(Integer.MIN_VALUE, result);
}
Modified: harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BandSet.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BandSet.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BandSet.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BandSet.java Thu Oct 25 07:44:56 2007
@@ -16,6 +16,7 @@
*/
package org.apache.harmony.pack200;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -36,7 +37,7 @@
}
/**
- * Decode a band and return an array of <code>int[]</code> values
+ * Decode a band and return an array of <code>int</code> values
*
* @param name
* the name of the band (primarily for logging/debugging
@@ -47,7 +48,7 @@
* the default codec for this band
* @param count
* the number of elements to read
- * @return an array of decoded <code>int[]</code> values
+ * @return an array of decoded <code>int</code> values
* @throws IOException
* if there is a problem reading from the underlying input
* stream
@@ -60,17 +61,34 @@
Pack200Exception {
// TODO Might be able to improve this directly.
int[] result = new int[count];
-
- // TODO We need to muck around in the scenario where the first value
- // read indicates
- // an uber-codec
long[] longResult = decodeBandLong(name, in, defaultCodec, count);
for (int i = 0; i < count; i++) {
result[i] = (int) longResult[i];
}
return result;
}
-
+
+ /**
+ * Decode a band and return an array of <code>int[]</code> values
+ *
+ * @param name
+ * the name of the band (primarily for logging/debugging
+ * purposes)
+ * @param in
+ * the InputStream to decode from
+ * @param defaultCodec
+ * the default codec for this band
+ * @param counts
+ * the numbers of elements to read for each int array within the
+ * array to be returned
+ * @return an array of decoded <code>int[]</code> values
+ * @throws IOException
+ * if there is a problem reading from the underlying input
+ * stream
+ * @throws Pack200Exception
+ * if there is a problem decoding the value or that the value is
+ * invalid
+ */
public int[][] decodeBandInt(String name, InputStream in, BHSDCodec defaultCodec, int[] counts) throws IOException, Pack200Exception {
int[][] result = new int[counts.length][];
int totalCount = 0;
@@ -90,7 +108,7 @@
}
/**
- * Decode a band and return an array of <code>long[]</code> values
+ * Decode a band and return an array of <code>long</code> values
*
* @param name
* the name of the band (primarily for logging/debugging
@@ -101,7 +119,7 @@
* the default codec for this band
* @param count
* the number of elements to read
- * @return an array of decoded <code>long[]</code> values
+ * @return an array of decoded <code>long</code> values
* @throws IOException
* if there is a problem reading from the underlying input
* stream
@@ -135,24 +153,39 @@
return codec.decode(count - 1, in, first);
}
}
+
+ public byte[] encodeBandLong(long[] data, BHSDCodec codec) throws IOException, Pack200Exception {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ for (int i = 0; i < data.length; i++) {
+ baos.write(codec.encode(data[i], i == 0 ? 0 : data[i-1]));
+ }
+ return baos.toByteArray();
+ }
public long[] parseFlags(String name, InputStream in, int count,
- BHSDCodec codec, boolean hasHi) throws IOException, Pack200Exception {
- return parseFlags(name, in, 1, new int[] { count }, (hasHi ? codec
- : null), codec)[0];
+ BHSDCodec codec, boolean hasHi) throws IOException,
+ Pack200Exception {
+ return parseFlags(name, in, new int[] { count },
+ (hasHi ? codec : null), codec)[0];
+ }
+
+ public long[][] parseFlags(String name, InputStream in, int counts[],
+ BHSDCodec codec, boolean hasHi) throws IOException,
+ Pack200Exception {
+ return parseFlags(name, in, counts, (hasHi ? codec : null), codec);
}
- public long[][] parseFlags(String name, InputStream in, int count,
- int counts[], BHSDCodec codec, boolean hasHi) throws IOException,
+ public long[] parseFlags(String name, InputStream in, int count,
+ BHSDCodec hiCodec, BHSDCodec loCodec) throws IOException,
Pack200Exception {
- return parseFlags(name, in, count, counts, (hasHi ? codec : null),
- codec);
+ return parseFlags(name, in, new int[] { count }, hiCodec, loCodec)[0];
}
- public long[][] parseFlags(String name, InputStream in, int count,
- int counts[], BHSDCodec hiCodec, BHSDCodec loCodec) throws IOException,
+ public long[][] parseFlags(String name, InputStream in, int counts[],
+ BHSDCodec hiCodec, BHSDCodec loCodec) throws IOException,
Pack200Exception {
// TODO Move away from decoding into a parseBand type structure
+ int count = counts.length;
if (count == 0) {
return new long[][] { {} };
}
@@ -182,7 +215,7 @@
* [0..reference.length-1].
*
* @param name
- * TODO
+ * the band name
* @param in
* the input stream to read from
* @param codec
@@ -247,12 +280,12 @@
}
// TODO Merge the decode and parsing of a multiple structure into one
String[] result1 = new String[sum];
- int[] decode = decodeBandInt(name, in, codec, sum);
+ int[] indices = decodeBandInt(name, in, codec, sum);
for (int i1 = 0; i1 < sum; i1++) {
- int index = decode[i1];
+ int index = indices[i1];
if (index < 0 || index >= reference.length)
throw new Pack200Exception(
- "Something has gone wrong during parsing references");
+ "Something has gone wrong during parsing references, index = " + index + ", array size = " + reference.length);
result1[i1] = reference[index];
}
String[] refs = result1;
Modified: harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BcBands.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BcBands.java?rev=588245&r1=588244&r2=588245&view=diff
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BcBands.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BcBands.java Thu Oct 25 07:44:56 2007
@@ -21,7 +21,6 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
-import java.util.Arrays;
import org.apache.harmony.pack200.bytecode.ByteCode;
import org.apache.harmony.pack200.bytecode.CodeAttribute;
@@ -31,8 +30,11 @@
*/
public class BcBands extends BandSet {
- // the bytecodes for each method in each class as they come (i.e. in their packed format)
+ // The bytecodes for each method in each class as they come (i.e. in their packed format)
private byte[][][] methodByteCodePacked;
+
+ // The bands
+ // TODO: Haven't resolved references yet. Do we want to?
private int[] bcCaseCount;
private int[][] bcCaseValue;
private int[] bcByte;
@@ -137,7 +139,6 @@
for (int i = 0; i < codes.length; i++) {
codes[i] = methodByteCodePacked[c][m][i] & 0xff;
}
- debug(Arrays.toString(codes));
for (int i = 0; i < methodByteCodePacked[c][m].length; i++) {
int codePacked = 0xff & methodByteCodePacked[c][m][i];
// TODO a lot of this needs to be encapsulated in the
@@ -467,6 +468,5 @@
public int[][] getBcEscByte() {
return bcEscByte;
- }
-
+ }
}