Commit Graph

570 Commits

Author SHA1 Message Date
fb3a23f02d Fixed behavior of readLine accepting *\n\n as a line, not two 2011-09-01 09:31:08 -06:00
97e03b9f28 Fixed possible ArrayIndexOutOfBounds exception 2011-09-01 09:11:39 -06:00
c75b06ddc1 Added support for non POSIX line endings. Will now accept: \r and \r\n as line endings (per Sun's JavaDoc) 2011-08-31 20:46:15 -06:00
4514833700 Changes to add end function to Inflater and Deflater per the java spec 2011-05-31 14:46:15 -06:00
a0962d7ab2 look for __powerpc__ as well as __POWERPC__ in jni-util.h
The former is used on GNU/Linux.
2011-02-28 16:50:17 -07:00
c761ac6717 fix Subroutine test for use with OpenJDK build 2011-02-17 14:28:51 -07:00
c743140e08 add new subroutine test
This test covers the case where a local stack slot is first used to
store an object reference and later to store a subroutine return
address.  Unfortunately, this confuses the VM's stack mapping code;
I'll be working on a fix for that next.

The new test requires generating bytecode from scratch, since there's
no reliable way to get javac to generate the code we want.  Since we
already had primitive bytecode construction code in Proxy.java, I
factored it out so we can reuse it in Subroutine.java.
2011-02-16 11:41:33 -07:00
a8645b6b2d fix BufferedInputStream.read regression
In commit 7fffba2, I had modified BufferedInputStream.read to keep
reading until in.available() <= 0 or an EOF was reached, but neglected
to update the offset into the destination buffer after each read.
This caused the previously-read data to be overwritten.  This commit
fixes that regression.
2011-02-08 18:56:25 -07:00
220f7760b7 fix MSVC build regressions 2011-01-21 16:14:21 -07:00
3aff7dc861 add TreeSet(Collection) constructor 2011-01-20 09:39:16 -07:00
0ca7ed8c67 add Package.getName 2011-01-20 09:35:34 -07:00
3a2a46499e add Reader.mark/markSupported/reset 2011-01-20 09:34:46 -07:00
b57e734ceb implement Character.forDigit 2011-01-20 09:33:50 -07:00
51c56c1b3c add PrintStream.print[ln] overloads for primitives and char arrays 2011-01-20 08:26:56 -07:00
4a9ff55060 File.length should return 0 for non-existent files 2011-01-17 09:48:34 -07:00
b6978c6c68 always create file if necessary in Java_java_io_FileOutputStream_open
Previously, we would only create the file if it did not already exist
*and* we weren't appending.  Now we do so whether appending or not.
2011-01-14 11:26:00 -07:00
d12d33d716 fix memory leak in Java_java_io_File_length 2011-01-14 08:13:49 -07:00
69dc2026a1 provide default implementation for ClassLoader.reallyFindLoadedClass
This is a non-standard method, so we shouldn't expect subclasses to
implement it.
2011-01-13 08:57:39 -07:00
0c253c40a2 add ServerSocketChannel.handleReadyOps to fix build 2011-01-13 07:03:28 -07:00
39018c20e0 check connection readyness in SocketChannel.finishConnect if necessary 2011-01-11 18:39:48 -07:00
eb3a9f010b fix false positive return from SocketChannel.finishConnect
This fixes a bug in finishConnect such that it would return true even
if the socket had not yet connected successfully.
2011-01-11 18:29:48 -07:00
4f0dccb53c add Channels.newChannel methods 2011-01-11 18:26:37 -07:00
dd52908f89 add URLConnection methods 2011-01-11 18:25:34 -07:00
3d49173b0b avoid inifinite recursion if java.lang.Object is missing; refactoring
When trying to create an array class, we try to resolve
java.lang.Object so we can use its vtable in the array class.
However, if Object is missing, we'll try to create and throw a
ClassNotFoundException, which requires creating an array to store the
stack trace, which requires creating an array class, which requires
resolving Object, etc..  This commit short-circuits this process by
telling resolveClass not to create and throw an exception if it can't
find Object.

While doing the above work, I noticed that the implementations of
Classpath::makeThrowable in classpath-avian.cpp and
classpath-openjdk.cpp were identical, so I made makeThrowable a
top-level function.

Finally, I discovered that Thread.setDaemon can only be called before
the target thread has been started, which allowed me to simplify the
code to track daemon threads in the VM.
2010-12-09 19:38:12 -07:00
a5742f5985 update copyright years 2010-12-05 20:21:09 -07:00
800463bb45 clarify Continuations.java JavaDoc comment 2010-12-05 18:56:19 -07:00
1271678d41 various fixes for embedded resource loading in OpenJDK build 2010-12-05 17:40:50 -07:00
d00f4c5390 fix BufferedInputStream.read to not read more than specified length 2010-12-01 15:41:55 -07:00
84520cde51 Merge remote branch 'origin/master' into openjdk 2010-12-01 14:40:58 -07:00
d4708907ea fix non-openjdk build 2010-11-27 11:31:34 -07:00
459f4d5194 fix openjdk-src bootimage build
The main change here is to use a lazily-populated vector to associate
runtime data with classes instead of referencing them directly from
the class which requires updating immutable references in the heap
image.  The other changes employ other strategies to avoid trying to
update immutable references.
2010-11-26 12:41:31 -07:00
f9197cb076 fix a few HashMap bugs
1. HashMap.containsValue only checked one hash bucket, which was
 pretty much useless :)

 2. HashMap.MyIterator.remove was broken in that it failed to
 decrement the size field and it did not update the previousCell field
 properly, which sometimes led to more than one cell being removed.
