Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
From: <steveb-oss@us...> - 2009-12-17 12:01:38
|
Revision: 15803 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=15803&view=rev Author: steveb-oss Date: 2009-12-17 12:01:28 +0000 (Thu, 17 Dec 2009) Log Message: ----------- Fix handling of headless mode. RVM-878, Thanks to Byeong Lee Modified Paths: -------------- rvmroot/trunk/build/components/classpath.xml Added Paths: ----------- rvmroot/trunk/build/components/patches/classpath-web.RVM-878.patch Modified: rvmroot/trunk/build/components/classpath.xml =================================================================== --- rvmroot/trunk/build/components/classpath.xml 2009-12-17 11:53:26 UTC (rev 15802) +++ rvmroot/trunk/build/components/classpath.xml 2009-12-17 12:01:28 UTC (rev 15803) @@ -173,6 +173,8 @@ dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-web.RVM-732.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-web.RVM-878.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> </target> <target name="patch" depends="patch-classpath-web,patch-classpath-cvs"/> Added: rvmroot/trunk/build/components/patches/classpath-web.RVM-878.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-web.RVM-878.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-web.RVM-878.patch 2009-12-17 12:01:28 UTC (rev 15803) @@ -0,0 +1,16 @@ +--- java/awt/Toolkit.java 2009-12-17 22:19:41.000000000 +1100 ++++ java/awt/Toolkit.java 2009-12-17 22:21:28.000000000 +1100 +@@ -567,6 +567,13 @@ + if (toolkit != null) + return toolkit; + ++ // Check for the headless property. ++ if (GraphicsEnvironment.isHeadless()) ++ { ++ toolkit = new HeadlessToolkit(); ++ return toolkit; ++ } ++ + String toolkit_name = SystemProperties.getProperty("awt.toolkit", + default_toolkit_name); + try This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gnu_andrew@us...> - 2008-08-19 22:34:18
|
Revision: 14911 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=14911&view=rev Author: gnu_andrew Date: 2008-08-19 22:34:15 +0000 (Tue, 19 Aug 2008) Log Message: ----------- Remove RVM526 patch, now applied to Classpath CVS. Modified Paths: -------------- rvmroot/trunk/build/components/classpath.xml Removed Paths: ------------- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-526.patch Modified: rvmroot/trunk/build/components/classpath.xml =================================================================== --- rvmroot/trunk/build/components/classpath.xml 2008-08-19 13:46:03 UTC (rev 14910) +++ rvmroot/trunk/build/components/classpath.xml 2008-08-19 22:34:15 UTC (rev 14911) @@ -19,7 +19,7 @@ <!-- in target patch-classpath-web --> <property name="classpath.version" value="97.2"/> <!-- Change this whenever you alter the patches. It will let people know classpath has changed. --> - <property name="classpath.patchlevel" value="4"/> + <property name="classpath.patchlevel" value="5"/> <property name="classpath.description" value="GNU Classpath"/> <property name="classpath.component.dir" location="${components.dir}/classpath"/> @@ -115,8 +115,6 @@ dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-443.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> - <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-526.patch" - dir="${classpath.package.dir}/classpath/" strip="0"/> </target> <!-- Patches against the current stable version --> Deleted: rvmroot/trunk/build/components/patches/classpath-cvs.RVM-526.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-526.patch 2008-08-19 13:46:03 UTC (rev 14910) +++ rvmroot/trunk/build/components/patches/classpath-cvs.RVM-526.patch 2008-08-19 22:34:15 UTC (rev 14911) @@ -1,27 +0,0 @@ -Index: scripts/check_jni_methods.sh.in -=================================================================== -RCS file: /sources/classpath/classpath/scripts/check_jni_methods.sh.in,v -retrieving revision 1.5 -diff -u -r1.5 check_jni_methods.sh.in ---- scripts/check_jni_methods.sh.in 11 Jun 2008 21:37:49 -0000 1.5 -+++ scripts/check_jni_methods.sh.in 23 Jun 2008 20:03:20 -0000 -@@ -6,12 +6,16 @@ - TMPFILE=/tmp/check-jni-methods.$$.1 - TMPFILE2=/tmp/check-jni-methods.$$.2 - TMPFILE3=/tmp/check-jni-methods.$$.3 -+TMPFILE4=/tmp/check-jni-methods.$$.4 - - # Find all methods defined in the header files generated - # from the java source files. --grep -h '^JNIEXPORT .* Java_' @abs_top_builddir@/include/*.h @abs_top_srcdir@/include/*.h | \ -- LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' | \ -- sort -u > $TMPFILE -+grep -h '^JNIEXPORT .* Java_' @abs_top_srcdir@/include/*.h | \ -+ LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' > $TMPFILE -+grep -h '^JNIEXPORT .* Java_' @abs_top_builddir@/include/*.h | \ -+ LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE -+sort -u $TMPFILE >> $TMPFILE4 -+mv $TMPFILE4 $TMPFILE - - # Find all methods in the JNI C source files. - find @abs_top_srcdir@/native/jni -name \*.c | \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <captain5050@us...> - 2008-08-29 11:41:29
|
Revision: 14942 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=14942&view=rev Author: captain5050 Date: 2008-08-29 11:41:26 +0000 (Fri, 29 Aug 2008) Log Message: ----------- RVM-644: try to do a little less redundant char[] copying in Proxy Modified Paths: -------------- rvmroot/trunk/build/components/classpath.xml Added Paths: ----------- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-644.patch rvmroot/trunk/build/components/patches/classpath-web.RVM-644.patch Modified: rvmroot/trunk/build/components/classpath.xml =================================================================== --- rvmroot/trunk/build/components/classpath.xml 2008-08-29 01:47:28 UTC (rev 14941) +++ rvmroot/trunk/build/components/classpath.xml 2008-08-29 11:41:26 UTC (rev 14942) @@ -19,7 +19,7 @@ <!-- in target patch-classpath-web --> <property name="classpath.version" value="97.2"/> <!-- Change this whenever you alter the patches. It will let people know classpath has changed. --> - <property name="classpath.patchlevel" value="5"/> + <property name="classpath.patchlevel" value="6"/> <property name="classpath.description" value="GNU Classpath"/> <property name="classpath.component.dir" location="${components.dir}/classpath"/> @@ -115,6 +115,8 @@ dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-443.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-644.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> </target> <!-- Patches against the current stable version --> @@ -169,6 +171,8 @@ dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-web.RVM-443.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-web.RVM-644.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> </target> <target name="patch" depends="patch-classpath-web,patch-classpath-cvs"/> Added: rvmroot/trunk/build/components/patches/classpath-cvs.RVM-644.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-644.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-cvs.RVM-644.patch 2008-08-29 11:41:26 UTC (rev 14942) @@ -0,0 +1,68 @@ +Index: java/lang/reflect/Proxy.java +=================================================================== +RCS file: /sources/classpath/classpath/java/lang/reflect/Proxy.java,v +retrieving revision 1.30 +diff -u -r1.30 Proxy.java +--- java/lang/reflect/Proxy.java 16 Mar 2008 22:04:51 -0000 1.30 ++++ java/lang/reflect/Proxy.java 29 Aug 2008 11:01:45 -0000 +@@ -1402,7 +1402,12 @@ + { + String utf8 = toUtf8(str); + int len = utf8.length(); +- return poolIndex("\1" + (char) (len >> 8) + (char) (len & 0xff) + utf8); ++ CPStringBuilder buf = new CPStringBuilder(len+3); ++ buf.append('\1'); ++ buf.append((char) (len >> 8)); ++ buf.append((char) (len & 0xff)); ++ buf.append(utf8); ++ return poolIndex(buf.toString()); + } + + /** +@@ -1416,7 +1421,7 @@ + { + char index = utf8Info(name); + char[] c = {7, (char) (index >> 8), (char) (index & 0xff)}; +- return poolIndex(new String(c)); ++ return poolIndex(stringFromCharArray(c)); + } + + /** +@@ -1452,7 +1457,7 @@ + char[] c = {(char) (structure + 8), + (char) (cindex >> 8), (char) (cindex & 0xff), + (char) (ntindex >> 8), (char) (ntindex & 0xff)}; +- return poolIndex(new String(c)); ++ return poolIndex(stringFromCharArray(c)); + } + + /** +@@ -1469,7 +1474,7 @@ + char tindex = utf8Info(type); + char[] c = {12, (char) (nindex >> 8), (char) (nindex & 0xff), + (char) (tindex >> 8), (char) (tindex & 0xff)}; +- return poolIndex(new String(c)); ++ return poolIndex(stringFromCharArray(c)); + } + + /** +@@ -1541,5 +1546,19 @@ + } + return (char) i.intValue(); + } ++ ++ /** ++ * Return a String wrapping the char array avoiding copying the char array ++ * if possible ++ * ++ * @param c the char array ++ * @return the String ++ */ ++ private String stringFromCharArray(char[] c) ++ { ++ // TODO: we need some back door like VMCPStringBuilder to avoid copying ++ // the character array in this situation ++ return new String(c); ++ } + } // class ClassFactory + } Added: rvmroot/trunk/build/components/patches/classpath-web.RVM-644.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-web.RVM-644.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-web.RVM-644.patch 2008-08-29 11:41:26 UTC (rev 14942) @@ -0,0 +1,68 @@ +Index: java/lang/reflect/Proxy.java +=================================================================== +RCS file: /sources/classpath/classpath/java/lang/reflect/Proxy.java,v +retrieving revision 1.30 +diff -u -r1.30 Proxy.java +--- java/lang/reflect/Proxy.java 16 Mar 2008 22:04:51 -0000 1.30 ++++ java/lang/reflect/Proxy.java 29 Aug 2008 11:01:39 -0000 +@@ -1402,7 +1402,12 @@ + { + String utf8 = toUtf8(str); + int len = utf8.length(); +- return poolIndex("\1" + (char) (len >> 8) + (char) (len & 0xff) + utf8); ++ CPStringBuilder buf = new CPStringBuilder(len+3); ++ buf.append('\1'); ++ buf.append((char) (len >> 8)); ++ buf.append((char) (len & 0xff)); ++ buf.append(utf8); ++ return poolIndex(buf.toString()); + } + + /** +@@ -1416,7 +1421,7 @@ + { + char index = utf8Info(name); + char[] c = {7, (char) (index >> 8), (char) (index & 0xff)}; +- return poolIndex(new String(c)); ++ return poolIndex(stringFromCharArray(c)); + } + + /** +@@ -1452,7 +1457,7 @@ + char[] c = {(char) (structure + 8), + (char) (cindex >> 8), (char) (cindex & 0xff), + (char) (ntindex >> 8), (char) (ntindex & 0xff)}; +- return poolIndex(new String(c)); ++ return poolIndex(stringFromCharArray(c)); + } + + /** +@@ -1469,7 +1474,7 @@ + char tindex = utf8Info(type); + char[] c = {12, (char) (nindex >> 8), (char) (nindex & 0xff), + (char) (tindex >> 8), (char) (tindex & 0xff)}; +- return poolIndex(new String(c)); ++ return poolIndex(stringFromCharArray(c)); + } + + /** +@@ -1541,5 +1546,19 @@ + } + return (char) i.intValue(); + } ++ ++ /** ++ * Return a String wrapping the char array avoiding copying the char array ++ * if possible ++ * ++ * @param c the char array ++ * @return the String ++ */ ++ private String stringFromCharArray(char[] c) ++ { ++ // TODO: we need some back door like VMCPStringBuilder to avoid copying ++ // the character array in this situation ++ return new String(c); ++ } + } // class ClassFactory + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gnu_andrew@us...> - 2008-09-10 02:15:21
|
Revision: 14962 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=14962&view=rev Author: gnu_andrew Date: 2008-09-10 02:15:18 +0000 (Wed, 10 Sep 2008) Log Message: ----------- Remove patches committed to GNU Classpath. Modified Paths: -------------- rvmroot/trunk/build/components/classpath.xml Removed Paths: ------------- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-185.patch rvmroot/trunk/build/components/patches/classpath-cvs.RVM-392.patch Modified: rvmroot/trunk/build/components/classpath.xml =================================================================== --- rvmroot/trunk/build/components/classpath.xml 2008-09-10 02:06:22 UTC (rev 14961) +++ rvmroot/trunk/build/components/classpath.xml 2008-09-10 02:15:18 UTC (rev 14962) @@ -19,7 +19,7 @@ <!-- in target patch-classpath-web --> <property name="classpath.version" value="97.2"/> <!-- Change this whenever you alter the patches. It will let people know classpath has changed. --> - <property name="classpath.patchlevel" value="6"/> + <property name="classpath.patchlevel" value="7"/> <property name="classpath.description" value="GNU Classpath"/> <property name="classpath.component.dir" location="${components.dir}/classpath"/> @@ -109,10 +109,6 @@ <!-- Patches against CVS head --> <target name="patch-classpath-cvs" depends="fetch" if="classpath.from-cvs"> - <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-185.patch" - dir="${classpath.package.dir}/classpath/" strip="0"/> - <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-392.patch" - dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-443.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-644.patch" Deleted: rvmroot/trunk/build/components/patches/classpath-cvs.RVM-185.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-185.patch 2008-09-10 02:06:22 UTC (rev 14961) +++ rvmroot/trunk/build/components/patches/classpath-cvs.RVM-185.patch 2008-09-10 02:15:18 UTC (rev 14962) @@ -1,508 +0,0 @@ ---- java/lang/Thread.java 2006-12-11 10:06:55.000000000 +1100 -+++ java/lang/Thread.java 2007-08-22 19:20:32.000000000 +1000 -@@ -159,7 +159,7 @@ - /** Thread local storage. Package accessible for use by - * InheritableThreadLocal. - */ -- WeakIdentityHashMap locals; -+ final ThreadLocalMap locals; - - /** The uncaught exception handler. */ - UncaughtExceptionHandler exceptionHandler; -@@ -367,6 +367,7 @@ - this.name = name.toString(); - this.runnable = target; - this.stacksize = size; -+ this.locals = new ThreadLocalMap(); - - synchronized (Thread.class) - { -@@ -398,6 +399,7 @@ - */ - Thread(VMThread vmThread, String name, int priority, boolean daemon) - { -+ this.locals = new ThreadLocalMap(); - this.vmThread = vmThread; - this.runnable = null; - if (name == null) -@@ -1063,21 +1065,15 @@ - { - group.removeThread(this); - vmThread = null; -- locals = null; -+ locals.clear(); - } - - /** - * Returns the map used by ThreadLocal to store the thread local values. - */ -- static Map getThreadLocals() -+ static ThreadLocalMap getThreadLocals() - { -- Thread thread = currentThread(); -- Map locals = thread.locals; -- if (locals == null) -- { -- locals = thread.locals = new WeakIdentityHashMap(); -- } -- return locals; -+ return currentThread().locals; - } - - /** ---- java/lang/ThreadLocal.java 2006-12-11 07:25:44.000000000 +1100 -+++ java/lang/ThreadLocal.java 2007-08-22 18:45:24.000000000 +1000 -@@ -37,9 +37,6 @@ - - package java.lang; - --import java.util.Map; -- -- - /** - * ThreadLocal objects have a different state associated with every - * Thread that accesses them. Every access to the ThreadLocal object -@@ -93,13 +90,31 @@ - * user. Do not expose this to the public. Package visible for use by - * InheritableThreadLocal - */ -- static final Object sentinel = new Object(); -+ static final Object notFound = new Object(); -+ -+ /** -+ * The base for the computation of the next hash for a thread local. -+ */ -+ private static int nextHashBase = 1; -+ -+ /** -+ * Allocate a new hash. -+ */ -+ private synchronized int computeNextHash() { -+ return nextHashBase++ * 6709; -+ } -+ -+ /** -+ * Hash code computed for ThreadLocalMap -+ */ -+ final int fastHash; - - /** - * Creates a ThreadLocal object without associating any value to it yet. - */ - public ThreadLocal() - { -+ fastHash = computeNextHash(); - } - - /** -@@ -125,16 +140,16 @@ - */ - public T get() - { -- Map<ThreadLocal<T>,T> map = (Map<ThreadLocal<T>,T>) Thread.getThreadLocals(); -+ ThreadLocalMap map = Thread.getThreadLocals(); - // Note that we don't have to synchronize, as only this thread will - // ever modify the map. -- T value = map.get(this); -- if (value == null) -+ T value = (T) map.get(this); -+ if (value == notFound) - { - value = initialValue(); -- map.put(this, (T) (value == null ? sentinel : value)); -+ map.set(this, value); - } -- return value == (T) sentinel ? null : value; -+ return value; - } - - /** -@@ -147,10 +162,10 @@ - */ - public void set(T value) - { -- Map map = Thread.getThreadLocals(); -+ ThreadLocalMap map = Thread.getThreadLocals(); - // Note that we don't have to synchronize, as only this thread will - // ever modify the map. -- map.put(this, value == null ? sentinel : value); -+ map.set(this, value); - } - - /** -@@ -160,7 +175,7 @@ - */ - public void remove() - { -- Map map = Thread.getThreadLocals(); -+ ThreadLocalMap map = Thread.getThreadLocals(); - map.remove(this); - } - } ---- java/lang/InheritableThreadLocal.java 2006-12-11 07:25:44.000000000 +1100 -+++ java/lang/InheritableThreadLocal.java 2007-08-22 19:05:57.000000000 +1000 -@@ -37,10 +37,6 @@ - - package java.lang; - --import gnu.java.util.WeakIdentityHashMap; -- --import java.util.Iterator; -- - /** - * A ThreadLocal whose value is inherited by child Threads. The value of the - * InheritableThreadLocal associated with the (parent) Thread is copied to -@@ -97,24 +93,6 @@ - { - // The currentThread is the parent of the new thread. - Thread parentThread = Thread.currentThread(); -- if (parentThread.locals != null) -- { -- Iterator keys = parentThread.locals.keySet().iterator(); -- while (keys.hasNext()) -- { -- Object key = keys.next(); -- if (key instanceof InheritableThreadLocal) -- { -- InheritableThreadLocal local = (InheritableThreadLocal)key; -- Object parentValue = parentThread.locals.get(key); -- Object childValue = local.childValue(parentValue == sentinel -- ? null : parentValue); -- if (childThread.locals == null) -- childThread.locals = new WeakIdentityHashMap(); -- childThread.locals.put(key, (childValue == null -- ? sentinel : childValue)); -- } -- } -- } -+ childThread.locals.inherit(parentThread.locals); - } - } ---- java/lang/ThreadLocalMap.java 2007-04-15 21:49:35.000000000 +1000 -+++ java/lang/ThreadLocalMap.java 2007-08-22 19:31:21.000000000 +1000 -@@ -0,0 +1,325 @@ -+/* ThreadLocal -- a variable with a unique value per thread -+ Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -+ -+This file is part of GNU Classpath. -+ -+GNU Classpath is free software; you can redistribute it and/or modify -+it under the terms of the GNU General Public License as published by -+the Free Software Foundation; either version 2, or (at your option) -+any later version. -+ -+GNU Classpath is distributed in the hope that it will be useful, but -+WITHOUT ANY WARRANTY; without even the implied warranty of -+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+General Public License for more details. -+ -+You should have received a copy of the GNU General Public License -+along with GNU Classpath; see the file COPYING. If not, write to the -+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -+02110-1301 USA. -+ -+Linking this library statically or dynamically with other modules is -+making a combined work based on this library. Thus, the terms and -+conditions of the GNU General Public License cover the whole -+combination. -+ -+As a special exception, the copyright holders of this library give you -+permission to link this library with independent modules to produce an -+executable, regardless of the license terms of these independent -+modules, and to copy and distribute the resulting executable under -+terms of your choice, provided that you also meet, for each linked -+independent module, the terms and conditions of the license of that -+module. An independent module is a module which is not derived from -+or based on this library. If you modify this library, you may extend -+this exception to your version of the library, but you are not -+obligated to do so. If you do not wish to do so, delete this -+exception statement from your version. */ -+ -+package java.lang; -+ -+import java.lang.ref.WeakReference; -+ -+/** -+ * ThreadLocalMap is the basic storage for the map of ThreadLocal instance -+ * to a thread's current value. -+ * -+ * Some applications really work out ThreadLocals, leading to this -+ * optimized implementation. -+ */ -+final class ThreadLocalMap -+{ -+ /** -+ * The log (base 2) of the initial size of the map -+ */ -+ private static final int LOG_INITIAL_SIZE = 3; -+ -+ /** -+ * The maximum occupancy rate (after which we grow) -+ */ -+ private static final float MAX_OCCUPANCY = 0.7f; -+ -+ /** -+ * The target occupancy rate. -+ */ -+ private static final float TARGET_OCCUPANCY = 0.5f; -+ -+ /** -+ * The deleted entry sentinel value. -+ */ -+ private static final Entry deletedEntry = new Entry(null); -+ -+ /** -+ * Constructor -+ */ -+ ThreadLocalMap() -+ { -+ /* Dummy value to ensure fast path can be optimized */ -+ entries = new Entry[1]; -+ hashMask = 0; -+ count = 0; -+ } -+ -+ /** -+ * The map entries -+ */ -+ private Entry[] entries; -+ -+ /** -+ * Used for start index computation -+ */ -+ private int hashMask; -+ -+ /** -+ * The number of entries currently in the map -+ */ -+ private int count; -+ -+ /** -+ * Create or grow the table to the specified size. The size must be a -+ * power of two for the efficient mask/hash computation. -+ * -+ * @param newSize The new table size. -+ */ -+ private void newEntryArray(int newSize) -+ { -+ int mask = newSize - 1; -+ Entry[] oldEntries = this.entries; -+ this.entries = new Entry[newSize]; -+ this.hashMask = mask; -+ -+ /* Copy old entries to new table */ -+ count = 0; -+ if (oldEntries != null) -+ { -+ for(Entry e: oldEntries) -+ { -+ if (e != null) -+ { -+ ThreadLocal<?> key = e.get(); -+ if (e != deletedEntry && key != null) -+ { -+ for(int i = key.fastHash & mask;; i = (i + 1) & mask) -+ { -+ if (entries[i] == null) -+ { -+ entries[i] = e; -+ count++; -+ break; -+ } -+ } -+ } -+ } -+ } -+ } -+ } -+ -+ /** -+ * We have run out of space in our locals. We use this as the -+ * trigger to attempt to find unused slots as ThreadLocals have -+ * died. If we recover any slots this way then we do not grow. -+ */ -+ private void overflow() -+ { -+ /* First 'actual' use */ -+ if (entries.length == 1) -+ { -+ newEntryArray(1 << LOG_INITIAL_SIZE); -+ return; -+ } -+ -+ /* Attempt to recover unused slots */ -+ int deleted = 0; -+ for(int i=0; i < entries.length; i++) -+ { -+ Entry e = entries[i]; -+ if (e != null) -+ { -+ if (e == deletedEntry) -+ { -+ deleted++; -+ } -+ else if (e.get() == null) -+ { -+ entries[i] = deletedEntry; -+ deleted++; -+ } -+ } -+ } -+ -+ if ((count-deleted) <= (TARGET_OCCUPANCY * entries.length)) -+ { -+ /* We currently rehash by simple reallocating into a same-sized table. -+ * An alternative would be to implement a clever hashing algorithm but -+ * as this happens infrequently this seems preferred */ -+ newEntryArray(entries.length); -+ return; -+ } -+ -+ /* Double the size */ -+ newEntryArray(entries.length << 1); -+ } -+ -+ /** -+ * This is the class that is used to refer to a thread local weakly. -+ * -+ * As we want to minimize indirections we extend WeakReference. -+ */ -+ static final class Entry extends WeakReference<ThreadLocal<?>> { -+ /** -+ * The value stored in this slot -+ */ -+ Object value; -+ -+ /** -+ * Constructor -+ */ -+ Entry(ThreadLocal<?> threadLocal) { -+ super(threadLocal); -+ } -+ } -+ -+ /** -+ * Gets the value associated with the ThreadLocal object for the currently -+ * executing Thread. If this is the first time the current thread has called -+ * get(), and it has not already called set(), the sentinel value is returned. -+ * -+ * @return the value of the variable in this thread, or sentinel if not present. -+ */ -+ public Object get(ThreadLocal<?> key) -+ { -+ int mask = this.hashMask; -+ for(int i = key.fastHash & mask;; i = (i + 1) & mask) { -+ Entry e = entries[i]; -+ if (e != null) { -+ if (e.get() == key) { -+ return e.value; -+ } -+ } else { -+ return ThreadLocal.notFound; -+ } -+ } -+ } -+ -+ /** -+ * Sets the value associated with the ThreadLocal object for the currently -+ * executing Thread. This overrides any existing value associated with the -+ * current Thread and prevents <code>initialValue()</code> from being -+ * called if this is the first access to this ThreadLocal in this Thread. -+ * -+ * @param value the value to set this thread's view of the variable to -+ */ -+ public void set(ThreadLocal<?> key, Object value) -+ { -+ /* Overflow ? */ -+ if ((count+1) >= (MAX_OCCUPANCY * entries.length)) -+ { -+ overflow(); -+ } -+ -+ /* Set the entry */ -+ int mask = this.hashMask; -+ for(int i = key.fastHash & mask;; i = (i + 1) & mask) -+ { -+ Entry e = entries[i]; -+ if (e == null || e == deletedEntry) -+ { -+ /* Create entry */ -+ if (e == null) count++; -+ entries[i] = e = new Entry(key); -+ e.value = value; -+ return; -+ } -+ else -+ { -+ ThreadLocal<?> entryKey = e.get(); -+ if (entryKey == null) -+ { -+ entries[i] = deletedEntry; -+ } -+ else if (entryKey == key) -+ { -+ /* Update entry */ -+ e.value = value; -+ return; -+ } -+ } -+ } -+ } -+ -+ /** -+ * Removes the value associated with the ThreadLocal object for the -+ * currently executing Thread. -+ * @since 1.5 -+ */ -+ public void remove(ThreadLocal<?> key) -+ { -+ int mask = this.hashMask; -+ for(int i = key.fastHash & mask;; i = (i + 1) & mask) -+ { -+ Entry e = entries[i]; -+ if (e != null) -+ { -+ ThreadLocal<?> entryKey = e.get(); -+ if (entryKey != key) -+ { -+ if (entryKey == null) { -+ entries[i] = deletedEntry; -+ } -+ continue; -+ } -+ else -+ { -+ /* Remove from the table */ -+ entries[i] = deletedEntry; -+ } -+ } -+ return; -+ } -+ } -+ -+ /** -+ * Clear out the map. Done once during thread death. -+ */ -+ void clear() { -+ entries = null; -+ } -+ -+ /** -+ * Inherit all the InheritableThreadLocal instances from the given parent. -+ * -+ * @param parentMap The map to inherit from. -+ */ -+ public void inherit(ThreadLocalMap parentMap) { -+ for(Entry e: parentMap.entries) -+ { -+ if (e != null && e != deletedEntry) -+ { -+ ThreadLocal<?> key = e.get(); -+ if (key instanceof InheritableThreadLocal) -+ { -+ set(key, ((InheritableThreadLocal)key).childValue(e.value)); -+ } -+ } -+ } -+ } -+} Deleted: rvmroot/trunk/build/components/patches/classpath-cvs.RVM-392.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-392.patch 2008-09-10 02:06:22 UTC (rev 14961) +++ rvmroot/trunk/build/components/patches/classpath-cvs.RVM-392.patch 2008-09-10 02:15:18 UTC (rev 14962) @@ -1,234 +0,0 @@ ---- java/util/zip/ZipEntry.java 2007-10-07 19:48:46.000000000 +0100 -+++ java/util/zip/ZipEntry.java 2008-03-07 13:53:25.000000000 +0000 -@@ -50,23 +50,39 @@ - */ - public class ZipEntry implements ZipConstants, Cloneable - { -- private static final int KNOWN_SIZE = 1; -- private static final int KNOWN_CSIZE = 2; -- private static final int KNOWN_CRC = 4; -- private static final int KNOWN_TIME = 8; -- private static final int KNOWN_EXTRA = 16; -- -- private static Calendar cal; -- -- private String name; -+ private static final byte KNOWN_SIZE = 1; -+ private static final byte KNOWN_CSIZE = 2; -+ private static final byte KNOWN_CRC = 4; -+ private static final byte KNOWN_TIME = 8; -+ private static final byte KNOWN_DOSTIME = 16; -+ private static final byte KNOWN_EXTRA = 32; -+ -+ /** Immutable name of the entry */ -+ private final String name; -+ /** Uncompressed size */ - private int size; -+ /** Compressed size */ - private long compressedSize = -1; -+ /** CRC of uncompressed data */ - private int crc; -+ /** Comment or null if none */ -+ private String comment = null; -+ /** The compression method. Either DEFLATED or STORED, by default -1. */ -+ private byte method = -1; -+ /** Flags specifying what we know about this entry */ -+ private byte known = 0; -+ /** -+ * The 32bit DOS encoded format for the time of this entry. Only valid if -+ * KNOWN_DOSTIME is set in known. -+ */ - private int dostime; -- private short known = 0; -- private short method = -1; -+ /** -+ * The 64bit Java encoded millisecond time since the beginning of the epoch. -+ * Only valid if KNOWN_TIME is set in known. -+ */ -+ private long time; -+ /** Extra data */ - private byte[] extra = null; -- private String comment = null; - - int flags; /* used by ZipOutputStream */ - int offset; /* used by ZipFile and ZipOutputStream */ -@@ -113,6 +129,7 @@ - compressedSize = e.compressedSize; - crc = e.crc; - dostime = e.dostime; -+ time = e.time; - method = e.method; - extra = e.extra; - comment = e.comment; -@@ -121,37 +138,60 @@ - final void setDOSTime(int dostime) - { - this.dostime = dostime; -- known |= KNOWN_TIME; -+ known |= KNOWN_DOSTIME; -+ known &= ~KNOWN_TIME; - } - - final int getDOSTime() - { -- if ((known & KNOWN_TIME) == 0) -- return 0; -- else -+ if ((known & KNOWN_DOSTIME) != 0) - return dostime; -+ else if ((known & KNOWN_TIME) != 0) -+ { -+ Calendar cal = Calendar.getInstance(); -+ cal.setTimeInMillis(time); -+ dostime = (cal.get(Calendar.YEAR) - 1980 & 0x7f) << 25 -+ | (cal.get(Calendar.MONTH) + 1) << 21 -+ | (cal.get(Calendar.DAY_OF_MONTH)) << 16 -+ | (cal.get(Calendar.HOUR_OF_DAY)) << 11 -+ | (cal.get(Calendar.MINUTE)) << 5 -+ | (cal.get(Calendar.SECOND)) >> 1; -+ known |= KNOWN_DOSTIME; -+ return dostime; -+ } -+ else -+ return 0; - } - - /** - * Creates a copy of this zip entry. - */ -- /** -- * Clones the entry. -- */ - public Object clone() - { -- try -+ // JCL defines this as being the same as the copy constructor above, -+ // except that value of the "extra" field is also copied. Take care -+ // that in the case of a subclass we use clone() rather than the copy -+ // constructor. -+ ZipEntry clone; -+ if (this.getClass() == ZipEntry.class) -+ clone = new ZipEntry(this); -+ else - { -- // The JCL says that the `extra' field is also copied. -- ZipEntry clone = (ZipEntry) super.clone(); -- if (extra != null) -- clone.extra = (byte[]) extra.clone(); -- return clone; -+ try -+ { -+ clone = (ZipEntry) super.clone(); -+ } -+ catch (CloneNotSupportedException e) -+ { -+ throw new InternalError(); -+ } - } -- catch (CloneNotSupportedException ex) -+ if (extra != null) - { -- throw new InternalError(); -+ clone.extra = new byte[extra.length]; -+ System.arraycopy(extra, 0, clone.extra, 0, extra.length); - } -+ return clone; - } - - /** -@@ -169,18 +209,9 @@ - */ - public void setTime(long time) - { -- Calendar cal = getCalendar(); -- synchronized (cal) -- { -- cal.setTimeInMillis(time); -- dostime = (cal.get(Calendar.YEAR) - 1980 & 0x7f) << 25 -- | (cal.get(Calendar.MONTH) + 1) << 21 -- | (cal.get(Calendar.DAY_OF_MONTH)) << 16 -- | (cal.get(Calendar.HOUR_OF_DAY)) << 11 -- | (cal.get(Calendar.MINUTE)) << 5 -- | (cal.get(Calendar.SECOND)) >> 1; -- } -+ this.time = time; - this.known |= KNOWN_TIME; -+ this.known &= ~KNOWN_DOSTIME; - } - - /** -@@ -192,39 +223,34 @@ - // The extra bytes might contain the time (posix/unix extension) - parseExtra(); - -- if ((known & KNOWN_TIME) == 0) -- return -1; -- -- int sec = 2 * (dostime & 0x1f); -- int min = (dostime >> 5) & 0x3f; -- int hrs = (dostime >> 11) & 0x1f; -- int day = (dostime >> 16) & 0x1f; -- int mon = ((dostime >> 21) & 0xf) - 1; -- int year = ((dostime >> 25) & 0x7f) + 1980; /* since 1900 */ -- -- try -- { -- cal = getCalendar(); -- synchronized (cal) -- { -- cal.set(year, mon, day, hrs, min, sec); -- return cal.getTimeInMillis(); -- } -- } -- catch (RuntimeException ex) -+ if ((known & KNOWN_TIME) != 0) -+ return time; -+ else if ((known & KNOWN_DOSTIME) != 0) - { -- /* Ignore illegal time stamp */ -- known &= ~KNOWN_TIME; -- return -1; -+ int sec = 2 * (dostime & 0x1f); -+ int min = (dostime >> 5) & 0x3f; -+ int hrs = (dostime >> 11) & 0x1f; -+ int day = (dostime >> 16) & 0x1f; -+ int mon = ((dostime >> 21) & 0xf) - 1; -+ int year = ((dostime >> 25) & 0x7f) + 1980; /* since 1900 */ -+ -+ try -+ { -+ Calendar cal = Calendar.getInstance(); -+ cal.set(year, mon, day, hrs, min, sec); -+ time = cal.getTimeInMillis(); -+ known |= KNOWN_TIME; -+ return time; -+ } -+ catch (RuntimeException ex) -+ { -+ /* Ignore illegal time stamp */ -+ known &= ~KNOWN_TIME; -+ return -1; -+ } - } -- } -- -- private static synchronized Calendar getCalendar() -- { -- if (cal == null) -- cal = Calendar.getInstance(); -- -- return cal; -+ else -+ return -1; - } - - /** -@@ -298,7 +324,7 @@ - if (method != ZipOutputStream.STORED - && method != ZipOutputStream.DEFLATED) - throw new IllegalArgumentException(); -- this.method = (short) method; -+ this.method = (byte) method; - } - - /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <steveb-oss@us...> - 2009-12-17 12:01:38
|
Revision: 15803 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=15803&view=rev Author: steveb-oss Date: 2009-12-17 12:01:28 +0000 (Thu, 17 Dec 2009) Log Message: ----------- Fix handling of headless mode. RVM-878, Thanks to Byeong Lee Modified Paths: -------------- rvmroot/trunk/build/components/classpath.xml Added Paths: ----------- rvmroot/trunk/build/components/patches/classpath-web.RVM-878.patch Modified: rvmroot/trunk/build/components/classpath.xml =================================================================== --- rvmroot/trunk/build/components/classpath.xml 2009-12-17 11:53:26 UTC (rev 15802) +++ rvmroot/trunk/build/components/classpath.xml 2009-12-17 12:01:28 UTC (rev 15803) @@ -173,6 +173,8 @@ dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-web.RVM-732.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-web.RVM-878.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> </target> <target name="patch" depends="patch-classpath-web,patch-classpath-cvs"/> Added: rvmroot/trunk/build/components/patches/classpath-web.RVM-878.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-web.RVM-878.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-web.RVM-878.patch 2009-12-17 12:01:28 UTC (rev 15803) @@ -0,0 +1,16 @@ +--- java/awt/Toolkit.java 2009-12-17 22:19:41.000000000 +1100 ++++ java/awt/Toolkit.java 2009-12-17 22:21:28.000000000 +1100 +@@ -567,6 +567,13 @@ + if (toolkit != null) + return toolkit; + ++ // Check for the headless property. ++ if (GraphicsEnvironment.isHeadless()) ++ { ++ toolkit = new HeadlessToolkit(); ++ return toolkit; ++ } ++ + String toolkit_name = SystemProperties.getProperty("awt.toolkit", + default_toolkit_name); + try This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dframpton-oss@us...> - 2010-04-07 06:46:54
|
Revision: 15830 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=15830&view=rev Author: dframpton-oss Date: 2010-04-07 06:46:47 +0000 (Wed, 07 Apr 2010) Log Message: ----------- Quick/rough solution for RVM-881. Newer versions of gcc apparently optimize well enough that we don't get the necessary drop in precision from 80->64 bits, confusing a loop responsible for converting double/float values to strings. Modified Paths: -------------- rvmroot/trunk/build/components/classpath.xml Added Paths: ----------- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-881.patch rvmroot/trunk/build/components/patches/classpath-web.RVM-881.patch Modified: rvmroot/trunk/build/components/classpath.xml =================================================================== --- rvmroot/trunk/build/components/classpath.xml 2010-03-18 05:50:15 UTC (rev 15829) +++ rvmroot/trunk/build/components/classpath.xml 2010-04-07 06:46:47 UTC (rev 15830) @@ -19,7 +19,7 @@ <!-- in target patch-classpath-web --> <property name="classpath.version" value="97.2"/> <!-- Change this whenever you alter the patches. It will let people know classpath has changed. --> - <property name="classpath.patchlevel" value="8"/> + <property name="classpath.patchlevel" value="9"/> <property name="classpath.description" value="GNU Classpath"/> <property name="classpath.component.dir" location="${components.dir}/classpath"/> @@ -115,6 +115,8 @@ dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-732.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-881.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> </target> <!-- Patches against the current stable version --> @@ -175,6 +177,8 @@ dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-web.RVM-878.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-web.RVM-881.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> </target> <target name="patch" depends="patch-classpath-web,patch-classpath-cvs"/> Added: rvmroot/trunk/build/components/patches/classpath-cvs.RVM-881.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-881.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-cvs.RVM-881.patch 2010-04-07 06:46:47 UTC (rev 15830) @@ -0,0 +1,11 @@ +--- native/jni/java-lang/java_lang_VMDouble.c 2010-04-07 16:32:31.000000000 +1000 ++++ native/jni/java-lang/java_lang_VMDouble.c 2010-04-07 16:32:27.000000000 +1000 +@@ -397,7 +397,7 @@ + */ + + do { +- jdouble parsed_value; ++ volatile jdouble parsed_value; + + assert(least_necessary_precision <= maximal_precision); + Added: rvmroot/trunk/build/components/patches/classpath-web.RVM-881.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-web.RVM-881.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-web.RVM-881.patch 2010-04-07 06:46:47 UTC (rev 15830) @@ -0,0 +1,11 @@ +--- native/jni/java-lang/java_lang_VMDouble.c 2010-04-07 16:32:31.000000000 +1000 ++++ native/jni/java-lang/java_lang_VMDouble.c 2010-04-07 16:32:27.000000000 +1000 +@@ -397,7 +397,7 @@ + */ + + do { +- jdouble parsed_value; ++ volatile jdouble parsed_value; + + assert(least_necessary_precision <= maximal_precision); + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rgarner@us...> - 2010-05-04 01:04:01
|
Revision: 15834 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=15834&view=rev Author: rgarner Date: 2010-05-04 01:03:55 +0000 (Tue, 04 May 2010) Log Message: ----------- RVM-889, fixes for JSR166 tck tests EntryTest, PriorityQueueTest and PriorityBlockingQueueTest Modified Paths: -------------- rvmroot/trunk/build/components/classpath.xml Added Paths: ----------- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-889-01.patch rvmroot/trunk/build/components/patches/classpath-cvs.RVM-889-02.patch rvmroot/trunk/build/components/patches/classpath-web.RVM-889-01.patch rvmroot/trunk/build/components/patches/classpath-web.RVM-889-02.patch Modified: rvmroot/trunk/build/components/classpath.xml =================================================================== --- rvmroot/trunk/build/components/classpath.xml 2010-04-27 06:11:07 UTC (rev 15833) +++ rvmroot/trunk/build/components/classpath.xml 2010-05-04 01:03:55 UTC (rev 15834) @@ -19,7 +19,7 @@ <!-- in target patch-classpath-web --> <property name="classpath.version" value="97.2"/> <!-- Change this whenever you alter the patches. It will let people know classpath has changed. --> - <property name="classpath.patchlevel" value="9"/> + <property name="classpath.patchlevel" value="10"/> <property name="classpath.description" value="GNU Classpath"/> <property name="classpath.component.dir" location="${components.dir}/classpath"/> @@ -117,6 +117,10 @@ dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-881.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-889-01.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-cvs.RVM-889-02.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> </target> <!-- Patches against the current stable version --> @@ -179,6 +183,10 @@ dir="${classpath.package.dir}/classpath/" strip="0"/> <patch patchfile="${components.patch.dir}/classpath-web.RVM-881.patch" dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-web.RVM-889-01.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> + <patch patchfile="${components.patch.dir}/classpath-web.RVM-889-02.patch" + dir="${classpath.package.dir}/classpath/" strip="0"/> </target> <target name="patch" depends="patch-classpath-web,patch-classpath-cvs"/> Added: rvmroot/trunk/build/components/patches/classpath-cvs.RVM-889-01.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-889-01.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-cvs.RVM-889-01.patch 2010-05-04 01:03:55 UTC (rev 15834) @@ -0,0 +1,61 @@ +--- java/util/AbstractMap.java 2010-04-27 16:31:20.000000000 +1000 ++++ java/util/AbstractMap.java 2010-05-02 23:01:48.000000000 +1000 +@@ -71,16 +71,16 @@ + */ + public abstract class AbstractMap<K, V> implements Map<K, V> + { +- /** ++ /** + * A class containing an immutable key and value. The + * implementation of {@link Entry#setValue(V)} for this class + * simply throws an {@link UnsupportedOperationException}, + * thus preventing changes being made. This is useful when + * a static thread-safe view of a map is required. + * +- * @since 1.6 ++ * @since 1.6 + */ +- public static class SimpleImmutableEntry<K, V> ++ public static class SimpleImmutableEntry<K, V> extends SimpleEntry<K,V> + implements Entry<K, V>, Serializable + { + /** +@@ -88,34 +88,22 @@ + */ + private static final long serialVersionUID = 7138329143949025153L; + +- K key; +- V value; +- + public SimpleImmutableEntry(K key, V value) + { +- this.key = key; +- this.value = value; ++ super(key,value); + } + + public SimpleImmutableEntry(Entry<? extends K, ? extends V> entry) + { +- this(entry.getKey(), entry.getValue()); +- } +- +- public K getKey() +- { +- return key; +- } +- +- public V getValue() +- { +- return value; ++ super(entry); + } + ++ @Override + public V setValue(V value) + { + throw new UnsupportedOperationException("setValue not supported on immutable entry"); + } ++ + } + + /** An "enum" of iterator types. */ Added: rvmroot/trunk/build/components/patches/classpath-cvs.RVM-889-02.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-cvs.RVM-889-02.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-cvs.RVM-889-02.patch 2010-05-04 01:03:55 UTC (rev 15834) @@ -0,0 +1,20 @@ +--- java/util/PriorityQueue.java 2006-12-22 00:02:50.000000000 +1100 ++++ java/util/PriorityQueue.java 2010-05-02 22:36:24.000000000 +1000 +@@ -108,6 +108,7 @@ + + public PriorityQueue(int cap, Comparator<? super E> comp) + { ++ if (cap <= 0) throw new IllegalArgumentException(); + this.used = 0; + this.storage = (E[]) new Object[cap]; + this.comparator = comp; +@@ -170,6 +173,9 @@ + public void remove() + { + PriorityQueue.this.remove(index); ++ // removal promotes another element to the slot just vacated, ++ // so we need to rewind to pick up the newly promoted element. ++ --index; + } + }; + } Added: rvmroot/trunk/build/components/patches/classpath-web.RVM-889-01.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-web.RVM-889-01.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-web.RVM-889-01.patch 2010-05-04 01:03:55 UTC (rev 15834) @@ -0,0 +1,61 @@ +--- java/util/AbstractMap.java 2010-04-27 16:31:20.000000000 +1000 ++++ java/util/AbstractMap.java 2010-05-02 23:01:48.000000000 +1000 +@@ -71,16 +71,16 @@ + */ + public abstract class AbstractMap<K, V> implements Map<K, V> + { +- /** ++ /** + * A class containing an immutable key and value. The + * implementation of {@link Entry#setValue(V)} for this class + * simply throws an {@link UnsupportedOperationException}, + * thus preventing changes being made. This is useful when + * a static thread-safe view of a map is required. + * +- * @since 1.6 ++ * @since 1.6 + */ +- public static class SimpleImmutableEntry<K, V> ++ public static class SimpleImmutableEntry<K, V> extends SimpleEntry<K,V> + implements Entry<K, V>, Serializable + { + /** +@@ -88,34 +88,22 @@ + */ + private static final long serialVersionUID = 7138329143949025153L; + +- K key; +- V value; +- + public SimpleImmutableEntry(K key, V value) + { +- this.key = key; +- this.value = value; ++ super(key,value); + } + + public SimpleImmutableEntry(Entry<? extends K, ? extends V> entry) + { +- this(entry.getKey(), entry.getValue()); +- } +- +- public K getKey() +- { +- return key; +- } +- +- public V getValue() +- { +- return value; ++ super(entry); + } + ++ @Override + public V setValue(V value) + { + throw new UnsupportedOperationException("setValue not supported on immutable entry"); + } ++ + } + + /** An "enum" of iterator types. */ Added: rvmroot/trunk/build/components/patches/classpath-web.RVM-889-02.patch =================================================================== --- rvmroot/trunk/build/components/patches/classpath-web.RVM-889-02.patch (rev 0) +++ rvmroot/trunk/build/components/patches/classpath-web.RVM-889-02.patch 2010-05-04 01:03:55 UTC (rev 15834) @@ -0,0 +1,20 @@ +--- java/util/PriorityQueue.java 2006-12-22 00:02:50.000000000 +1100 ++++ java/util/PriorityQueue.java 2010-05-02 22:36:24.000000000 +1000 +@@ -108,6 +108,7 @@ + + public PriorityQueue(int cap, Comparator<? super E> comp) + { ++ if (cap <= 0) throw new IllegalArgumentException(); + this.used = 0; + this.storage = (E[]) new Object[cap]; + this.comparator = comp; +@@ -170,6 +173,9 @@ + public void remove() + { + PriorityQueue.this.remove(index); ++ // removal promotes another element to the slot just vacated, ++ // so we need to rewind to pick up the newly promoted element. ++ --index; + } + }; + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dgrove-oss@us...> - 2010-11-08 19:10:58
|
Revision: 16029 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=16029&view=rev Author: dgrove-oss Date: 2010-11-08 19:10:52 +0000 (Mon, 08 Nov 2010) Log Message: ----------- RVM-908 : Update harmony build for URL changes in upstream sources Modified Paths: -------------- rvmroot/trunk/build/components/harmony.xml rvmroot/trunk/build/components/patches/harmony-svn.RVM-358-01.patch Modified: rvmroot/trunk/build/components/harmony.xml =================================================================== --- rvmroot/trunk/build/components/harmony.xml 2010-11-05 01:17:45 UTC (rev 16028) +++ rvmroot/trunk/build/components/harmony.xml 2010-11-08 19:10:52 UTC (rev 16029) @@ -17,7 +17,7 @@ <property name="harmony.version" value="5.0M10"/> <property name="harmony.svn.revision" value="782693"/> - <property name="harmony.base.url" value="http://svn.apache.org/repos/asf/harmony/enhanced/classlib/trunk"/> + <property name="harmony.base.url" value="http://svn.apache.org/repos/asf/harmony/enhanced/java/trunk/classlib"/> <property name="harmony.description" value="Apache Harmony class libraries"/> <property name="harmony.patchlevel" value="0"/> <property name="harmony.component.dir" location="${components.dir}/harmony"/> @@ -39,7 +39,9 @@ <target name="get-harmony-from-svn" depends="init-harmony-properties,check-svn-present" if="harmony.from-svn"> <exec executable="${svn.exe}"> <arg value="checkout"/> - <arg value="${harmony.base.url}@${harmony.svn.revision}"/> + <arg value="${harmony.base.url}"/> + <arg value="-r"/> + <arg value="${harmony.svn.revision}"/> <arg value="${harmony.dir}"/> </exec> </target> Modified: rvmroot/trunk/build/components/patches/harmony-svn.RVM-358-01.patch =================================================================== --- rvmroot/trunk/build/components/patches/harmony-svn.RVM-358-01.patch 2010-11-05 01:17:45 UTC (rev 16028) +++ rvmroot/trunk/build/components/patches/harmony-svn.RVM-358-01.patch 2010-11-08 19:10:52 UTC (rev 16029) @@ -1,9 +1,57 @@ Index: modules/archive/src/main/native/archive/unix/exports.txt =================================================================== ---- modules/archive/src/main/native/archive/unix/exports.txt (revision 653525) +--- modules/archive/src/main/native/archive/unix/exports.txt (revision 782693) +++ modules/archive/src/main/native/archive/unix/exports.txt (working copy) @@ -33,3 +33,4 @@ Java_java_util_zip_ZipFile_openZipImpl JNI_OnLoad JNI_OnUnload +zipCachePool_new +Index: modules/jmx/make/depends.properties +=================================================================== +--- modules/jmx/make/depends.properties (revision 782693) ++++ modules/jmx/make/depends.properties (working copy) +@@ -1,10 +1,10 @@ + depends.jars=${depends.dir}/jars +-sf.base=http://internap.dl.sourceforge.net/sourceforge ++sf.base=http://sourceforge.net/projects + + mx4j.version=3.0.2 + mx4j.dir=${depends.jars}/mx4j_${mx4j.version} + mx4j.zip=${mx4j.dir}/mx4j.zip +-mx4j.url=${sf.base}/mx4j/mx4j-${mx4j.version}.zip ++mx4j.url=${sf.base}/mx4j/files/MX4J%20Binary/${mx4j.version}/mx4j-${mx4j.version}.zip/download + mx4j.md5=443bd83ee36414de4b8fc5722b038b02 + mx4j.jar=${mx4j.dir}/mx4j.jar + mx4j.remote.jar=${mx4j.dir}/mx4j-remote.jar +Index: make/depends.properties +=================================================================== +--- make/depends.properties (revision 782693) ++++ make/depends.properties (working copy) +@@ -16,7 +16,7 @@ + depends.dir=depends + depends.jars=${depends.dir}/jars + maven2.base=http://repo1.maven.org/maven2 +-sf.base=http://internap.dl.sourceforge.net/sourceforge ++sf.base=http://sourceforge.net/projects + + xalan.dir=${depends.jars}/xalan-j_2.7.0 + xalan.orig.jar=${xalan.dir}/xalan.orig.jar +@@ -26,7 +26,7 @@ + + xerces.dir=${depends.jars}/xerces_2.9.1 + xerces.zip=${xerces.dir}/xerces.zip +-xerces.url=http://www.apache.org/dist/xml/xerces-j/Xerces-J-bin.2.9.1.zip ++xerces.url=http://archive.apache.org/dist/xerces/j/Xerces-J-bin.2.9.1.zip + xerces.md5=a0e07ede1c3bd5231fe15eae24032b2e + + junit.dir=${depends.jars}/junit_4.4 +@@ -92,7 +92,7 @@ + dejavu-fonts.dir=${depends.dir}/dejavu-fonts + dejavu-fonts.fonts.dir=${depends.dir}/dejavu-fonts/dejavu-ttf-2.18 + dejavu-fonts.zip=${dejavu-fonts.dir}/dejavu-ttf-2.18-1.zip +-dejavu-fonts.url=${sf.base}/dejavu/dejavu-ttf-2.18-1.zip ++dejavu-fonts.url=${sf.base}/dejavu/files/dejavu/2.18/dejavu-ttf-2.18-1.zip/download + dejavu-fonts.md5=72e0a87ec1f9c5c26c66eabcf1e2018e + + derby.dir=${depends.jars}/derby-10.3.1.4 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |