You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by hi...@apache.org on 2010/09/21 21:46:00 UTC
svn commit: r999573 [1/4] - in /harmony/enhanced/java/branches/mrh: ./
classlib/ classlib/depends/build/ classlib/depends/files/
classlib/depends/jars/ classlib/depends/manifests/icu4j_4.2.1/META-INF/
classlib/depends/manifests/icu4j_4.4.1.1/ classlib/...
Author: hindessm
Date: Tue Sep 21 19:45:57 2010
New Revision: 999573
URL: http://svn.apache.org/viewvc?rev=999573&view=rev
Log:
Merge changes up to trunk@999306.
Added:
harmony/enhanced/java/branches/mrh/classlib/depends/manifests/icu4j_4.4.1.1/
- copied from r998465, harmony/enhanced/java/trunk/classlib/depends/manifests/icu4j_4.4.1.1/
harmony/enhanced/java/branches/mrh/classlib/depends/manifests/icu4j_4.4.1.1/META-INF/
- copied from r998465, harmony/enhanced/java/trunk/classlib/depends/manifests/icu4j_4.4.1.1/META-INF/
harmony/enhanced/java/branches/mrh/classlib/depends/manifests/icu4j_4.4.1.1/META-INF/MANIFEST.MF
- copied unchanged from r998465, harmony/enhanced/java/trunk/classlib/depends/manifests/icu4j_4.4.1.1/META-INF/MANIFEST.MF
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/PackingOptionsTest.java
- copied unchanged from r998465, harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/PackingOptionsTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/NewAttributeBandsTest.java
- copied unchanged from r998465, harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/NewAttributeBandsTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.jar
- copied unchanged from r998465, harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.jar
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.pack.gz
- copied unchanged from r998465, harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.pack.gz
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/jndiWithUnknownAttributes.jar
- copied unchanged from r998465, harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/jndiWithUnknownAttributes.jar
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes.jar
- copied unchanged from r998465, harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes.jar
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes2.jar
- copied unchanged from r998465, harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes2.jar
harmony/enhanced/java/branches/mrh/ibm-v4/include/
- copied from r998465, harmony/enhanced/java/trunk/ibm-v4/include/
harmony/enhanced/java/branches/mrh/ibm-v4/include/jni.h
- copied unchanged from r998465, harmony/enhanced/java/trunk/ibm-v4/include/jni.h
harmony/enhanced/java/branches/mrh/ibm-v4/include/jni_types.h
- copied unchanged from r998465, harmony/enhanced/java/trunk/ibm-v4/include/jni_types.h
harmony/enhanced/java/branches/mrh/ibm-v4/include/jvmti.h
- copied unchanged from r998465, harmony/enhanced/java/trunk/ibm-v4/include/jvmti.h
harmony/enhanced/java/branches/mrh/ibm-v4/include/jvmti_types.h
- copied unchanged from r998465, harmony/enhanced/java/trunk/ibm-v4/include/jvmti_types.h
Removed:
harmony/enhanced/java/branches/mrh/classlib/depends/manifests/icu4j_4.2.1/META-INF/MANIFEST.MF
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/native/include/jni.h
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/native/include/jni_types.h
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/native/include/jvmti.h
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/native/include/jvmti_types.h
Modified:
harmony/enhanced/java/branches/mrh/ (props changed)
harmony/enhanced/java/branches/mrh/build.xml
harmony/enhanced/java/branches/mrh/classlib/ (props changed)
harmony/enhanced/java/branches/mrh/classlib/build.xml
harmony/enhanced/java/branches/mrh/classlib/depends/build/rules.mak
harmony/enhanced/java/branches/mrh/classlib/depends/files/bootclasspath.properties
harmony/enhanced/java/branches/mrh/classlib/depends/jars/ (props changed)
harmony/enhanced/java/branches/mrh/classlib/make/depends.properties
harmony/enhanced/java/branches/mrh/classlib/modules/archive/src/main/native/zip/unix/makefile
harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/main/java/java/beans/StandardBeanInfo.java
harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/instrument/src/main/native/instrument/unix/makefile
harmony/enhanced/java/branches/mrh/classlib/modules/luni/build.xml
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/io/PipedInputStream.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/Character.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/String.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/net/SocketPermission.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/ArrayList.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/Currency.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/org/apache/harmony/luni/util/FloatingPointParser.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/PipedInputStreamTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/FloatTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketPermissionTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ArrayListTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ScannerTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/nio_char/src/main/java/java/nio/charset/Charset.java
harmony/enhanced/java/branches/mrh/classlib/modules/nio_char/src/main/java/org/apache/harmony/niochar/CharsetProviderImpl.java
harmony/enhanced/java/branches/mrh/classlib/modules/nio_char/src/main/java/org/apache/harmony/niochar/charset/UTF_8.java
harmony/enhanced/java/branches/mrh/classlib/modules/nio_char/src/test/java/tests/api/java/nio/charset/UTF8CharsetTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/Archive.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/BandSet.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/CPMethodOrField.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/CPNameAndType.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/ClassBands.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/CpBands.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/FileBands.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/IcBands.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/IntList.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/MetadataBandGroup.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/NewAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/NewAttributeBands.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/Pack200ClassReader.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/Pack200Exception.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/PackingOptions.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/PopulationCodec.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/pack200/SegmentHeader.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/Archive.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/AttributeLayout.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/BcBands.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/ClassBands.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/CpBands.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/IcTuple.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/MetadataBandGroup.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/NewAttributeBands.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/Segment.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/SegmentHeader.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/SegmentUtils.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/AnnotationsAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/ByteCode.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/CPRef.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/ClassConstantPool.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/ClassFileEntry.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/CodeAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/DeprecatedAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/EnclosingMethodAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/LocalVariableTableAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/LocalVariableTypeTableAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/NewAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/OperandManager.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleAnnotationsAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/RuntimeVisibleorInvisibleParameterAnnotationsAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/SignatureAttribute.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/forms/LocalForm.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/forms/LookupSwitchForm.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/forms/SwitchForm.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/forms/TableSwitchForm.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/forms/VariableInstructionForm.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/main/java/org/apache/harmony/unpack200/bytecode/forms/WideForm.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/ArchiveTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/CodecTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/NewAttributeBandsTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java
harmony/enhanced/java/branches/mrh/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotations.jar
harmony/enhanced/java/branches/mrh/common_resources/ (props changed)
harmony/enhanced/java/branches/mrh/common_resources/make/depends.xml
harmony/enhanced/java/branches/mrh/debian/control
harmony/enhanced/java/branches/mrh/drlvm/ (props changed)
harmony/enhanced/java/branches/mrh/drlvm/build.xml
harmony/enhanced/java/branches/mrh/drlvm/modules/vm/src/main/native/gc_gen/shared/mark_compact/mspace_collect_compact.cpp
harmony/enhanced/java/branches/mrh/drlvm/modules/vm/src/main/native/gc_gen/shared/mark_compact/mspace_extend_compact.cpp
harmony/enhanced/java/branches/mrh/drlvm/modules/vm/src/main/native/port/unix/misc/dso.c
harmony/enhanced/java/branches/mrh/drlvm/modules/vm/src/main/native/vmcore/shared/init/harmony.properties
harmony/enhanced/java/branches/mrh/drlvm/modules/vm/src/main/native/vmcore/shared/init/vm_properties.cpp
harmony/enhanced/java/branches/mrh/drlvm/modules/vm/src/main/native/vmcore/shared/jvmti/jvmti.cpp
harmony/enhanced/java/branches/mrh/drlvm/modules/vm/src/main/native/vmcore/shared/kernel_classes/java_lang_VMExecutionEngine.cpp
harmony/enhanced/java/branches/mrh/drlvm/modules/vm/src/main/native/vmcore/shared/util/jarfile_support.cpp
harmony/enhanced/java/branches/mrh/drlvm/vm/port/include/port_dso.h
harmony/enhanced/java/branches/mrh/drlvm/vm/port/src/misc/win/dso.c
harmony/enhanced/java/branches/mrh/drlvm/vm/vmcore/include/jarfile_support.h
harmony/enhanced/java/branches/mrh/ibm-v4/build.xml
harmony/enhanced/java/branches/mrh/jdktools/modules/jdktools/src/main/java/org/apache/harmony/tools/jar/Main.java
harmony/enhanced/java/branches/mrh/jdktools/modules/jretools/src/main/java/org/apache/harmony/jretools/pack200/Main.java
Propchange: harmony/enhanced/java/branches/mrh/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 21 19:45:57 2010
@@ -1,2 +1,2 @@
/harmony/enhanced/java/branches/mrh:935751
-/harmony/enhanced/java/trunk:935751-996687
+/harmony/enhanced/java/trunk:935751-999306
Modified: harmony/enhanced/java/branches/mrh/build.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/build.xml?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/build.xml (original)
+++ harmony/enhanced/java/branches/mrh/build.xml Tue Sep 21 19:45:57 2010
@@ -473,7 +473,7 @@ Usage:
</propertyset>
<target name="build-classlib"
- depends="init,-build-classlib,assemble-hdk-doc"/>
+ depends="init,-init-hdk,-build-classlib,assemble-hdk-doc"/>
<target name="-build-classlib" depends="auto-fetch-classlib-libs">
<ant antfile="classlib/build.xml" target="build" inheritAll="false" >
<propertyset refid="required.props" />
@@ -547,6 +547,17 @@ Usage:
</ant>
--> </target>
+ <target name="-init-hdk">
+ <ant antfile="${vm.dir.loc}/build.xml"
+ target="-init-hdk" inheritall="false" >
+ <propertyset refid="required.props" />
+ <property name="svn.info" value="${harmony.long.version}"/>
+ <property name="svn.revision" value="${harmony.version}"/>
+ <property name="hy.target" location="${hy.target}"/>
+ <property name="common.resources" location="common_resources" />
+ </ant>
+ </target>
+
<!-- ============================================================== -->
<!-- ensures that dependencies are up to date and then builds a vm -->
<!-- ============================================================== -->
@@ -614,7 +625,7 @@ Usage:
<!-- ensures dependencies are up to date, then builds jdktools -->
<!-- ============================================================== -->
<target name="build-jdktools"
- depends="init,auto-fetch-jdktools-libs">
+ depends="init,-init-hdk,auto-fetch-jdktools-libs">
<ant antfile="jdktools/build.xml" target="build" inheritall="false" >
<propertyset refid="required.props" />
<property name="svn.info" value="${harmony.long.version}"/>
Propchange: harmony/enhanced/java/branches/mrh/classlib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Sep 21 19:45:57 2010
@@ -1,4 +1,4 @@
/harmony/enhanced/classlib/trunk:926318-926838
/harmony/enhanced/java/branches/mrh/classlib:935751
-/harmony/enhanced/java/trunk/classlib:935751-996687
+/harmony/enhanced/java/trunk/classlib:935751-999306
/harmony/enhanced/trunk/classlib:476395-926317
Modified: harmony/enhanced/java/branches/mrh/classlib/build.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/build.xml?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/build.xml (original)
+++ harmony/enhanced/java/branches/mrh/classlib/build.xml Tue Sep 21 19:45:57 2010
@@ -223,7 +223,7 @@ module:
<!-- Copy across the boot dependency jars --><!-- TOFIX clean these? -->
<copy todir="${hy.jdk}/jre/lib/boot">
<fileset dir="${depends.jars}">
- <patternset includes="icu4j_4.2.1/*.jar" />
+ <patternset includes="icu4j_4.4.1.1/*.jar" />
</fileset>
<fileset dir="${depends.manifests}"/>
</copy>
Modified: harmony/enhanced/java/branches/mrh/classlib/depends/build/rules.mak
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/depends/build/rules.mak?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/depends/build/rules.mak (original)
+++ harmony/enhanced/java/branches/mrh/classlib/depends/build/rules.mak Tue Sep 21 19:45:57 2010
@@ -51,7 +51,7 @@ $(DLLNAME): $(LIBNAME)
-entry:_DllMainCRTStartup$(DLLENTRY) -dll /BASE:$(DLLBASE) -machine:$(CPU) \
-subsystem:windows -out:$@ \
-map:$(LIBPATH)$(*F).map -pdb:$(DBGPATH)$(*F).pdb \
- -manifestfile:$(LIBPATH)$(*F).manifest \
+ -manifest:no \
$(BUILDFILES) $(VIRTFILES) $(MDLLIBFILES) $(SYSLIBFILES) \
kernel32.lib msvcrt.lib ws2_32.lib advapi32.lib user32.lib gdi32.lib \
comdlg32.lib winspool.lib $(LIBPATH)$(*F).exp
@@ -65,7 +65,7 @@ $(EXENAME): $(BUILDFILES) $(VIRTFILES) $
-mkdir $(DBGPATH)
link /NOLOGO $(EXEFLAGS) /debug /opt:icf /opt:ref $(VMLINK) \
-out:$(EXENAME) -pdb:$(DBGPATH)$(*F).pdb \
- -manifestfile:$(LIBPATH)$(*F).manifest \
+ -manifest:no \
-machine:$(CPU) setargv.obj \
$(BUILDFILES) $(VIRTFILES) $(MDLLIBFILES) $(EXEDLLFILES)
if exist $(LIBPATH)$(*F).manifest \
Modified: harmony/enhanced/java/branches/mrh/classlib/depends/files/bootclasspath.properties
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/depends/files/bootclasspath.properties?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/depends/files/bootclasspath.properties (original)
+++ harmony/enhanced/java/branches/mrh/classlib/depends/files/bootclasspath.properties Tue Sep 21 19:45:57 2010
@@ -161,8 +161,8 @@ bootclasspath.source.packageroot.30=/
# ICU functionality for text/characters are provided by the ICU4J
# and ICU4J-charsets JAR files.
-bootclasspath.31=icu4j_4.2.1/icu4j-4_2_1.jar
-bootclasspath.32=icu4j_4.2.1/icu4j-charsets-4_2_1.jar
+bootclasspath.31=icu4j_4.4.1.1/icu4j-4_4_1_1.jar
+bootclasspath.32=icu4j_4.4.1.1/icu4j-charsets-4_4_1_1.jar
# The following JARs are from Xerces/Xalan
bootclasspath.34=xalan-j_2.7.0/xalan.jar
Propchange: harmony/enhanced/java/branches/mrh/classlib/depends/jars/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Sep 21 19:45:57 2010
@@ -1,14 +1,12 @@
-junit_4.6
+asm-3.1
+bcel-5.2
+bcprov-jdk15-145
+derby-10.3.1.4
hamcrest-library_1.1
+icu4j_4.4.1.1
+jetty
+junit_4.6
mx4j_3.0.2
xalan-j_2.7.0
-bcel-5.2
-jetty
-derby-10.3.1.4
-xerces_2.9.1
-yoko-1.0
-bcprov-jdk15-141
-asm-3.1
-icu4j_4.2.1
-bcprov-jdk15-145
xerces_2.10.0
+yoko-1.0
Modified: harmony/enhanced/java/branches/mrh/classlib/make/depends.properties
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/make/depends.properties?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/make/depends.properties (original)
+++ harmony/enhanced/java/branches/mrh/classlib/make/depends.properties Tue Sep 21 19:45:57 2010
@@ -99,14 +99,14 @@ bcprov.jar=${bcprov.dir}/bcprov.jar
bcprov.url=${depends.url}/jars/bcprov/${bcprov.ver}.jar
bcprov.md5=2062f8e3d15748443ea60a94b266371c
-icu4j.ver=icu4j_4.2.1
+icu4j.ver=icu4j_4.4.1.1
icu4j.dir=${depends.jars}/${icu4j.ver}
-icu4j.jar=${icu4j.dir}/icu4j-4_2_1.jar
-icu4j.url=http://download.icu-project.org/files/icu4j/4.2.1/icu4j-4_2_1.jar
-icu4j.md5=2bef290de1db6970a6699bf78f0dca77
+icu4j.jar=${icu4j.dir}/icu4j-4_4_1_1.jar
+icu4j.url=http://download.icu-project.org/files/icu4j/4.4.1.1/icu4j-4_4_1_1.jar
+icu4j.md5=52e1253e6c1c4124c4085e239e51a585
-icu4j-charsets.ver=icu4j_4.2.1
+icu4j-charsets.ver=icu4j_4.4.1.1
icu4j-charsets.dir=${depends.jars}/${icu4j.ver}
-icu4j-charsets.jar=${icu4j.dir}/icu4j-charsets-4_2_1.jar
-icu4j-charsets.url=http://download.icu-project.org/files/icu4j/4.2.1/icu4j-charsets-4_2_1.jar
-icu4j-charsets.md5=bccab3c39d735171fb54ce5e4f49207b
+icu4j-charsets.jar=${icu4j.dir}/icu4j-charsets-4_4_1_1.jar
+icu4j-charsets.url=http://download.icu-project.org/files/icu4j/4.4.1.1/icu4j-charsets-4_4_1_1.jar
+icu4j-charsets.md5=d76e2861a01d427129f795223a610b2f
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/archive/src/main/native/zip/unix/makefile
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/archive/src/main/native/zip/unix/makefile?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/archive/src/main/native/zip/unix/makefile (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/archive/src/main/native/zip/unix/makefile Tue Sep 21 19:45:57 2010
@@ -24,6 +24,18 @@ INCLUDES += -I$(ZLIB_DIST)
BUILDFILES = zcpool.o zipalloc.o zipcache.o zipsup.o pool.o pool_cap.o
+ifeq ($(HY_LOCAL_ZLIB),true)
+DEFINES += -DHY_LOCAL_ZLIB
+else
+
+ifeq ($(HY_OS),zos)
+MDLLIBZLIB += $(LIBPATH)libhyzlib$(HY_LINKLIB_SUFFIX)
+else
+MDLLIBZLIB += $(DLLPATH)libhyzlib$(HY_LINKLIB_SUFFIX)
+endif
+
+endif
+
LIBNAME = $(LIBPATH)libhyzip.a
$(HY_BIN)%.o: $(LIBPATH)libhypool.a(%.o)
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/main/java/java/beans/StandardBeanInfo.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/main/java/java/beans/StandardBeanInfo.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/main/java/java/beans/StandardBeanInfo.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/main/java/java/beans/StandardBeanInfo.java Tue Sep 21 19:45:57 2010
@@ -985,24 +985,28 @@ class StandardBeanInfo extends SimpleBea
}
// retrieve getters
+ Class<?>[] paramTypes = null;
+ String methodName = null;
for (Method getter : getters) {
+ paramTypes = getter.getParameterTypes();
+ methodName = getter.getName();
// checks if it's a normal getter
- if (getter.getParameterTypes() == null
- || getter.getParameterTypes().length == 0) {
+ if (paramTypes == null || paramTypes.length == 0) {
// normal getter found
if (normalGetter == null
- || getter.getName().startsWith(PREFIX_IS)) {
+ || methodName.startsWith(PREFIX_IS)) {
normalGetter = getter;
}
}
// checks if it's an indexed getter
- if (getter.getParameterTypes() != null
- && getter.getParameterTypes().length == 1
- && getter.getParameterTypes()[0] == int.class) {
+ if (paramTypes != null && paramTypes.length == 1
+ && paramTypes[0] == int.class) {
// indexed getter found
if (indexedGetter == null
- || getter.getName().startsWith(PREFIX_IS)) {
+ || methodName.startsWith(PREFIX_GET)
+ || (methodName.startsWith(PREFIX_IS) && !indexedGetter
+ .getName().startsWith(PREFIX_GET))) {
indexedGetter = getter;
}
}
@@ -1251,6 +1255,12 @@ class StandardBeanInfo extends SimpleBea
&& (indexedGetter != null || indexedSetter != null)) {
if (indexedGetter != null
&& indexedGetter.getName().startsWith(PREFIX_IS)) {
+ if (indexedSetter != null) {
+ table.put(STR_INDEXED, STR_VALID);
+ table.put(STR_INDEXED + PREFIX_SET, indexedSetter);
+ table.put(STR_INDEXED + STR_PROPERTY_TYPE,
+ indexedPropType);
+ }
continue;
}
table.put(STR_INDEXED, STR_VALID);
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java Tue Sep 21 19:45:57 2010
@@ -4117,6 +4117,512 @@ public class IntrospectorTest extends Te
}
}
+ public class MixedSimpleClass45 {
+ public boolean isList(int index) {
+ return true;
+ }
+ }
+
+ public void test_MixedSimpleClass45() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass45.class);
+ assertEquals(1, beanInfo.getPropertyDescriptors().length);
+ }
+
+ public class MixedSimpleClass46 {
+ public boolean getList() {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+ }
+
+ public void test_MixedSimpleClass46() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass46.class);
+ Method getter = MixedSimpleClass46.class.getMethod("getList",
+ new Class<?>[] {});
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertEquals(getter, pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertFalse(pd instanceof IndexedPropertyDescriptor);
+ }
+ }
+ }
+
+ public class MixedSimpleClass47 {
+ public boolean isList() {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+ }
+
+ public void test_MixedSimpleClass47() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass47.class);
+ Method getter = MixedSimpleClass47.class.getMethod("isList",
+ new Class<?>[] {});
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertEquals(getter, pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertFalse(pd instanceof IndexedPropertyDescriptor);
+ }
+ }
+ }
+
+ public class MixedSimpleClass48 {
+ public boolean getList(int index) {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+ }
+
+ public void test_MixedSimpleClass48() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass48.class);
+ Method getter = MixedSimpleClass48.class.getMethod("getList",
+ new Class<?>[] { int.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertTrue(pd instanceof IndexedPropertyDescriptor);
+ assertEquals(getter,
+ ((IndexedPropertyDescriptor) pd).getIndexedReadMethod());
+ assertNull(((IndexedPropertyDescriptor) pd)
+ .getIndexedWriteMethod());
+ }
+ }
+ }
+
+ public class MixedSimpleClass49 {
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(boolean bool) {
+ }
+ }
+
+ public void test_MixedSimpleClass49() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass49.class);
+ Method setter = MixedSimpleClass49.class.getMethod("setList",
+ new Class<?>[] { boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertEquals(setter, pd.getWriteMethod());
+ assertFalse(pd instanceof IndexedPropertyDescriptor);
+ }
+ }
+ }
+
+ public class MixedSimpleClass50 {
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(int index, boolean bool) {
+ }
+ }
+
+ public void test_MixedSimpleClass50() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass50.class);
+ Method setter = MixedSimpleClass50.class.getMethod("setList",
+ new Class<?>[] { int.class, boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertTrue(pd instanceof IndexedPropertyDescriptor);
+ assertNull(((IndexedPropertyDescriptor) pd)
+ .getIndexedReadMethod());
+ assertEquals(setter,
+ ((IndexedPropertyDescriptor) pd)
+ .getIndexedWriteMethod());
+ }
+ }
+ }
+
+ public class MixedSimpleClass51 {
+ public boolean getList() {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(boolean bool) {
+ }
+ }
+
+ public void test_MixedSimpleClass51() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass51.class);
+ Method getter = MixedSimpleClass51.class.getMethod("getList",
+ new Class<?>[] {});
+ Method setter = MixedSimpleClass51.class.getMethod("setList",
+ new Class<?>[] { boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertEquals(getter, pd.getReadMethod());
+ assertEquals(setter, pd.getWriteMethod());
+ assertFalse(pd instanceof IndexedPropertyDescriptor);
+ }
+ }
+ }
+
+ public class MixedSimpleClass52 {
+ public boolean getList() {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(int index, boolean bool) {
+ }
+ }
+
+ public void test_MixedSimpleClass52() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass52.class);
+ Method setter = MixedSimpleClass52.class.getMethod("setList",
+ new Class<?>[] { int.class, boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertTrue(pd instanceof IndexedPropertyDescriptor);
+ assertNull(((IndexedPropertyDescriptor) pd)
+ .getIndexedReadMethod());
+ assertEquals(setter,
+ ((IndexedPropertyDescriptor) pd)
+ .getIndexedWriteMethod());
+ }
+ }
+ }
+
+ public class MixedSimpleClass53 {
+ public boolean isList() {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(boolean bool) {
+ }
+ }
+
+ public void test_MixedSimpleClass53() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass53.class);
+ Method getter = MixedSimpleClass53.class.getMethod("isList",
+ new Class<?>[] {});
+ Method setter = MixedSimpleClass53.class.getMethod("setList",
+ new Class<?>[] { boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertEquals(getter, pd.getReadMethod());
+ assertEquals(setter, pd.getWriteMethod());
+ assertFalse(pd instanceof IndexedPropertyDescriptor);
+ }
+ }
+ }
+
+ public class MixedSimpleClass54 {
+ public boolean isList() {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(int index, boolean bool) {
+ }
+ }
+
+ public void test_MixedSimpleClass54() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass54.class);
+ Method setter = MixedSimpleClass54.class.getMethod("setList",
+ new Class<?>[] { int.class, boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertTrue(pd instanceof IndexedPropertyDescriptor);
+ assertNull(((IndexedPropertyDescriptor) pd)
+ .getIndexedReadMethod());
+ assertEquals(setter,
+ ((IndexedPropertyDescriptor) pd)
+ .getIndexedWriteMethod());
+ }
+ }
+ }
+
+ public class MixedSimpleClass55 {
+ public boolean getList(int index) {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(boolean bool) {
+ }
+ }
+
+ public void test_MixedSimpleClass55() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass55.class);
+ Method getter = MixedSimpleClass55.class.getMethod("getList",
+ new Class<?>[] { int.class });
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertTrue(pd instanceof IndexedPropertyDescriptor);
+ assertEquals(getter,
+ ((IndexedPropertyDescriptor) pd).getIndexedReadMethod());
+ assertNull(((IndexedPropertyDescriptor) pd)
+ .getIndexedWriteMethod());
+ }
+ }
+ }
+
+ public class MixedSimpleClass56 {
+ public boolean getList(int index) {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(int index, boolean bool) {
+ }
+ }
+
+ public void test_MixedSimpleClass56() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass56.class);
+ Method getter = MixedSimpleClass56.class.getMethod("getList",
+ new Class<?>[] { int.class });
+ Method setter = MixedSimpleClass56.class.getMethod("setList",
+ new Class<?>[] { int.class, boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertTrue(pd instanceof IndexedPropertyDescriptor);
+ assertEquals(getter,
+ ((IndexedPropertyDescriptor) pd).getIndexedReadMethod());
+ assertEquals(setter,
+ ((IndexedPropertyDescriptor) pd)
+ .getIndexedWriteMethod());
+ }
+ }
+ }
+
+ public class MixedSimpleClass57 {
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(boolean bool) {
+
+ }
+
+ public void setList(int index, boolean bool) {
+ }
+ }
+
+ public void test_MixedSimpleClass57() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass57.class);
+ Method setter = MixedSimpleClass57.class.getMethod("setList",
+ new Class<?>[] { int.class, boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertTrue(pd instanceof IndexedPropertyDescriptor);
+ assertNull(((IndexedPropertyDescriptor) pd)
+ .getIndexedReadMethod());
+ assertEquals(setter,
+ ((IndexedPropertyDescriptor) pd)
+ .getIndexedWriteMethod());
+ }
+ }
+ }
+
+ public class MixedSimpleClass58 {
+ public boolean getList() {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(boolean bool) {
+ }
+
+ public void setList(int index, boolean bool) {
+
+ }
+ }
+
+ public void test_MixedSimpleClass58() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass58.class);
+ Method getter = MixedSimpleClass58.class.getMethod("getList",
+ new Class<?>[] {});
+ Method setter = MixedSimpleClass58.class.getMethod("setList",
+ new Class<?>[] { boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertEquals(getter, pd.getReadMethod());
+ assertEquals(setter, pd.getWriteMethod());
+ assertFalse(pd instanceof IndexedPropertyDescriptor);
+ }
+ }
+ }
+
+ public class MixedSimpleClass59 {
+ public boolean isList() {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(boolean bool) {
+ }
+
+ public void setList(int index, boolean bool) {
+
+ }
+ }
+
+ public void test_MixedSimpleClass59() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass59.class);
+ Method getter = MixedSimpleClass59.class.getMethod("isList",
+ new Class<?>[] {});
+ Method setter = MixedSimpleClass59.class.getMethod("setList",
+ new Class<?>[] { boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertEquals(getter, pd.getReadMethod());
+ assertEquals(setter, pd.getWriteMethod());
+ assertFalse(pd instanceof IndexedPropertyDescriptor);
+ }
+ }
+ }
+
+ public class MixedSimpleClass60 {
+ public boolean getList(int index) {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(boolean bool) {
+ }
+
+ public void setList(int index, boolean bool) {
+
+ }
+ }
+
+ public void test_MixedSimpleClass60() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass60.class);
+ Method getter = MixedSimpleClass60.class.getMethod("getList",
+ new Class<?>[] { int.class });
+ Method setter = MixedSimpleClass60.class.getMethod("setList",
+ new Class<?>[] { int.class, boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertTrue(pd instanceof IndexedPropertyDescriptor);
+ assertEquals(getter,
+ ((IndexedPropertyDescriptor) pd).getIndexedReadMethod());
+ assertEquals(setter,
+ ((IndexedPropertyDescriptor) pd)
+ .getIndexedWriteMethod());
+ }
+ }
+ }
+
+ public class MixedSimpleClass61 {
+ public boolean getList() {
+ return true;
+ }
+
+ public boolean getList(int index) {
+ return true;
+ }
+
+ public boolean isList() {
+ return true;
+ }
+
+ public boolean isList(int index) {
+ return true;
+ }
+
+ public void setList(boolean bool) {
+ }
+
+ public void setList(int index, boolean bool) {
+
+ }
+ }
+
+ public void test_MixedSimpleClass61() throws Exception {
+ BeanInfo beanInfo = Introspector.getBeanInfo(MixedSimpleClass61.class);
+ Method getter = MixedSimpleClass61.class.getMethod("getList",
+ new Class<?>[] { int.class });
+ Method setter = MixedSimpleClass61.class.getMethod("setList",
+ new Class<?>[] { int.class, boolean.class });
+ assertEquals(2, beanInfo.getPropertyDescriptors().length);
+ for (PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
+ if (propertyName.equals(pd.getName())) {
+ assertNull(pd.getReadMethod());
+ assertNull(pd.getWriteMethod());
+ assertTrue(pd instanceof IndexedPropertyDescriptor);
+ assertEquals(getter,
+ ((IndexedPropertyDescriptor) pd).getIndexedReadMethod());
+ assertEquals(setter,
+ ((IndexedPropertyDescriptor) pd)
+ .getIndexedWriteMethod());
+ }
+ }
+ }
+
public class MixedExtendClass1 extends MixedSimpleClass4 {
public void setList(Object a) {
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/instrument/src/main/native/instrument/unix/makefile
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/instrument/src/main/native/instrument/unix/makefile?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/instrument/src/main/native/instrument/unix/makefile (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/instrument/src/main/native/instrument/unix/makefile Tue Sep 21 19:45:57 2010
@@ -26,6 +26,10 @@ ifneq ($(HY_ZIP_API),true)
MDLLIBFILES += $(LIBPATH)libhyzip.a
endif
+ifeq ($(HY_LOCAL_ZLIB),true)
+DEFINES += -DHY_LOCAL_ZLIB
+endif
+
MDLLIBFILES += $(LIBPATH)libvmi$(HY_LINKLIB_SUFFIX)
DLLNAME = $(DLLPATH)libhyinstrument$(HY_SHLIB_SUFFIX)
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/build.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/build.xml?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/build.xml (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/build.xml Tue Sep 21 19:45:57 2010
@@ -54,14 +54,6 @@
<include name="vmizip.h"/>
</fileset>
</copy>
- <copy todir="${hy.jdk}/include" preservelastmodified="true">
- <fileset dir="src/main/native/include">
- <include name="jni.h" />
- <include name="jni_types.h" />
- <include name="jvmti.h" />
- <include name="jvmti_types.h" />
- </fileset>
- </copy>
</target>
<!-- Build native code -->
@@ -213,14 +205,6 @@
<include name="hymagic.h" />
</fileset>
</delete>
- <delete failonerror="false">
- <fileset dir="${hy.jdk}/include">
- <include name="jni.h" />
- <include name="jni_types.h" />
- <include name="jvmti.h" />
- <include name="jvmti_types.h" />
- </fileset>
- </delete>
</target>
<!-- Clean overlaid OSS packages -->
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/io/PipedInputStream.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/io/PipedInputStream.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/io/PipedInputStream.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/io/PipedInputStream.java Tue Sep 21 19:45:57 2010
@@ -158,6 +158,11 @@ public class PipedInputStream extends In
throw new IOException(Messages.getString("luni.CC")); //$NON-NLS-1$
}
+ if (isClosed && in == -1) {
+ // write end closed and no more need to read
+ return -1;
+ }
+
if (lastWriter != null && !lastWriter.isAlive() && (in < 0)) {
// luni.CD=Write end dead
throw new IOException(Messages.getString("luni.CD")); //$NON-NLS-1$
@@ -246,6 +251,11 @@ public class PipedInputStream extends In
return 0;
}
+ if (isClosed && in == -1) {
+ // write end closed and no more need to read
+ return -1;
+ }
+
if (!isConnected) {
// luni.CB=Not connected
throw new IOException(Messages.getString("luni.CB")); //$NON-NLS-1$
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/Character.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/Character.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/Character.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/Character.java Tue Sep 21 19:45:57 2010
@@ -2184,7 +2184,7 @@ public final class Character implements
}
int len = seq.length();
if (index < 0 || index >= len) {
- throw new IndexOutOfBoundsException();
+ throw new StringIndexOutOfBoundsException(index);
}
char high = seq.charAt(index++);
@@ -2226,7 +2226,7 @@ public final class Character implements
}
int len = seq.length;
if (index < 0 || index >= len) {
- throw new IndexOutOfBoundsException();
+ throw new ArrayIndexOutOfBoundsException(index);
}
char high = seq[index++];
@@ -2267,7 +2267,7 @@ public final class Character implements
*/
public static int codePointAt(char[] seq, int index, int limit) {
if (index < 0 || index >= limit || limit < 0 || limit > seq.length) {
- throw new IndexOutOfBoundsException();
+ throw new ArrayIndexOutOfBoundsException();
}
char high = seq[index++];
@@ -2309,7 +2309,7 @@ public final class Character implements
}
int len = seq.length();
if (index < 1 || index > len) {
- throw new IndexOutOfBoundsException();
+ throw new StringIndexOutOfBoundsException(index);
}
char low = seq.charAt(--index);
@@ -2351,7 +2351,7 @@ public final class Character implements
}
int len = seq.length;
if (index < 1 || index > len) {
- throw new IndexOutOfBoundsException();
+ throw new ArrayIndexOutOfBoundsException(index);
}
char low = seq[--index];
@@ -2398,7 +2398,7 @@ public final class Character implements
}
int len = seq.length;
if (index <= start || index > len || start < 0 || start >= len) {
- throw new IndexOutOfBoundsException();
+ throw new ArrayIndexOutOfBoundsException();
}
char low = seq[--index];
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/String.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/String.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/String.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/lang/String.java Tue Sep 21 19:45:57 2010
@@ -36,6 +36,8 @@ import java.util.regex.PatternSyntaxExce
import org.apache.harmony.kernel.vm.VM;
import org.apache.harmony.luni.util.PriviAction;
+import com.ibm.icu.lang.UCharacter;
+
/**
* An immutable sequence of characters/code units ({@code char}s). A
* {@code String} is represented by array of UTF-16 values, such that
@@ -1483,25 +1485,15 @@ public final class String implements Ser
* the characters in this string.
*/
public String toLowerCase(Locale locale) {
- for (int o = offset, end = offset + count; o < end; o++) {
- char ch = value[o];
- if (ch != toLowerCase(ch)) {
- char[] buffer = new char[count];
- int i = o - offset;
- // Not worth checking for i == 0 case
- System.arraycopy(value, offset, buffer, 0, i);
- // Turkish
- if (!"tr".equals(locale.getLanguage())) { //$NON-NLS-1$
- while (i < count) {
- buffer[i++] = toLowerCase(value[o++]);
- }
- } else {
- while (i < count) {
- buffer[i++] = (ch = value[o++]) != 0x49 ? toLowerCase(ch)
- : (char) 0x131;
- }
- }
- return new String(0, count, buffer);
+ String result = UCharacter.toLowerCase(locale, this);
+
+ // Must return self if chars unchanged
+ if (count != result.count) {
+ return result;
+ }
+ for (int i = 0; i < count; ++i) {
+ if (value[offset + i] != result.value[result.offset + i]) {
+ return result;
}
}
return this;
@@ -1528,66 +1520,6 @@ public final class String implements Ser
return toUpperCase(Locale.getDefault());
}
- private static final char[] upperValues = "SS\u0000\u02bcN\u0000J\u030c\u0000\u0399\u0308\u0301\u03a5\u0308\u0301\u0535\u0552\u0000H\u0331\u0000T\u0308\u0000W\u030a\u0000Y\u030a\u0000A\u02be\u0000\u03a5\u0313\u0000\u03a5\u0313\u0300\u03a5\u0313\u0301\u03a5\u0313\u0342\u1f08\u0399\u0000\u1f09\u0399\u0000\u1f0a\u0399\u0000\u1f0b\u0399\u0000\u1f0c\u0399\u0000\u1f0d\u0399\u0000\u1f0e\u0399\u0000\u1f0f\u0399\u0000\u1f08\u0399\u0000\u1f09\u0399\u0000\u1f0a\u0399\u0000\u1f0b\u0399\u0000\u1f0c\u0399\u0000\u1f0d\u0399\u0000\u1f0e\u0399\u0000\u1f0f\u0399\u0000\u1f28\u0399\u0000\u1f29\u0399\u0000\u1f2a\u0399\u0000\u1f2b\u0399\u0000\u1f2c\u0399\u0000\u1f2d\u0399\u0000\u1f2e\u0399\u0000\u1f2f\u0399\u0000\u1f28\u0399\u0000\u1f29\u0399\u0000\u1f2a\u0399\u0000\u1f2b\u0399\u0000\u1f2c\u0399\u0000\u1f2d\u0399\u0000\u1f2e\u0399\u0000\u1f2f\u0399\u0000\u1f68\u0399\u0000\u1f69\u0399\u0000\u1f6a\u0399\u0000\u1f6b\u0399\u0000\u1f6c\u0399\u0000\u1f6d\u0399\u0000\u1f6e\u0399\u0000\u1f6f\u0399\u0
000\u1f68\u0399\u0000\u1f69\u0399\u0000\u1f6a\u0399\u0000\u1f6b\u0399\u0000\u1f6c\u0399\u0000\u1f6d\u0399\u0000\u1f6e\u0399\u0000\u1f6f\u0399\u0000\u1fba\u0399\u0000\u0391\u0399\u0000\u0386\u0399\u0000\u0391\u0342\u0000\u0391\u0342\u0399\u0391\u0399\u0000\u1fca\u0399\u0000\u0397\u0399\u0000\u0389\u0399\u0000\u0397\u0342\u0000\u0397\u0342\u0399\u0397\u0399\u0000\u0399\u0308\u0300\u0399\u0308\u0301\u0399\u0342\u0000\u0399\u0308\u0342\u03a5\u0308\u0300\u03a5\u0308\u0301\u03a1\u0313\u0000\u03a5\u0342\u0000\u03a5\u0308\u0342\u1ffa\u0399\u0000\u03a9\u0399\u0000\u038f\u0399\u0000\u03a9\u0342\u0000\u03a9\u0342\u0399\u03a9\u0399\u0000FF\u0000FI\u0000FL\u0000FFIFFLST\u0000ST\u0000\u0544\u0546\u0000\u0544\u0535\u0000\u0544\u053b\u0000\u054e\u0546\u0000\u0544\u053d\u0000".value; //$NON-NLS-1$
-
- /**
- * Return the index of the specified character into the upperValues table.
- * The upperValues table contains three entries at each position. These
- * three characters are the upper case conversion. If only two characters
- * are used, the third character in the table is \u0000.
- *
- * @param ch
- * the char being converted to upper case
- *
- * @return the index into the upperValues table, or -1
- */
- private int upperIndex(int ch) {
- int index = -1;
- if (ch >= 0xdf) {
- if (ch <= 0x587) {
- if (ch == 0xdf) {
- index = 0;
- } else if (ch <= 0x149) {
- if (ch == 0x149) {
- index = 1;
- }
- } else if (ch <= 0x1f0) {
- if (ch == 0x1f0) {
- index = 2;
- }
- } else if (ch <= 0x390) {
- if (ch == 0x390) {
- index = 3;
- }
- } else if (ch <= 0x3b0) {
- if (ch == 0x3b0) {
- index = 4;
- }
- } else if (ch <= 0x587) {
- if (ch == 0x587) {
- index = 5;
- }
- }
- } else if (ch >= 0x1e96) {
- if (ch <= 0x1e9a) {
- index = 6 + ch - 0x1e96;
- } else if (ch >= 0x1f50 && ch <= 0x1ffc) {
- index = "\u000b\u0000\f\u0000\r\u0000\u000e\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>\u0000\u0000?@A\u0000BC\u0000\u0000\u0000\u0000D\u0000\u0000\u0000\u0000\u0000EFG\u0000HI\u0000\u0000\u0000\u0000J\u0000\u0000\u0000\u0000\u0000KL\u0000\u0000MN\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000OPQ\u0000RS\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000TUV\u0000WX\u0000\u0000\u0000\u0000Y".value[ch - 0x1f50]; //$NON-NLS-1$
- if (index == 0) {
- index = -1;
- }
- } else if (ch >= 0xfb00) {
- if (ch <= 0xfb06) {
- index = 90 + ch - 0xfb00;
- } else if (ch >= 0xfb13 && ch <= 0xfb17) {
- index = 97 + ch - 0xfb13;
- }
- }
- }
- }
- return index;
- }
-
/**
* Converts the characters in this string to uppercase, using the specified
* Locale.
@@ -1598,59 +1530,18 @@ public final class String implements Ser
* the characters in this string.
*/
public String toUpperCase(Locale locale) {
- boolean turkish = "tr".equals(locale.getLanguage()); //$NON-NLS-1$
- char[] output = null;
- int i = 0;
- for (int o = offset, end = offset + count; o < end; o++) {
- char ch = value[o];
- int index = upperIndex(ch);
- if (index == -1) {
- if (output != null && i >= output.length) {
- char[] newoutput = new char[output.length + (count / 6) + 2];
- System.arraycopy(output, 0, newoutput, 0, output.length);
- output = newoutput;
- }
- char upch = !turkish ? toUpperCase(ch)
- : (ch != 0x69 ? toUpperCase(ch)
- : (char) 0x130);
- if (ch != upch) {
- if (output == null) {
- output = new char[count];
- i = o - offset;
- System.arraycopy(value, offset, output, 0, i);
-
- }
- output[i++] = upch;
- } else if (output != null) {
- output[i++] = ch;
- }
- } else {
- int target = index * 3;
- char val3 = upperValues[target + 2];
- if (output == null) {
- output = new char[count + (count / 6) + 2];
- i = o - offset;
- System.arraycopy(value, offset, output, 0, i);
- } else if (i + (val3 == 0 ? 1 : 2) >= output.length) {
- char[] newoutput = new char[output.length + (count / 6) + 3];
- System.arraycopy(output, 0, newoutput, 0, output.length);
- output = newoutput;
- }
+ String result = UCharacter.toUpperCase(locale, this);
- char val = upperValues[target];
- output[i++] = val;
- val = upperValues[target + 1];
- output[i++] = val;
- if (val3 != 0) {
- output[i++] = val3;
- }
- }
+ // Must return self if chars unchanged
+ if (count != result.count) {
+ return result;
}
- if (output == null) {
- return this;
+ for (int i = 0; i < count; i++) {
+ if (value[offset + i] != result.value[result.offset + i]) {
+ return result;
+ }
}
- return output.length == i || output.length - i < 8 ? new String(0, i,
- output) : new String(output, 0, i);
+ return this;
}
/**
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/net/SocketPermission.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/net/SocketPermission.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/net/SocketPermission.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/net/SocketPermission.java Tue Sep 21 19:45:57 2010
@@ -300,14 +300,7 @@ public final class SocketPermission exte
String port = hostPort.substring(host.length());
String emptyString = ""; //$NON-NLS-1$
- if (emptyString.equals(port)) {
- // Not specified
- portMin = 80;
- portMax = 80;
- return;
- }
-
- if (":*".equals(port)) {
+ if (emptyString.equals(port) || ":*".equals(port)) {
// The port range should be 0-65535
portMin = 0;
portMax = 65535;
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/ArrayList.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/ArrayList.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/ArrayList.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/ArrayList.java Tue Sep 21 19:45:57 2010
@@ -326,14 +326,13 @@ public class ArrayList<E> extends Abstra
* the minimum capacity asked for.
*/
public void ensureCapacity(int minimumCapacity) {
- int required = minimumCapacity - array.length;
- if (required > 0) {
+ if (array.length < minimumCapacity) {
// REVIEW: Why do we check the firstIndex first? Growing
// the end makes more sense
if (firstIndex > 0) {
- growAtFront(required);
+ growAtFront(minimumCapacity - array.length);
} else {
- growAtEnd(required);
+ growAtEnd(minimumCapacity - array.length);
}
}
}
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/Currency.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/Currency.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/Currency.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/java/util/Currency.java Tue Sep 21 19:45:57 2010
@@ -73,13 +73,11 @@ public final class Currency implements S
*/
public static Currency getInstance(Locale locale) {
com.ibm.icu.util.Currency currency = null;
- try {
- currency = com.ibm.icu.util.Currency.getInstance(locale);
- } catch (IllegalArgumentException e) {
- return null;
- }
+ currency = com.ibm.icu.util.Currency.getInstance(locale);
+
if (currency == null) {
- throw new IllegalArgumentException(locale.getCountry());
+ checkCountry(locale.getCountry());
+ return null;
}
String currencyCode = currency.getCurrencyCode();
@@ -90,6 +88,15 @@ public final class Currency implements S
return getInstance(currencyCode);
}
+ private static void checkCountry(String country) {
+ String[] countries = Locale.getISOCountries();
+ List<String> countryArray = Arrays.asList(countries);
+
+ if (!countryArray.contains(country)) {
+ throw new IllegalArgumentException(country);
+ }
+ }
+
/**
* Returns this {@code Currency}'s ISO 4217 currency code.
*
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/org/apache/harmony/luni/util/FloatingPointParser.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/org/apache/harmony/luni/util/FloatingPointParser.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/org/apache/harmony/luni/util/FloatingPointParser.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/main/java/org/apache/harmony/luni/util/FloatingPointParser.java Tue Sep 21 19:45:57 2010
@@ -23,6 +23,16 @@ package org.apache.harmony.luni.util;
* floating point number.
*/
public final class FloatingPointParser {
+ /*
+ * All number with exponent larger than MAX_EXP can be treated as infinity.
+ * All number with exponent smaller than MIN_EXP can be treated as zero.
+ * Exponent is 10 based.
+ * Eg. double's min value is 5e-324, so double "1e-325" should be parsed as 0.0
+ */
+ private static final int FLOAT_MIN_EXP = -46;
+ private static final int FLOAT_MAX_EXP = 38;
+ private static final int DOUBLE_MIN_EXP = -324;
+ private static final int DOUBLE_MAX_EXP = 308;
private static final class StringExponentPair {
String s;
@@ -94,7 +104,7 @@ public final class FloatingPointParser {
private static StringExponentPair initialParse(String s, int length) {
boolean negative = false;
char c;
- int start, end, decimal;
+ int start, end, decimal, shift;
int e = 0;
start = 0;
@@ -119,17 +129,31 @@ public final class FloatingPointParser {
throw new NumberFormatException(s);
}
exponent_offset++; // skip the plus sign
+ if (exponent_offset == length)
+ throw new NumberFormatException(s);
}
+ String strExp = s.substring(exponent_offset, length);
try {
- e = Integer.parseInt(s.substring(exponent_offset,
- length));
- } catch (NumberFormatException ex) {
- // ex contains the exponent substring
- // only so throw a new exception with
- // the correct string
- throw new NumberFormatException(s);
- }
-
+ e = Integer.parseInt(strExp);
+ } catch (NumberFormatException ex) {
+ // strExp is not empty, so there are 2 situations the exception be thrown
+ // if the string is invalid we should throw exception, if the actual number
+ // is out of the range of Integer, we can still parse the original number to
+ // double or float
+ char ch;
+ for (int i = 0; i < strExp.length(); i++) {
+ ch = strExp.charAt(i);
+ if (ch < '0' || ch > '9') {
+ if (i == 0 && ch == '-')
+ continue;
+ // ex contains the exponent substring
+ // only so throw a new exception with
+ // the correct string
+ throw new NumberFormatException(s);
+ }
+ }
+ e = strExp.charAt(0) == '-' ? Integer.MIN_VALUE : Integer.MAX_VALUE;
+ }
} else {
end = length;
}
@@ -150,7 +174,11 @@ public final class FloatingPointParser {
decimal = s.indexOf('.');
if (decimal > -1) {
- e -= end - decimal - 1;
+ shift = end - decimal - 1;
+ //prevent e overflow, shift >= 0
+ if (e >= 0 || e - Integer.MIN_VALUE > shift) {
+ e -= shift;
+ }
s = s.substring(start, decimal) + s.substring(decimal + 1, end);
} else {
s = s.substring(start, end);
@@ -168,7 +196,10 @@ public final class FloatingPointParser {
start++;
if (end != length || start != 0) {
- e += length - end;
+ shift = length - end;
+ if (e <= 0 || Integer.MAX_VALUE - e > shift) {
+ e += shift;
+ }
s = s.substring(start, end);
}
@@ -208,7 +239,7 @@ public final class FloatingPointParser {
if (namedDouble.regionMatches(false, cmpstart, "Infinity", 0, 8)) {
return negative ? Double.NEGATIVE_INFINITY
- : Float.POSITIVE_INFINITY;
+ : Double.POSITIVE_INFINITY;
}
if (namedDouble.regionMatches(false, cmpstart, "NaN", 0, 3)) {
@@ -280,6 +311,17 @@ public final class FloatingPointParser {
StringExponentPair info = initialParse(s, length);
+ // two kinds of situation will directly return 0.0
+ // 1. info.s is 0
+ // 2. actual exponent is less than Double.MIN_EXPONENT
+ if ("0".equals(info.s) || (info.e + info.s.length() - 1 < DOUBLE_MIN_EXP)) {
+ return info.negative ? -0.0 : 0.0;
+ }
+ // if actual exponent is larger than Double.MAX_EXPONENT, return infinity
+ // prevent overflow, check twice
+ if ((info.e > DOUBLE_MAX_EXP) || (info.e + info.s.length() - 1 > DOUBLE_MAX_EXP)) {
+ return info.negative ? Double.NEGATIVE_INFINITY : Double.POSITIVE_INFINITY;
+ }
double result = parseDblImpl(info.s, info.e);
if (info.negative)
result = -result;
@@ -318,6 +360,17 @@ public final class FloatingPointParser {
StringExponentPair info = initialParse(s, length);
+ // two kinds of situation will directly return 0.0f
+ // 1. info.s is 0
+ // 2. actual exponent is less than Float.MIN_EXPONENT
+ if ("0".equals(info.s) || (info.e + info.s.length() - 1 < FLOAT_MIN_EXP)) {
+ return info.negative ? -0.0f : 0.0f;
+ }
+ // if actual exponent is larger than Float.MAX_EXPONENT, return infinity
+ // prevent overflow, check twice
+ if ((info.e > FLOAT_MAX_EXP) || (info.e + info.s.length() - 1 > FLOAT_MAX_EXP)) {
+ return info.negative ? Float.NEGATIVE_INFINITY : Float.POSITIVE_INFINITY;
+ }
float result = parseFltImpl(info.s, info.e);
if (info.negative)
result = -result;
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/PipedInputStreamTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/PipedInputStreamTest.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/PipedInputStreamTest.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/PipedInputStreamTest.java Tue Sep 21 19:45:57 2010
@@ -361,6 +361,40 @@ public class PipedInputStreamTest extend
myRun.pass);
}
+ static class Worker extends Thread {
+ PipedOutputStream out;
+
+ Worker(PipedOutputStream pos) {
+ this.out = pos;
+ }
+
+ public void run() {
+ try {
+ out.write(20);
+ out.close();
+ Thread.sleep(5000);
+ } catch (Exception e) {
+ }
+ }
+ }
+
+ public void test_read_after_write_close() throws Exception{
+ PipedInputStream in = new PipedInputStream();
+ PipedOutputStream out = new PipedOutputStream();
+ in.connect(out);
+ Thread worker = new Worker(out);
+ worker.start();
+ Thread.sleep(2000);
+ assertEquals("Should read 20.", 20, in.read());
+ worker.join();
+ assertEquals("Write end is closed, should return -1", -1, in.read());
+ byte[] buf = new byte[1];
+ assertEquals("Write end is closed, should return -1", -1, in.read(buf, 0, 1));
+ assertEquals("Buf len 0 should return first", 0, in.read(buf, 0, 0));
+ in.close();
+ out.close();
+ }
+
/**
* Tears down the fixture, for example, close a network connection. This
* method is called after a test is executed.
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/FloatTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/FloatTest.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/FloatTest.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/FloatTest.java Tue Sep 21 19:45:57 2010
@@ -904,6 +904,13 @@ public class FloatTest extends TestCase
Float negInfiniteSigned = Float.valueOf("-Infinity");
assertTrue("Floattest7", negInfiniteSigned.equals(new Float(Float.NEGATIVE_INFINITY)));
+
+ // test HARMONY-6641
+ posInfinite = Float.valueOf("320.0E+2147483647");
+ assertEquals("Floattest8", Float.POSITIVE_INFINITY, posInfinite);
+
+ negZero = Float.valueOf("-1.4E-2147483314");
+ assertEquals("Floattest9", -0.0f, negZero);
}
private void test_toString(float ff, String answer) {
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketPermissionTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketPermissionTest.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketPermissionTest.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketPermissionTest.java Tue Sep 21 19:45:57 2010
@@ -64,6 +64,11 @@ public class SocketPermissionTest extend
"listen");
assertTrue("Port range error", sp3.implies(spAllPorts));
assertTrue("Port range error", spAllPorts.implies(sp3));
+
+ SocketPermission sp4 = new SocketPermission("localhost", "listen");
+ assertEquals("Wrong name4", "localhost", sp4.getName());
+ assertTrue("Port range error", sp4.implies(spAllPorts));
+ assertTrue("Port range error", spAllPorts.implies(sp4));
}
/**
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ArrayListTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ArrayListTest.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ArrayListTest.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ArrayListTest.java Tue Sep 21 19:45:57 2010
@@ -546,6 +546,10 @@ public class ArrayListTest extends junit
al.ensureCapacity(capacity + 2);
assertTrue("EnsureCapacity did not change location.", location == al
.indexOf(testObject));
+
+ ArrayList<String> list = new ArrayList<String>(1);
+ list.add("hello");
+ list.ensureCapacity(Integer.MIN_VALUE);
}
/**
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ScannerTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ScannerTest.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ScannerTest.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ScannerTest.java Tue Sep 21 19:45:57 2010
@@ -1117,7 +1117,7 @@ public class ScannerTest extends TestCas
// expected
}
- s = new Scanner("-123 123- (123)");
+ s = new Scanner("-123 123-");
s.useLocale(new Locale("mk", "MK"));
assertEquals(-123, s.nextInt(10));
try {
@@ -1128,8 +1128,6 @@ public class ScannerTest extends TestCas
}
// Skip the un-recognizable token 123-.
assertEquals("123-", s.next());
- // The following test case fails on RI
- assertEquals(-123, s.nextInt(10));
// If the parameter radix is illegal, the following test cases fail on
// RI
@@ -1317,7 +1315,7 @@ public class ScannerTest extends TestCas
// expected
}
- s = new Scanner("-123 123- (123)");
+ s = new Scanner("-123 123-");
s.useLocale(new Locale("mk", "MK"));
assertEquals(-123, s.nextInt());
try {
@@ -1328,8 +1326,6 @@ public class ScannerTest extends TestCas
}
// Skip the un-recognizable token 123-.
assertEquals("123-", s.next());
- // The following test case fails on RI
- assertEquals(-123, s.nextInt());
}
/**
@@ -1574,9 +1570,8 @@ public class ScannerTest extends TestCas
// Expected
}
- s = new Scanner("(123) 123- -123");
+ s = new Scanner("123- -123");
s.useLocale(new Locale("mk", "MK"));
- assertEquals((float)-123.0, s.nextFloat());
try {
s.nextFloat();
fail("Should throw InputMismatchException");
@@ -3451,7 +3446,7 @@ public class ScannerTest extends TestCas
// expected
}
- s = new Scanner("-123 123- (123)");
+ s = new Scanner("-123 123-");
s.useLocale(new Locale("mk", "MK"));
assertTrue(s.hasNextInt(10));
assertEquals(-123, s.nextInt(10));
@@ -3464,9 +3459,6 @@ public class ScannerTest extends TestCas
}
// Skip the un-recognizable token 123-.
assertEquals("123-", s.next());
- // The following test case fails on RI
- assertTrue(s.hasNextInt(10));
- assertEquals(-123, s.nextInt(10));
}
/**
@@ -3653,7 +3645,7 @@ public class ScannerTest extends TestCas
// expected
}
- s = new Scanner("-123 123- (123)");
+ s = new Scanner("-123 123-");
s.useLocale(new Locale("mk", "MK"));
assertTrue(s.hasNextInt());
assertEquals(-123, s.nextInt());
@@ -3665,9 +3657,6 @@ public class ScannerTest extends TestCas
}
// Skip the un-recognizable token 123-.
assertEquals("123-", s.next());
- // The following test case fails on RI
- assertTrue(s.hasNextInt());
- assertEquals(-123, s.nextInt());
}
/**
@@ -3775,10 +3764,8 @@ public class ScannerTest extends TestCas
// // Expected
// }
- s = new Scanner("(123) 123- -123");
+ s = new Scanner("123- -123");
s.useLocale(new Locale("mk", "MK"));
- assertTrue(s.hasNextFloat());
- assertEquals((float)-123.0, s.nextFloat());
assertFalse(s.hasNextFloat());
try {
s.nextFloat();
@@ -5701,6 +5688,7 @@ public class ScannerTest extends TestCas
thread.start();
for (int index = 0; index < 5; index++) {
pos.write(("line" + index + "\n").getBytes());
+ pos.flush();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Modified: harmony/enhanced/java/branches/mrh/classlib/modules/nio_char/src/main/java/java/nio/charset/Charset.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/branches/mrh/classlib/modules/nio_char/src/main/java/java/nio/charset/Charset.java?rev=999573&r1=999572&r2=999573&view=diff
==============================================================================
--- harmony/enhanced/java/branches/mrh/classlib/modules/nio_char/src/main/java/java/nio/charset/Charset.java (original)
+++ harmony/enhanced/java/branches/mrh/classlib/modules/nio_char/src/main/java/java/nio/charset/Charset.java Tue Sep 21 19:45:57 2010
@@ -96,7 +96,7 @@ public abstract class Charset implements
private static CharsetProviderImpl _builtInProvider = null;
// cached built in charsets
- private static TreeMap<String, Charset> _builtInCharsets = null;
+ private static volatile TreeMap<String, Charset> _builtInCharsets = null;
private final String canonicalName;