2010-11-21 17:26:17 -07:00
aac85ff278 remove @Overload annotation since Java 1.5.0_19 chokes on it 2010-11-17 10:42:28 -07:00
a611ccda6f Merge remote branch 'origin/master' into openjdk
Conflicts:
	makefile
	src/compile.cpp
	src/compiler.cpp
	src/type-generator.cpp
2010-11-16 10:18:08 -07:00
44f55673d6 fix handle leaks in Windows Process implementation 2010-11-09 14:56:26 -07:00
2d60398e63 fix bug which caused Runtime.exec to block until process exits 2010-11-09 12:38:23 -07:00
ababc5748d fix regression in last commit
My last commit unintentionally changed the return type of Runtime.exec
to Runtime.MyProcess instead of Process.
2010-11-09 11:21:55 -07:00
3d18f88ad9 fix Runtime.exec bugs
The first bug affected POSIX systems: if the app never called
Process.waitFor, we'd never call waitpid on the child and thus leak a
zombie process.  This patch ensures that we always call waitpid by
spawning a thread to handle it.

The second bug affected Windows systems: we weren't closing the
child's ends of the stdin, stdout, and stderr pipes after process
creation, which lead to us blocking forever while reading from the
child's stdout or stderr.
2010-11-09 10:22:23 -07:00
580e7e1b3f remove @Overload annotation since Java 1.5.0_19 chokes on it 2010-11-07 12:57:42 -07:00
cb69ac23bd Merge remote branch 'origin/master' into openjdk
Conflicts:
	classpath/java/lang/String.java
	src/posix.cpp
2010-11-03 11:54:41 -06:00
5ade8d1cf6 use GetSystemTimeAsFileTime instead of _ftime on Windows
It seems that _ftime has devolved to only giving 1-second resolution
on Windows 7.  GetSystemTimeAsFileTime does better, so that's what
we'll use.
2010-10-28 20:30:49 -06:00
5cbfee467c fix Runtime.exec on Posix
Due to a silly cut-and-paste error, we were incorrectly passing the
stdout and stderr file descriptors back from native code to Java,
which prevented reading the output of the child process.
2010-10-22 14:39:38 -06:00
b3accf1b30 ServerSocketChannel throws IOException, not Exception 2010-10-13 13:38:31 -06:00
c1c9d2111b remove GNU Classpath and Apache Harmony compatibility code
Rather than try to support mixing Avian's core classes with those of
an external class library -- which necessitates adding a lot of stub
methods which throw UnsupportedOperationExceptions, among other
comprimises -- we're looking to support such external class libraries
in their unmodified forms.  The latter strategy has already proven
successful with OpenJDK's class library.  Thus, this commit removes
the stub methods, etc., which not only cleans up the code but avoids
misleading application developers as to what classes and methods
Avian's built-in class library supports.
2010-09-27 15:58:02 -06:00
268d2de175 cache array class lookups in element class; misc. bugfixes 2010-09-25 15:54:01 -06:00
c939d16687 formatting tweak in Classes.java 2010-09-25 15:51:30 -06:00
0456a9fd49 define user.dir property in Java_java_lang_System_getProperty 2010-09-20 17:28:42 -06:00
64e42da348 implement avian.Handler.ResourceInputStream.available 2010-09-17 16:11:04 -06:00
7fffba29e6 Keep reading in BufferedInputStream.read until in.available() <= 0
This corresponds to the documented behavior of OpenJDK's version.
2010-09-17 16:08:42 -06:00
d0d53e2e10 fix custom-classloader-related concurrency problems and other bugs
The main changes in this commit ensure that we don't hold the global
class lock when doing class resolution using application-defined
classloaders.  Such classloaders may do their own locking (in fact,
it's almost certain), making deadlock likely when mixed with VM-level
locking in various orders.

Other changes include a fix to avoid overflow when waiting for
extremely long intervals and a GC root stack mapping bug.
2010-09-16 20:49:02 -06:00