Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 23473 invoked from network); 19 Apr 2009 11:16:10 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 19 Apr 2009 11:16:10 -0000 Received: (qmail 75959 invoked by uid 500); 19 Apr 2009 11:16:10 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 75851 invoked by uid 500); 19 Apr 2009 11:16:10 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 75841 invoked by uid 99); 19 Apr 2009 11:16:10 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 19 Apr 2009 11:16:10 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 19 Apr 2009 11:16:05 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 725202388A4A; Sun, 19 Apr 2009 11:15:43 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r766448 [1/4] - in /harmony/enhanced/classlib/branches/java6: ./ depends/files/ depends/jars/icu4j_3.8/ depends/jars/icu4j_4.0/ depends/manifests/icu4j_3.8/META-INF/ depends/manifests/icu4j_4.0/ depends/manifests/icu4j_4.0/META-INF/ make/ m... Date: Sun, 19 Apr 2009 11:15:34 -0000 To: commits@harmony.apache.org From: qiuxx@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090419111543.725202388A4A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: qiuxx Date: Sun Apr 19 11:15:28 2009 New Revision: 766448 URL: http://svn.apache.org/viewvc?rev=766448&view=rev Log: Merge updates from classlib trunk@765922 since r761593 Added: harmony/enhanced/classlib/branches/java6/depends/jars/icu4j_4.0/ - copied from r766264, harmony/enhanced/classlib/trunk/depends/jars/icu4j_4.0/ harmony/enhanced/classlib/branches/java6/depends/jars/icu4j_4.0/icu4j-4_0.jar - copied unchanged from r766264, harmony/enhanced/classlib/trunk/depends/jars/icu4j_4.0/icu4j-4_0.jar harmony/enhanced/classlib/branches/java6/depends/jars/icu4j_4.0/icu4j-charsets-4_0.jar - copied unchanged from r766264, harmony/enhanced/classlib/trunk/depends/jars/icu4j_4.0/icu4j-charsets-4_0.jar harmony/enhanced/classlib/branches/java6/depends/manifests/icu4j_4.0/ - copied from r766264, harmony/enhanced/classlib/trunk/depends/manifests/icu4j_4.0/ harmony/enhanced/classlib/branches/java6/depends/manifests/icu4j_4.0/META-INF/ - copied from r766264, harmony/enhanced/classlib/trunk/depends/manifests/icu4j_4.0/META-INF/ harmony/enhanced/classlib/branches/java6/depends/manifests/icu4j_4.0/META-INF/MANIFEST.MF - copied unchanged from r766264, harmony/enhanced/classlib/trunk/depends/manifests/icu4j_4.0/META-INF/MANIFEST.MF harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/org/apache/harmony/luni/util/Version.java - copied unchanged from r766264, harmony/enhanced/classlib/trunk/modules/luni/src/main/java/org/apache/harmony/luni/util/Version.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/jars/ - copied from r766264, harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/jars/ harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/jars/ant.jar - copied unchanged from r766264, harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/jars/ant.jar harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/largeClassUnpacked.jar - copied unchanged from r766264, harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/largeClassUnpacked.jar Removed: harmony/enhanced/classlib/branches/java6/depends/jars/icu4j_3.8/icu4j-3_8.jar harmony/enhanced/classlib/branches/java6/depends/jars/icu4j_3.8/icu4j-charsets-3_8.jar harmony/enhanced/classlib/branches/java6/depends/manifests/icu4j_3.8/META-INF/MANIFEST.MF Modified: harmony/enhanced/classlib/branches/java6/NOTICE harmony/enhanced/classlib/branches/java6/depends/files/bootclasspath.properties harmony/enhanced/classlib/branches/java6/depends/files/java.security harmony/enhanced/classlib/branches/java6/make/build-java.xml harmony/enhanced/classlib/branches/java6/make/depends.properties harmony/enhanced/classlib/branches/java6/make/properties.xml harmony/enhanced/classlib/branches/java6/modules/beans/src/main/java/java/beans/beancontext/BeanContextSupport.java harmony/enhanced/classlib/branches/java6/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/beancontext/BeanContextSupportTest.java harmony/enhanced/classlib/branches/java6/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/extras/TestRdnParser.java harmony/enhanced/classlib/branches/java6/modules/luni/make/exclude.common harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/BufferedReader.java harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/File.java harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/net/URLClassLoader.java harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Collections.java harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/LinkedList.java harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Scanner.java harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/launcher/shared/main.c harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/internal/net/www/protocol/http/HttpURLConnectionTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/BufferedReaderTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileInputStreamTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileOutputStreamTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/ObjectInputStreamTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/PipedInputStreamTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/PipedWriterTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/CharacterTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/reflect/ModifierTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/ServerSocketTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/URLClassLoaderTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/Collections2Test.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/CurrencyTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/LinkedListTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/LocaleTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/ScannerTest.java harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/util/TimeZoneTest.java harmony/enhanced/classlib/branches/java6/modules/nio/src/main/java/common/org/apache/harmony/nio/internal/SocketChannelImpl.java harmony/enhanced/classlib/branches/java6/modules/nio/src/test/java/common/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java harmony/enhanced/classlib/branches/java6/modules/nio_char/src/main/java/java/nio/charset/Charset.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/Archive.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/AttributeDefinitionBands.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BHSDCodec.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BandSet.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/BcBands.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/ClassBands.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/CodecEncoding.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/CpBands.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/FileBands.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/IcBands.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/MetadataBandGroup.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/PopulationCodec.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/RunCodec.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/Segment.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/pack200/SegmentHeader.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java/org/apache/harmony/unpack200/BandSet.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/main/java5/org/apache/harmony/unpack200/Pack200PackerAdapter.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/ArchiveTest.java harmony/enhanced/classlib/branches/java6/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/CodecEncodingTest.java harmony/enhanced/classlib/branches/java6/modules/portlib/src/test/native/hyfile/shared/hyfile.c harmony/enhanced/classlib/branches/java6/modules/prefs/src/main/java/java/util/prefs/AbstractPreferences.java harmony/enhanced/classlib/branches/java6/modules/prefs/src/main/java/java/util/prefs/FilePreferencesImpl.java harmony/enhanced/classlib/branches/java6/modules/prefs/src/main/java/java/util/prefs/RegistryPreferencesImpl.java harmony/enhanced/classlib/branches/java6/modules/prefs/src/main/java/org/apache/harmony/prefs/internal/nls/Messages.java harmony/enhanced/classlib/branches/java6/modules/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/AbstractPreferencesTest.java harmony/enhanced/classlib/branches/java6/modules/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferencesFactoryTest.java harmony/enhanced/classlib/branches/java6/modules/prefs/src/test/java/org/apache/harmony/prefs/tests/java/util/prefs/PreferencesTest.java harmony/enhanced/classlib/branches/java6/modules/security/src/main/java/common/org/apache/harmony/security/asn1/ASN1StringType.java harmony/enhanced/classlib/branches/java6/modules/security/src/main/java/common/org/apache/harmony/security/asn1/ASN1UTCTime.java harmony/enhanced/classlib/branches/java6/modules/security/src/main/java/common/org/apache/harmony/security/provider/cert/X509CertFactoryImpl.java harmony/enhanced/classlib/branches/java6/modules/security/src/main/java/common/org/apache/harmony/security/x501/AttributeTypeAndValue.java harmony/enhanced/classlib/branches/java6/modules/security/src/main/java/common/org/apache/harmony/security/x509/GeneralName.java harmony/enhanced/classlib/branches/java6/modules/security/src/test/api/java/org/apache/harmony/security/tests/java/security/Identity2Test.java harmony/enhanced/classlib/branches/java6/modules/security/src/test/api/java/org/apache/harmony/security/tests/java/security/KeyStore3Test.java harmony/enhanced/classlib/branches/java6/modules/security/src/test/api/java/org/apache/harmony/security/tests/java/security/KeyStorePrivateKeyEntryTest.java harmony/enhanced/classlib/branches/java6/modules/security/src/test/api/java/org/apache/harmony/security/tests/java/security/cert/CertificateFactory4Test.java harmony/enhanced/classlib/branches/java6/modules/security/src/test/impl/java.injected/java/security/cert/X509CertificateTest.java harmony/enhanced/classlib/branches/java6/modules/security/src/test/impl/java/org/apache/harmony/security/tests/provider/cert/X509CertFactoryPerfTest.java harmony/enhanced/classlib/branches/java6/modules/security/src/test/support/common/java/org/apache/harmony/security/tests/support/cert/TestUtils.java Modified: harmony/enhanced/classlib/branches/java6/NOTICE URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/NOTICE?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/NOTICE (original) +++ harmony/enhanced/classlib/branches/java6/NOTICE Sun Apr 19 11:15:28 2009 @@ -1,11 +1,5 @@ - ========================================================================= - == NOTICE file corresponding to the section 4 d of == - == the Apache License, Version 2.0, == - == in this case for the Apache Harmony distribution. == - ========================================================================= - Apache Harmony -Copyright 2006, 2007 The Apache Software Foundation +Copyright 2006, 2009 The Apache Software Foundation. This product includes software developed at The Apache Software Foundation (http://www.apache.org/). Modified: harmony/enhanced/classlib/branches/java6/depends/files/bootclasspath.properties URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/depends/files/bootclasspath.properties?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/depends/files/bootclasspath.properties (original) +++ harmony/enhanced/classlib/branches/java6/depends/files/bootclasspath.properties Sun Apr 19 11:15:28 2009 @@ -165,8 +165,8 @@ # ICU functionality for text/characters are provided by the ICU4J # and ICU4J-charsets JAR files. -bootclasspath.31=icu4j_3.8/icu4j-3_8.jar -bootclasspath.32=icu4j_3.8/icu4j-charsets-3_8.jar +bootclasspath.31=icu4j_4.0/icu4j-4_0.jar +bootclasspath.32=icu4j_4.0/icu4j-charsets-4_0.jar # The following JARs are from Xerces/Xalan bootclasspath.34=xalan-j_2.7.0/xalan.jar Modified: harmony/enhanced/classlib/branches/java6/depends/files/java.security URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/depends/files/java.security?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/depends/files/java.security (original) +++ harmony/enhanced/classlib/branches/java6/depends/files/java.security Sun Apr 19 11:15:28 2009 @@ -56,8 +56,8 @@ # and an optional policy file in the user's home directory. # It is possible to specify any number of policy files, via policy.url.n keys. # See also: "JavaTM 2 Platform Security Architecture.", chapter 3. Permissions and Security Policy -policy.url.1=file:/${java.home}/lib/security/java.policy -policy.url.2=file:/${user.home}/.java.policy +policy.url.1=file:${java.home}/lib/security/java.policy +policy.url.2=file:${user.home}/.java.policy # Flag to enable/disable properties expansion (${...}) in policy files. Modified: harmony/enhanced/classlib/branches/java6/make/build-java.xml URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/make/build-java.xml?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/make/build-java.xml (original) +++ harmony/enhanced/classlib/branches/java6/make/build-java.xml Sun Apr 19 11:15:28 2009 @@ -203,7 +203,7 @@ - + Modified: harmony/enhanced/classlib/branches/java6/make/depends.properties URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/make/depends.properties?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/make/depends.properties (original) +++ harmony/enhanced/classlib/branches/java6/make/depends.properties Sun Apr 19 11:15:28 2009 @@ -128,7 +128,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=http://dfn.dl.sourceforge.net/sourceforge/dejavu/dejavu-ttf-2.18-1.zip +dejavu-fonts.url=${sf.base}/dejavu/dejavu-ttf-2.18-1.zip dejavu-fonts.md5=72e0a87ec1f9c5c26c66eabcf1e2018e derby.dir=${depends.jars}/derby-10.3.1.4 Modified: harmony/enhanced/classlib/branches/java6/make/properties.xml URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/make/properties.xml?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/make/properties.xml (original) +++ harmony/enhanced/classlib/branches/java6/make/properties.xml Sun Apr 19 11:15:28 2009 @@ -444,6 +444,7 @@ + @@ -453,8 +454,8 @@ - - + + Modified: harmony/enhanced/classlib/branches/java6/modules/beans/src/main/java/java/beans/beancontext/BeanContextSupport.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/beans/src/main/java/java/beans/beancontext/BeanContextSupport.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/beans/src/main/java/java/beans/beancontext/BeanContextSupport.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/beans/src/main/java/java/beans/beancontext/BeanContextSupport.java Sun Apr 19 11:15:28 2009 @@ -288,10 +288,12 @@ // trigger hook synchronized (child) { + addSerializable(childBCSC); childJustAddedHook(child, childBCSC); } if (proxy != null) { synchronized (proxy) { + addSerializable(proxyBCSC); childJustAddedHook(proxy, proxyBCSC); } } @@ -987,10 +989,12 @@ // trigger hook synchronized (child) { + removeSerializable(childBCSC); childJustRemovedHook(child, childBCSC); } if (peer != null) { synchronized (peer) { + removeSerializable(peerBCSC); childJustRemovedHook(peer, peerBCSC); } } @@ -1243,19 +1247,6 @@ serializing = true; try { - // count serializable children - synchronized (children) { - serializable = 0; - for (Iterator iter = children.values().iterator(); iter - .hasNext();) { - BCSChild bcsc = (BCSChild) iter.next(); - if (bcsc.child instanceof Serializable - && (bcsc.proxyPeer == null || bcsc.proxyPeer instanceof Serializable)) { - serializable++; - } - } - } - oos.defaultWriteObject(); bcsPreSerializationHook(oos); @@ -1309,6 +1300,29 @@ } } + /* + * Increase variable serializable if child and proxyPeer fields of the given + * BCSChild object are serializable + */ + private void addSerializable(BCSChild bcsc) { + if (bcsc.child instanceof Serializable + && (bcsc.proxyPeer == null || bcsc.proxyPeer instanceof Serializable)) { + serializable++; + } + } + + /* + * Decrease variable serializable if child and proxyPeer fields of the given + * BCSChild object are serializable + */ + private void removeSerializable(BCSChild bcsc) { + if (serializable > 0 + && bcsc.child instanceof Serializable + && (bcsc.proxyPeer == null || bcsc.proxyPeer instanceof Serializable)) { + serializable--; + } + } + } Modified: harmony/enhanced/classlib/branches/java6/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/beancontext/BeanContextSupportTest.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/beancontext/BeanContextSupportTest.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/beancontext/BeanContextSupportTest.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/beancontext/BeanContextSupportTest.java Sun Apr 19 11:15:28 2009 @@ -1422,6 +1422,43 @@ support.records.assertEndOfRecords(); } + public void test_readChildren_NPE_scenario1() throws Exception { + BeanContextSupport beanContextSupport = new BeanContextSupport(); + beanContextSupport.add(beanContextSupport); + assertEquals(1, beanContextSupport.size()); + assertFalse(beanContextSupport.isSerializing()); + try { + beanContextSupport.readChildren((ObjectInputStream) null); + fail("should throw NullPointerException"); + } catch (NullPointerException e) { + // Expected + } + } + + public void test_readChildren_NPE_scenario2() throws Exception { + BeanContextSupport beanContextSupport = new BeanContextSupport(); + beanContextSupport.readChildren((ObjectInputStream) null); + } + + public void test_readChildren_NPE_scenario3() throws Exception { + BeanContextSupport beanContextSupport = new BeanContextSupport(); + beanContextSupport.add(new Object()); + beanContextSupport.readChildren((ObjectInputStream) null); + } + + public void test_readChildren_NPE_scenario4() throws Exception { + BeanContextSupport beanContextSupport = new BeanContextSupport(); + beanContextSupport.add("Serializable"); + try { + beanContextSupport.readChildren((ObjectInputStream) null); + fail("should throw NullPointerException"); + } catch (NullPointerException e) { + // Expected + } + beanContextSupport.remove("Serializable"); + beanContextSupport.readChildren((ObjectInputStream) null); + } + public void testRemoveAll() { MockBeanContextSupport support = new MockBeanContextSupport(); support.records.assertRecord("initialize", null); Modified: harmony/enhanced/classlib/branches/java6/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/extras/TestRdnParser.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/extras/TestRdnParser.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/extras/TestRdnParser.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/jndi/src/test/java/org/apache/harmony/jndi/tests/javax/naming/ldap/extras/TestRdnParser.java Sun Apr 19 11:15:28 2009 @@ -918,13 +918,13 @@ *

Test method to test if the null character in utf8 where is put when the types are not equals between them.

* */ - public void testRDNNULL() { + public void testRDNNULL() throws Exception { try { String y="ca=nine+type="+Rdn.escapeValue("\\00"); Rdn x=new Rdn("ca=nine+type=\"liom,\"+type=\"\\00\""); byte[] temp=new byte[]{99,97,61,110,105,110,101,43,116,121,112,101,61,0,43,116,121,112,101,61,108,105,111,109,92,44}; for(int i=0;i<26;i++){ - assertEquals(temp[i],x.toString().getBytes()[i]); + assertEquals(temp[i],x.toString().getBytes("UTF-8")[i]); } x=new Rdn("ca=nine+pe=\"liom,\"+type=\"\\00\""); Modified: harmony/enhanced/classlib/branches/java6/modules/luni/make/exclude.common URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/make/exclude.common?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/make/exclude.common (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/make/exclude.common Sun Apr 19 11:15:28 2009 @@ -1,4 +1,3 @@ org/apache/harmony/luni/tests/java/net/URLClassLoaderTest.java org/apache/harmony/luni/tests/java/net/ExcludedProxyTest.java org/apache/harmony/luni/tests/java/util/FormatterTest.java -org/apache/harmony/luni/tests/java/util/ScannerTest.java Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/BufferedReader.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/BufferedReader.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/BufferedReader.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/BufferedReader.java Sun Apr 19 11:15:28 2009 @@ -211,6 +211,7 @@ if (pos < count || fillbuf() != -1) { return buf[pos++]; } + markpos = -1; return -1; } } Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/File.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/File.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/File.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/io/File.java Sun Apr 19 11:15:28 2009 @@ -297,12 +297,8 @@ && (newLength > (uncIndex + 1) || (newLength == 2 && newPath[0] != separatorChar))) { newLength--; } - String tempPath = new String(newPath, 0, newLength); - // If it's the same keep it identical for SecurityManager purposes - if (!tempPath.equals(origPath)) { - return tempPath; - } - return origPath; + + return new String(newPath, 0, newLength); } /** @@ -315,11 +311,15 @@ * @see java.lang.SecurityManager#checkRead(FileDescriptor) */ public boolean canRead() { + if (path.length() == 0) { + return false; + } SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkRead(path); } - return exists() && !isWriteOnlyImpl(properPath(true)); + byte[] pp = properPath(true); + return existsImpl(pp) && !isWriteOnlyImpl(pp); } /** @@ -1085,10 +1085,17 @@ if (security != null) { security.checkRead(path); } - if (!isDirectory() || !canRead()) { + + if (path.length() == 0) { + return null; + } + + byte[] bs = properPath(true); + if (!isDirectoryImpl(bs) || !existsImpl(bs) || isWriteOnlyImpl(bs)) { return null; } - byte[][] implList = listImpl(properPath(true)); + + byte[][] implList = listImpl(bs); if (implList == null) { // empty list return new String[0]; @@ -1178,10 +1185,17 @@ if (security != null) { security.checkRead(path); } - if (!isDirectory() || !canRead()) { + + if (path.length() == 0) { + return null; + } + + byte[] bs = properPath(true); + if (!isDirectoryImpl(bs) || !existsImpl(bs) || isWriteOnlyImpl(bs)) { return null; } - byte[][] implList = listImpl(properPath(true)); + + byte[][] implList = listImpl(bs); if (implList == null) { return new File[0]; } @@ -1218,24 +1232,30 @@ if (security != null) { security.checkRead(path); } - if (!isDirectory() || !canRead()) { + + if (path.length() == 0) { + return null; + } + + byte[] bs = properPath(true); + if (!isDirectoryImpl(bs) || !existsImpl(bs) || isWriteOnlyImpl(bs)) { return null; } - byte[][] implList = listImpl(properPath(true)); + + byte[][] implList = listImpl(bs); if (implList == null) { // empty list return new String[0]; } - java.util.Vector tempResult = new java.util.Vector(); + List tempResult = new ArrayList(); for (int index = 0; index < implList.length; index++) { String aName = Util.toString(implList[index]); if (filter == null || filter.accept(this, aName)) { - tempResult.addElement(aName); + tempResult.add(aName); } } - String[] result = new String[tempResult.size()]; - tempResult.copyInto(result); - return result; + + return tempResult.toArray(new String[tempResult.size()]); } private synchronized static native byte[][] listImpl(byte[] path); @@ -1418,9 +1438,7 @@ } else { userdir = System.getProperty("user.dir"); //$NON-NLS-1$ } - if ((properPath = properPathImpl(pathBytes)) != null) { - return properPath; - } + if (path.length() == 0) { return properPath = Util.getUTF8Bytes(userdir); } Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/net/URLClassLoader.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/net/URLClassLoader.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/net/URLClassLoader.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/net/URLClassLoader.java Sun Apr 19 11:15:28 2009 @@ -302,20 +302,18 @@ } class URLJarHandler extends URLHandler { - JarFile jf; - String prefixName; - IndexFile index = null; - Map subHandlers = new HashMap(); + final JarFile jf; + final String prefixName; + final IndexFile index; + final Map subHandlers = new HashMap(); public URLJarHandler(URL url, URL jarURL, JarFile jf, String prefixName) { super(url); this.jf = jf; this.prefixName = prefixName; this.codeSourceUrl = jarURL; - JarEntry je = jf.getJarEntry("META-INF/INDEX.LIST"); //$NON-NLS-1$ - if (je != null) { - index = IndexFile.readIndexFile(jf, je, url); - } + final JarEntry je = jf.getJarEntry("META-INF/INDEX.LIST"); //$NON-NLS-1$ + this.index = (je == null ? null : IndexFile.readIndexFile(jf, je, url)); } public URLJarHandler(URL url, URL jarURL, JarFile jf, String prefixName, IndexFile index) { @@ -343,6 +341,7 @@ String indexedName = (pos > 0) ? name.substring(0, pos) : name; ArrayList urls = index.get(indexedName); if (urls != null) { + urls.remove(url); for (URL url : urls) { URLHandler h = getSubHandler(url); if (h != null) { @@ -378,6 +377,7 @@ urls = index.get(packageName); } if (urls != null) { + urls.remove(url); for (URL url : urls) { URLHandler h = getSubHandler(url); if (h != null) { @@ -458,6 +458,7 @@ String indexedName = (pos > 0) ? name.substring(0, pos) : name; ArrayList urls = index.get(indexedName); if (urls != null) { + urls.remove(url); for (URL url : urls) { URLHandler h = getSubHandler(url); if (h != null) { @@ -474,7 +475,7 @@ private synchronized URLHandler getSubHandler(URL url) { URLHandler sub = subHandlers.get(url); - if (url != null) { + if (sub != null) { return sub; } String protocol = url.getProtocol(); Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Collections.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Collections.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Collections.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Collections.java Sun Apr 19 11:15:28 2009 @@ -1983,12 +1983,17 @@ * * @throws IndexOutOfBoundsException * if index1 or index2 is out of range of this list + * @since 1.4 */ @SuppressWarnings("unchecked") public static void swap(List list, int index1, int index2) { if (list == null) { throw new NullPointerException(); } + final int size = list.size(); + if (index1 < 0 || index1 >= size || index2 < 0 || index2 >= size) { + throw new IndexOutOfBoundsException(); + } if (index1 == index2) { return; } Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/LinkedList.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/LinkedList.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/LinkedList.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/LinkedList.java Sun Apr 19 11:15:28 2009 @@ -340,6 +340,9 @@ if (adding == 0) { return false; } + Collection elements = (collection == this) ? + new ArrayList(collection) : collection; + Link previous = voidLink; if (location < (size / 2)) { for (int i = 0; i < location; i++) { @@ -351,7 +354,7 @@ } } Link next = previous.next; - for (E e : collection) { + for (E e : elements) { Link newLink = new Link(e, previous, null); previous.next = newLink; previous = newLink; @@ -376,8 +379,11 @@ if (adding == 0) { return false; } + Collection elements = (collection == this) ? + new ArrayList(collection) : collection; + Link previous = voidLink.previous; - for (E e : collection) { + for (E e : elements) { Link newLink = new Link(e, previous, null); previous.next = newLink; previous = newLink; Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Scanner.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Scanner.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Scanner.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Scanner.java Sun Apr 19 11:15:28 2009 @@ -818,9 +818,11 @@ boolean hasNextLine = false; while (true) { if (matcher.find()) { - matchSuccessful = true; - hasNextLine = true; - break; + if (inputExhausted || matcher.end() != bufferLength) { + matchSuccessful = true; + hasNextLine = true; + break; + } } else { if (inputExhausted) { matchSuccessful = false; @@ -1392,10 +1394,13 @@ String result = null; while (true) { if (matcher.find()) { - matchSuccessful = true; - findStartIndex = matcher.end(); - result = matcher.group(); - break; + if (inputExhausted || matcher.end() != bufferLength + || bufferLength < buffer.capacity()) { + matchSuccessful = true; + findStartIndex = matcher.end(); + result = matcher.group(); + break; + } } else { if (inputExhausted) { matchSuccessful = false; Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.java Sun Apr 19 11:15:28 2009 @@ -23,8 +23,6 @@ import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; -import java.lang.ref.ReferenceQueue; -import java.lang.ref.WeakReference; import java.net.ContentHandler; import java.net.ContentHandlerFactory; import java.net.MalformedURLException; @@ -35,7 +33,6 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.jar.JarEntry; import java.util.jar.JarFile; Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/launcher/shared/main.c URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/launcher/shared/main.c?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/launcher/shared/main.c (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/native/launcher/shared/main.c Sun Apr 19 11:15:28 2009 @@ -36,7 +36,7 @@ #define PORT_LIB_OPTION "_org.apache.harmony.vmi.portlib" -#define HY_COPYRIGHT_STRING "Apache Harmony Launcher : (c) Copyright 1991, 2008 The Apache Software Foundation or its licensors, as applicable." +#define HY_COPYRIGHT_STRING "Apache Harmony Launcher : (c) Copyright 1991, 2009 The Apache Software Foundation or its licensors, as applicable." /* Tools launchers will invoke HY_TOOLS_PACKAGE+"."++"."+HY_TOOLS_MAIN_TYPE */ #define HY_TOOLS_PACKAGE "org.apache.harmony.tools" @@ -58,7 +58,7 @@ PROTOTYPE ((HyPortLibrary * portLibrary, int argc, char **argv, UDATA handle, jint version, jboolean ignoreUnrecognized, char *mainClass, UDATA classArg, char *propertiesFileName, - int isStandaloneJar, char *vmdllsubdir)); + int isStandaloneJar, char *vmdllsubdir, int versionFlag)); static int createVMArgs PROTOTYPE ((HyPortLibrary * portLibrary, int argc, char **argv, jint version, jboolean ignoreUnrecognized, @@ -227,8 +227,9 @@ /* The arg is a JAR file to run */ isStandaloneJar = 1; } - if (0 == strcmp ("-version", argv[i])) { - versionFlag = 1; + if (0 == strncmp ("-version", argv[i], 8)) { + /* Display version information */ + versionFlag = i; } if (0 == strcmp ("-showversion", argv[i])) { /* We are being asked to print our version and continue */ @@ -363,12 +364,6 @@ } } - if (versionFlag == 1) { - /* - * We are being asked to print our version, and quit - */ - hyfile_printf (PORTLIB, HYPORT_TTY_OUT, HY_COPYRIGHT_STRING "\n"); - } /* set up the properties file */ propertiesFileName = hymem_allocate_memory (strlen (vmiPath) + 12); if (propertiesFileName == NULL) @@ -392,7 +387,7 @@ /* main launcher processing in this function */ rc = invocation (PORTLIB, argc, argv, handle, JNI_VERSION_1_4, JNI_TRUE, mainClass, - classArg, propertiesFileName, isStandaloneJar, vmdllsubdir); + classArg, propertiesFileName, isStandaloneJar, vmdllsubdir, versionFlag); if (rc) { /* Print an error message except in the case where an uncaught Exception @@ -642,7 +637,7 @@ invocation (HyPortLibrary * portLibrary, int argc, char **argv, UDATA handle, jint version, jboolean ignoreUnrecognized, char *mainClass, UDATA classArg, char *propertiesFileName, - int isStandaloneJar, char *vmdllsubdir) + int isStandaloneJar, char *vmdllsubdir, int versionFlag) { JavaVMInitArgs vm_args; JavaVM *jvm; @@ -678,6 +673,27 @@ } rc = 0; + + if (versionFlag) { + jclass clazz; + jmethodID mID; + jstring jStrObject; + + jStrObject = (*env)->NewStringUTF (env, argv[versionFlag]); + if (!jStrObject) return 3; + + clazz = (*env)->FindClass (env, "org/apache/harmony/luni/util/Version"); + if (!clazz) return 3; + + mID = (*env)->GetStaticMethodID (env, clazz, "version", + "(Ljava/lang/String;)V"); + if (!mID) return 3; + + (*env)->CallStaticVoidMethod(env, clazz, mID, jStrObject); + + return 0; + } + if (mainClass) { if (isStandaloneJar) @@ -952,7 +968,8 @@ { if ( (strcmp (argv[i], "-jar") != 0) && (strncmp (argv[i], "-vmdir:", 7) != 0) - && (strncmp (argv[i], "-vm:", 4) != 0) ) + && (strncmp (argv[i], "-vm:", 4) != 0) + && (strncmp (argv[i], "-version", 8) != 0)) { /* special coding for -classpath and -cp */ /* they get passed to the vm as -Djava.class.path */ Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/internal/net/www/protocol/http/HttpURLConnectionTest.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/internal/net/www/protocol/http/HttpURLConnectionTest.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/internal/net/www/protocol/http/HttpURLConnectionTest.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/internal/net/www/protocol/http/HttpURLConnectionTest.java Sun Apr 19 11:15:28 2009 @@ -37,6 +37,8 @@ import java.util.List; import java.util.Map; +import tests.support.Support_Jetty; + import junit.framework.TestCase; /** @@ -249,7 +251,13 @@ } } - public void setUp() { + private int jettyPort = 0; + + private String jettyURL; + + public void setUp() throws Exception { + jettyPort = Support_Jetty.startDefaultHttpServer(); + jettyURL = "http://localhost:" + jettyPort + "/servlet"; if (DEBUG) { System.out.println("\n=============================="); System.out.println("===== Execution: " + getName()); @@ -300,7 +308,7 @@ * @tests HttpURLConnection.getHeaderFields */ public void test_getHeaderFields() throws Exception { - URL url = new URL("http://www.apache.org"); + URL url = new URL(jettyURL); HttpURLConnection httpURLConnect = (HttpURLConnection) url .openConnection(); assertEquals(200, httpURLConnect.getResponseCode()); @@ -361,7 +369,7 @@ * Test whether getOutputStream can work after connection */ public void test_getOutputStream_AfterConnect() throws Exception { - URL url = new URL("http://www.apache.org"); + URL url = new URL(jettyURL); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.connect(); @@ -421,15 +429,16 @@ */ public void testUsingProxy2() throws Exception { try { - System.setProperty("http.proxyHost", "www.apache.org"); - URL url = new URL("http://www.apache.org"); + System.setProperty("http.proxyHost", "localhost"); + System.setProperty("http.proxyPort", jettyPort + ""); + URL url = new URL(jettyURL); HttpURLConnection urlConnect = (HttpURLConnection) url .openConnection(); urlConnect.getInputStream(); assertTrue(urlConnect.usingProxy()); System.setProperty("http.proxyPort", "81"); - url = new URL("http://www.apache.org"); + url = new URL(jettyURL); urlConnect = (HttpURLConnection) url.openConnection(); urlConnect.getInputStream(); assertFalse(urlConnect.usingProxy()); Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/BufferedReaderTest.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/BufferedReaderTest.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/BufferedReaderTest.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/BufferedReaderTest.java Sun Apr 19 11:15:28 2009 @@ -26,9 +26,10 @@ import java.io.Reader; import java.io.StringReader; +import junit.framework.TestCase; import tests.support.Support_StringReader; -public class BufferedReaderTest extends junit.framework.TestCase { +public class BufferedReaderTest extends TestCase { BufferedReader br; @@ -490,9 +491,37 @@ return; } - } + public void test_reset_IOException() throws Exception { + int[] expected = new int[] { '1', '2', '3', '4', '5', '6', '7', '8', + '9', '0', -1 }; + br = new BufferedReader(new Support_StringReader("1234567890")); + br.mark(10); + for (int i = 0; i < 11; i++) { + assertEquals(expected[i], br.read()); + } + try { + br.reset(); + fail("should throw IOException"); + } catch (IOException e) { + // Expected + } + for (int i = 0; i < 11; i++) { + assertEquals(-1, br.read()); + } + + br = new BufferedReader(new Support_StringReader("1234567890")); + br.mark(10); + for (int i = 0; i < 10; i++) { + assertEquals(expected[i], br.read()); + } + br.reset(); + for (int i = 0; i < 11; i++) { + assertEquals(expected[i], br.read()); + } + } + /** * @tests java.io.BufferedReader#skip(long) */ Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileInputStreamTest.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileInputStreamTest.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileInputStreamTest.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileInputStreamTest.java Sun Apr 19 11:15:28 2009 @@ -152,6 +152,7 @@ // Expected } finally { in.close(); + file.delete(); } } @@ -363,6 +364,40 @@ } } + public void test_getChannel() throws Exception { + FileInputStream fis = new FileInputStream(fileName); + assertEquals(0, fis.getChannel().position()); + int r; + int count = 1; + while((r = fis.read()) != -1) { + assertEquals(count++, fis.getChannel().position()); + } + fis.close(); + + try { + fis.getChannel().position(); + fail("should throw ClosedChannelException"); + } catch(java.nio.channels.ClosedChannelException e){ + // Expected + } + + fis = new FileInputStream(fileName); + assertEquals(0, fis.getChannel().position()); + byte[] bs = new byte[10]; + r = fis.read(bs); + assertEquals(10, fis.getChannel().position()); + fis.close(); + + fis = new FileInputStream(fileName); + assertEquals(0, fis.getChannel().position()); + bs = new byte[10]; + fis.skip(100); + assertEquals(100, fis.getChannel().position()); + r = fis.read(bs); + assertEquals(110, fis.getChannel().position()); + fis.close(); + } + /** * Sets up the fixture, for example, open a network connection. This method * is called before a test is executed. Modified: harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileOutputStreamTest.java URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileOutputStreamTest.java?rev=766448&r1=766447&r2=766448&view=diff ============================================================================== --- harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileOutputStreamTest.java (original) +++ harmony/enhanced/classlib/branches/java6/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/io/FileOutputStreamTest.java Sun Apr 19 11:15:28 2009 @@ -39,6 +39,8 @@ public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_java_io_DataInputStream\nTest_java_io_File\nTest_java_io_FileDescriptor\nTest_java_io_FileInputStream\nTest_java_io_FileNotFoundException\nTest_FileOutputStream\nTest_java_io_FilterInputStream\nTest_java_io_FilterOutputStream\nTest_java_io_InputStream\nTest_java_io_IOException\nTest_java_io_OutputStream\nTest_java_io_PrintStream\nTest_java_io_RandomAccessFile\nTest_java_io_SyncFailedException\nTest_java_lang_AbstractMethodError\nTest_java_lang_ArithmeticException\nTest_java_lang_ArrayIndexOutOfBoundsException\nTest_java_lang_ArrayStoreException\nTest_java_lang_Boolean\nTest_java_lang_Byte\nTest_java_lang_Character\nTest_java_lang_Class\nTest_java_lang_ClassCastException\nTest_java_lang_ClassCircularityError\nTest_java_lang_ClassFormatError\nTest_java_lang_ClassLoader\nTest_java_lang_Cl assNotFoundException\nTest_java_lang_CloneNotSupportedException\nTest_java_lang_Double\nTest_java_lang_Error\nTest_java_lang_Exception\nTest_java_lang_ExceptionInInitializerError\nTest_java_lang_Float\nTest_java_lang_IllegalAccessError\nTest_java_lang_IllegalAccessException\nTest_java_lang_IllegalArgumentException\nTest_java_lang_IllegalMonitorStateException\nTest_java_lang_IllegalThreadStateException\nTest_java_lang_IncompatibleClassChangeError\nTest_java_lang_IndexOutOfBoundsException\nTest_java_lang_InstantiationError\nTest_java_lang_InstantiationException\nTest_java_lang_Integer\nTest_java_lang_InternalError\nTest_java_lang_InterruptedException\nTest_java_lang_LinkageError\nTest_java_lang_Long\nTest_java_lang_Math\nTest_java_lang_NegativeArraySizeException\nTest_java_lang_NoClassDefFoundError\nTest_java_lang_NoSuchFieldError\nTest_java_lang_NoSuchMethodError\nTest_java_lang_NullPointerException\nTest_java_lang_Number\nTest_java_lang_NumberFormatException\nTest_java_lang_ Object\nTest_java_lang_OutOfMemoryError\nTest_java_lang_RuntimeException\nTest_java_lang_SecurityManager\nTest_java_lang_Short\nTest_java_lang_StackOverflowError\nTest_java_lang_String\nTest_java_lang_StringBuffer\nTest_java_lang_StringIndexOutOfBoundsException\nTest_java_lang_System\nTest_java_lang_Thread\nTest_java_lang_ThreadDeath\nTest_java_lang_ThreadGroup\nTest_java_lang_Throwable\nTest_java_lang_UnknownError\nTest_java_lang_UnsatisfiedLinkError\nTest_java_lang_VerifyError\nTest_java_lang_VirtualMachineError\nTest_java_lang_vm_Image\nTest_java_lang_vm_MemorySegment\nTest_java_lang_vm_ROMStoreException\nTest_java_lang_vm_VM\nTest_java_lang_Void\nTest_java_net_BindException\nTest_java_net_ConnectException\nTest_java_net_DatagramPacket\nTest_java_net_DatagramSocket\nTest_java_net_DatagramSocketImpl\nTest_java_net_InetAddress\nTest_java_net_NoRouteToHostException\nTest_java_net_PlainDatagramSocketImpl\nTest_java_net_PlainSocketImpl\nTest_java_net_Socket\nTest_java_net_Sock etException\nTest_java_net_SocketImpl\nTest_java_net_SocketInputStream\nTest_java_net_SocketOutputStream\nTest_java_net_UnknownHostException\nTest_java_util_ArrayEnumerator\nTest_java_util_Date\nTest_java_util_EventObject\nTest_java_util_HashEnumerator\nTest_java_util_Hashtable\nTest_java_util_Properties\nTest_java_util_ResourceBundle\nTest_java_util_tm\nTest_java_util_Vector\n"; + byte[] bytes; + /** * @tests java.io.FileOutputStream#FileOutputStream(java.io.File) */ @@ -157,6 +159,9 @@ fail("Should throw NullPointerException"); } catch (NullPointerException e) { // Expected + } finally { + out.close(); + file.delete(); } } @@ -234,17 +239,118 @@ File tmpfile = File.createTempFile("FileOutputStream", "tmp"); tmpfile.deleteOnExit(); FileOutputStream fos = new FileOutputStream(tmpfile); - byte[] b = new byte[10]; - for (int i = 0; i < b.length; i++) { - b[i] = (byte) i; - } - fos.write(b); + fos.write(bytes); fos.flush(); fos.close(); FileOutputStream f = new FileOutputStream(tmpfile, true); assertEquals(10, f.getChannel().position()); } + public void test_getChannel_Append() throws IOException { + File tmpfile = File.createTempFile("FileOutputStream", "tmp"); + tmpfile.deleteOnExit(); + FileOutputStream fos = new FileOutputStream(tmpfile, true); + assertEquals(0, fos.getChannel().position()); + fos.write(bytes); + assertEquals(10, fos.getChannel().position()); + fos.write(bytes); + assertEquals(20, fos.getChannel().position()); + fos.write(bytes); + assertEquals(30, fos.getChannel().position()); + fos.close(); + + try { + fos.getChannel().position(); + fail("should throw ClosedChannelException"); + } catch (java.nio.channels.ClosedChannelException e){ + // Expected + } + } + + public void test_getChannel_UnAppend() throws IOException { + File tmpfile = File.createTempFile("FileOutputStream", "tmp"); + tmpfile.deleteOnExit(); + FileOutputStream fos = new FileOutputStream(tmpfile, false); + assertEquals(0, fos.getChannel().position()); + fos.write(bytes); + assertEquals(10, fos.getChannel().position()); + fos.write(bytes); + assertEquals(20, fos.getChannel().position()); + fos.write(bytes); + assertEquals(30, fos.getChannel().position()); + fos.close(); + + try { + fos.getChannel().position(); + fail("should throw ClosedChannelException"); + } catch (java.nio.channels.ClosedChannelException e){ + // Expected + } + } + + public void test_getChannel_Unappend_Unappend() throws IOException { + File tmpfile = File.createTempFile("FileOutputStream", "tmp"); + tmpfile.deleteOnExit(); + FileOutputStream fos = new FileOutputStream(tmpfile, false); + assertEquals(0, fos.getChannel().position()); + fos.write(bytes); + assertEquals(10, fos.getChannel().position()); + fos.close(); + + fos = new FileOutputStream(tmpfile, false); + assertEquals(0, fos.getChannel().position()); + fos.close(); + } + + public void test_getChannel_Unappend_Append() throws IOException { + File tmpfile = File.createTempFile("FileOutputStream", "tmp"); + tmpfile.deleteOnExit(); + FileOutputStream fos = new FileOutputStream(tmpfile, false); + assertEquals(0, fos.getChannel().position()); + fos.write(bytes); + assertEquals(10, fos.getChannel().position()); + fos.close(); + + fos = new FileOutputStream(tmpfile, true); + assertEquals(10, fos.getChannel().position()); + fos.close(); + } + + public void test_getChannel_Append_Unappend() throws IOException { + File tmpfile = File.createTempFile("FileOutputStream", "tmp"); + tmpfile.deleteOnExit(); + FileOutputStream fos = new FileOutputStream(tmpfile, true); + assertEquals(0, fos.getChannel().position()); + fos.write(bytes); + assertEquals(10, fos.getChannel().position()); + fos.close(); + + fos = new FileOutputStream(tmpfile, false); + assertEquals(0, fos.getChannel().position()); + fos.close(); + } + + public void test_getChanne_Append_Append() throws IOException { + File tmpfile = File.createTempFile("FileOutputStream", "tmp"); + tmpfile.deleteOnExit(); + FileOutputStream fos = new FileOutputStream(tmpfile, true); + assertEquals(0, fos.getChannel().position()); + fos.write(bytes); + assertEquals(10, fos.getChannel().position()); + fos.close(); + + fos = new FileOutputStream(tmpfile, true); + assertEquals(10, fos.getChannel().position()); + fos.close(); + } + + protected void setUp() { + bytes = new byte[10]; + for (int i = 0; i < bytes.length; i++) { + bytes[i] = (byte) i; + } + } + /** * Tears down the fixture, for example, close a network connection. This * method is called after a test is executed.