Alex Orlov wrote:
> Hi folks,
>
> Sorry to getting this thread back - hopefully this message is relevant
> to it. We've written a tool that runs all J2SE API methods passing
> null, empty strings, 0, -1 etc. as parameters. It has discovered 163
> inconsistency of Harmony API implementation with BEA JRockit 1.5.0.
> You can find them attached ("------------" means JRE doesn't throw any
> exception).
>
> I haven't investigated all of them yet. However apparently we have
> dozens of real inconsistencies that might be fixed according to
> Harmony guidelines on exception compatibility. We're going to check
> the inconsistencies one by one. Do you think it makes sense to open
> one JIRA issue for all of them and put it there?
Probably makes sense to group them into either one type (where there are
a few issues for a given type) or one module rather than all together,
since I'm assuming that would be too big when you have included the
proposed fix and test case (hint, hint) ;-)
Regards,
Tim
> Thanks,
> Alex Orlov.
> Intel Middleware products Division
>
> On 3/24/06, Geir Magnusson Jr <[EMAIL PROTECTED]> wrote:
>>
>> George Harley wrote:
>>> Mark Hindess wrote:
>>>> As you might have noticed, if you are reading the JIRA messages on the
>>>> commits list, I've been looking at the error case behaviour of
>>>> constructors. (In fact, I've written a Perl script to generate a
>>>> program to creates several thousand test cases from the constructor
>>>> specification in a japi file. I'll probably extend it to test other
>>>> static methods when I have a spare minute.)
>>>>
>>>> I'm wondering how far we should try to match the behaviour of the
>>>> reference implementation. For instance, I've been submitting fixes
>>>> for a number of cases of incorrect exceptions being thrown and I think
>>>> they are worth fixing, but then I came across this one:
>>>>
>>>> j.io.RandomAccessFile((j.l.String)null,""): # i.e. null filename,
>>>> empty mode
>>>>
>>>> the RI throws j.l.IllegalArgumentException because it checks the mode
>>>> first but we throw a NullPointerException because we check the file
>>>> first.
>>>>
>>>> Does it matter? Should we be matching behaviour?
>>>>
>>> Wasn't this the topic for a fairly recent discussion on the list ? If I
>>> can recall correctly, the consensus seemed to be YES it matters and YES
>>> we should be matching behaviour.
>> Yes - if the spec doesn't say anything, and the RI isn't obviously
>> broken or stupid, then follow the RI.
>>
>> If the spec does say something, we need to make a decision - follow the
>> spec or follow the RI (and log it...)
>>
>> geir
>>
>>> And if that wasn't the consensus then it should have been ;-)
>>>
>>> Best regards,
>>> George
>>>
>>>> Regards,
>>>> Mark.
>>>>
>>>> --
>>>> Mark Hindess <[EMAIL PROTECTED]>
>>>> IBM Java Technology Centre, UK.
>>>>
>>>>
>>>
>>
>> ------------------------------------------------------------------------
>>
>> METHOD Harmony BEA
>>
>> java.beans.beancontext.BeanContextServicesSupport.getCurrentServiceSelectors(null)
>> java.lang.NullPointerException --------------------------
>> java.beans.beancontext.BeanContextServicesSupport.hasService(null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.beancontext.BeanContextServicesSupport.removeBeanContextServicesListener(null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.beancontext.BeanContextServicesSupport.serviceAvailable(null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.beancontext.BeanContextServicesSupport.serviceRevoked(null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.beancontext.BeanContextSupport.addAll(null)
>> java.lang.NullPointerException
>> java.lang.UnsupportedOperationException
>> java.beans.beancontext.BeanContextSupport.getResource("", null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.beancontext.BeanContextSupport.getResource(null, null)
>> java.lang.IllegalArgumentException java.lang.NullPointerException
>> java.beans.beancontext.BeanContextSupport.getResourceAsStream("", null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.beancontext.BeanContextSupport.getResourceAsStream(null, null)
>> java.lang.IllegalArgumentException java.lang.NullPointerException
>> java.beans.beancontext.BeanContextSupport.vetoableChange(null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.Beans.isInstanceOf(java.lang.Object, null)
>> java.lang.NullPointerException --------------------------
>> java.beans.Encoder.getPersistenceDelegate(null)
>> java.lang.NullPointerException --------------------------
>> java.beans.Encoder.setPersistenceDelegate(null, null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.Encoder.writeExpression(null) --------------------------
>> java.lang.NullPointerException
>> java.beans.FeatureDescriptor.setValue("", null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.FeatureDescriptor.setValue(null, java.lang.Object)
>> -------------------------- java.lang.NullPointerException
>> java.beans.FeatureDescriptor.setValue(null, null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.PropertyEditorManager.findEditor(null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.PropertyEditorManager.registerEditor(null, null)
>> -------------------------- java.lang.NullPointerException
>> java.beans.SimpleBeanInfo.loadImage("") java.lang.NullPointerException
>> --------------------------
>> java.beans.SimpleBeanInfo.loadImage(null) java.lang.NullPointerException
>> --------------------------
>> java.io.ByteArrayOutputStream.toString("")
>> java.nio.charset.IllegalCharsetNameException
>> java.io.UnsupportedEncodingException
>> java.io.ByteArrayOutputStream.write([B, 0, -1)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.ByteArrayOutputStream.write([B, -1, 0)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.ByteArrayOutputStream.write([B, -1, -1)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.ByteArrayOutputStream.write(null, -1, 0)
>> java.lang.NullPointerException java.lang.IndexOutOfBoundsException
>> java.io.ByteArrayOutputStream.write(null, -1, -1)
>> java.lang.NullPointerException java.lang.IndexOutOfBoundsException
>> java.io.CharArrayWriter.write([C, 0, -1)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.CharArrayWriter.write([C, -1, 0)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.CharArrayWriter.write([C, -1, -1)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.CharArrayWriter.write(null, -1, 0)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.CharArrayWriter.write(null, -1, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.PipedInputStream.read([B, 0, -1)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.PipedInputStream.read([B, -1, 0)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.PipedInputStream.read([B, -1, -1)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.PipedOutputStream.write([B, 0, 0) --------------------------
>> java.io.IOException
>> java.io.PipedOutputStream.write([B, 0, -1)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedOutputStream.write([B, -1, 0)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedOutputStream.write([B, -1, -1)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedOutputStream.write(null, 0, 0) java.lang.NullPointerException
>> java.io.IOException
>> java.io.PipedOutputStream.write(null, 0, -1)
>> java.lang.NullPointerException java.io.IOException
>> java.io.PipedOutputStream.write(null, -1, 0)
>> java.lang.NullPointerException java.io.IOException
>> java.io.PipedOutputStream.write(null, -1, -1)
>> java.lang.NullPointerException java.io.IOException
>> java.io.PipedReader.read([C, 0, -1)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedReader.read([C, -1, 0)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedReader.read([C, -1, -1)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedReader.read(null, 0, 0) java.lang.NullPointerException
>> java.io.IOException
>> java.io.PipedReader.read(null, 0, -1) java.lang.NullPointerException
>> java.io.IOException
>> java.io.PipedReader.read(null, -1, 0)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedReader.read(null, -1, -1)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedWriter.write([C, 0, -1)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedWriter.write([C, -1, 0)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedWriter.write([C, -1, -1)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedWriter.write(null, 0, 0) java.lang.NullPointerException
>> java.io.IOException
>> java.io.PipedWriter.write(null, 0, -1) java.lang.NullPointerException
>> java.io.IOException
>> java.io.PipedWriter.write(null, -1, 0)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.PipedWriter.write(null, -1, -1)
>> java.lang.ArrayIndexOutOfBoundsException java.io.IOException
>> java.io.StringWriter.write([C, 0, -1)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.StringWriter.write([C, -1, 0)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.io.StringWriter.write([C, -1, -1)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.lang.SecurityManager.checkConnect("", -1)
>> java.security.AccessControlException --------------------------
>> java.lang.SecurityManager.checkListen(0)
>> java.security.AccessControlException --------------------------
>> java.lang.String.getBytes("")
>> java.nio.charset.IllegalCharsetNameException
>> java.io.UnsupportedEncodingException
>> java.lang.String.getBytes(0, 0, null, 0) java.lang.NullPointerException
>> --------------------------
>> java.lang.String.getBytes(0, 0, null, -1) java.lang.NullPointerException
>> --------------------------
>> java.lang.String.getBytes(0, -1, null, 0) java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.String.getBytes(0, -1, null, -1) java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.String.getBytes(-1, 0, null, 0) java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.String.getBytes(-1, 0, null, -1) java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.String.getBytes(-1, -1, null, 0) java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.String.getBytes(-1, -1, null, -1) java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.String.replaceAll("", null) --------------------------
>> java.lang.NullPointerException
>> java.lang.String.replaceFirst("", null) --------------------------
>> java.lang.NullPointerException
>> java.lang.String.toLowerCase(null) --------------------------
>> java.lang.NullPointerException
>> java.lang.String.valueOf(null) --------------------------
>> java.lang.NullPointerException
>> java.lang.StringBuffer.append([C, 0, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.StringBuffer.append([C, -1, 0)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.StringBuffer.append([C, -1, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.StringBuffer.append(null) --------------------------
>> java.lang.NullPointerException
>> java.lang.StringBuffer.append(null, 0, 0) --------------------------
>> java.lang.NullPointerException
>> java.lang.StringBuffer.append(null, 0, -1)
>> java.lang.IndexOutOfBoundsException java.lang.NullPointerException
>> java.lang.StringBuffer.append(null, -1, 0)
>> java.lang.IndexOutOfBoundsException java.lang.NullPointerException
>> java.lang.StringBuffer.append(null, -1, -1)
>> java.lang.IndexOutOfBoundsException java.lang.NullPointerException
>> java.lang.StringBuffer.appendCodePoint(-1) --------------------------
>> java.lang.IllegalArgumentException
>> java.lang.StringBuffer.getChars(0, 0, [C, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.StringBuffer.getChars(0, -1, null, 0)
>> java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.StringBuffer.getChars(0, -1, null, -1)
>> java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.StringBuffer.getChars(-1, 0, null, 0)
>> java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.StringBuffer.getChars(-1, 0, null, -1)
>> java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.StringBuffer.getChars(-1, -1, null, 0)
>> java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.StringBuffer.getChars(-1, -1, null, -1)
>> java.lang.NullPointerException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.StringBuffer.insert(-1, )
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.StringBuffer.offsetByCodePoints(0, 0)
>> org.apache.harmony.luni.util.NotYetImplementedException
>> --------------------------
>> java.lang.StringBuffer.offsetByCodePoints(0, -1)
>> org.apache.harmony.luni.util.NotYetImplementedException
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringBuffer.offsetByCodePoints(-1, 0)
>> org.apache.harmony.luni.util.NotYetImplementedException
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringBuffer.offsetByCodePoints(-1, -1)
>> org.apache.harmony.luni.util.NotYetImplementedException
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringBuffer.setLength(-1)
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.StringBuilder.append([C, 0, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.StringBuilder.append([C, -1, 0)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.StringBuilder.append([C, -1, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.StringBuilder.append(null, 0, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringBuilder.append(null, -1, 0)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringBuilder.append(null, -1, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringBuilder.appendCodePoint(0)
>> org.apache.harmony.luni.util.NotYetImplementedException
>> --------------------------
>> java.lang.StringBuilder.appendCodePoint(-1)
>> org.apache.harmony.luni.util.NotYetImplementedException
>> java.lang.IllegalArgumentException
>> java.lang.StringBuilder.insert(0, null, 0, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringBuilder.insert(0, null, -1, 0)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringBuilder.insert(0, null, -1, -1)
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.lang.StringBuilder.insert(-1, )
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.net.DatagramSocket.bind(null) java.net.BindException
>> java.net.SocketException
>> java.net.MulticastSocket.setInterface(null) java.lang.NullPointerException
>> java.net.SocketException
>> java.net.URLDecoder.decode("", "") --------------------------
>> java.io.UnsupportedEncodingException
>> java.security.cert.X509CertSelector.addPathToName(0, [B)
>> org.apache.harmony.security.asn1.ASN1Exception java.io.IOException
>> java.security.cert.X509CertSelector.addPathToName(-1, null)
>> java.io.IOException java.lang.NullPointerException
>> java.security.cert.X509CertSelector.addSubjectAlternativeName(0, [B)
>> org.apache.harmony.security.asn1.ASN1Exception java.io.IOException
>> java.security.cert.X509CertSelector.addSubjectAlternativeName(-1, null)
>> java.io.IOException java.lang.NullPointerException
>> java.security.cert.X509CertSelector.setNameConstraints([B)
>> org.apache.harmony.security.asn1.ASN1Exception java.io.IOException
>> java.security.cert.X509CertSelector.setSubjectPublicKey([B)
>> org.apache.harmony.security.asn1.ASN1Exception java.io.IOException
>> java.security.cert.X509CertSelector.setSubjectPublicKeyAlgID("")
>> java.lang.StringIndexOutOfBoundsException
>> java.lang.NumberFormatException
>> java.security.cert.X509CRLSelector.addIssuer(null)
>> -------------------------- java.lang.NullPointerException
>> java.security.cert.X509CRLSelector.addIssuerName([B)
>> java.lang.IllegalArgumentException java.io.IOException
>> java.security.cert.X509CRLSelector.addIssuerName(null)
>> java.lang.IllegalArgumentException java.lang.NullPointerException
>> java.security.Permissions.implies(null) --------------------------
>> java.lang.NullPointerException
>> java.security.SecureRandom.generateSeed(-1) --------------------------
>> java.lang.NegativeArraySizeException
>> java.security.SecureRandom.getSeed(-1) --------------------------
>> java.lang.NegativeArraySizeException
>> java.text.DateFormatSymbols.setLocalPatternChars(null)
>> -------------------------- java.lang.NullPointerException
>> java.text.DecimalFormat.formatToCharacterIterator(null)
>> java.lang.IllegalArgumentException java.lang.NullPointerException
>> java.text.SimpleDateFormat.formatToCharacterIterator(null)
>> java.lang.IllegalArgumentException java.lang.NullPointerException
>> java.util.ArrayList.addAll(-1, null) java.lang.NullPointerException
>> java.lang.IndexOutOfBoundsException
>> java.util.ArrayList.get(-1) java.lang.IndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.util.ArrayList.remove(-1) java.lang.IndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.util.ArrayList.set(-1, java.lang.Object)
>> java.lang.IndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.util.ArrayList.set(-1, null) java.lang.IndexOutOfBoundsException
>> java.lang.ArrayIndexOutOfBoundsException
>> java.util.Date.parse(null) java.lang.NullPointerException
>> java.lang.IllegalArgumentException
>> java.util.jar.Attributes.putAll(null) java.lang.NullPointerException
>> java.lang.ClassCastException
>> java.util.LinkedList.addAll(-1, null) java.lang.NullPointerException
>> java.lang.IndexOutOfBoundsException
>> java.util.TreeMap.containsKey(java.lang.Object)
>> java.lang.ClassCastException --------------------------
>> java.util.TreeMap.get(java.lang.Object) java.lang.ClassCastException
>> --------------------------
>> java.util.TreeMap.put(java.lang.Object, java.lang.Object)
>> java.lang.ClassCastException --------------------------
>> java.util.TreeMap.put(java.lang.Object, null)
>> java.lang.ClassCastException --------------------------
>> java.util.TreeMap.remove(java.lang.Object) java.lang.ClassCastException
>> --------------------------
>> java.util.TreeSet.add(java.lang.Object) java.lang.ClassCastException
>> --------------------------
>> java.util.TreeSet.contains(java.lang.Object)
>> java.lang.ClassCastException --------------------------
>> java.util.TreeSet.remove(java.lang.Object) java.lang.ClassCastException
>> --------------------------
>> java.util.Vector.lastIndexOf(java.lang.Object, 0)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.util.Vector.lastIndexOf(null, 0)
>> java.lang.ArrayIndexOutOfBoundsException
>> java.lang.IndexOutOfBoundsException
>> java.util.zip.Inflater.inflate([B) java.util.zip.DataFormatException
>> --------------------------
>> java.util.zip.Inflater.inflate([B, 0, 0)
>> java.util.zip.DataFormatException --------------------------
>> javax.naming.InitialContext.composeName("", null)
>> javax.naming.InvalidNameException --------------------------
>> javax.naming.InitialContext.composeName(null, "")
>> javax.naming.InvalidNameException --------------------------
>> javax.naming.InitialContext.composeName(null, null)
>> javax.naming.InvalidNameException --------------------------
>> javax.naming.ldap.InitialLdapContext.extendedOperation(null)
>> javax.naming.NotContextException
>> javax.naming.NoInitialContextException
>> javax.naming.ldap.InitialLdapContext.newInstance([Ljavax.naming.ldap.Control;)
>> javax.naming.NotContextException
>> javax.naming.NoInitialContextException
>> javax.naming.ldap.InitialLdapContext.newInstance(null)
>> javax.naming.NotContextException
>> javax.naming.NoInitialContextException
>> javax.naming.ldap.InitialLdapContext.reconnect([Ljavax.naming.ldap.Control;)
>> javax.naming.NotContextException
>> javax.naming.NoInitialContextException
>> javax.naming.ldap.InitialLdapContext.reconnect(null)
>> javax.naming.NotContextException
>> javax.naming.NoInitialContextException
>> javax.naming.ldap.InitialLdapContext.setRequestControls([Ljavax.naming.ldap.Control;)
>> javax.naming.NotContextException
>> javax.naming.NoInitialContextException
>> javax.naming.ldap.InitialLdapContext.setRequestControls(null)
>> javax.naming.NotContextException
>> javax.naming.NoInitialContextException
>> javax.xml.transform.stream.StreamResult.setSystemId(null)
>> java.lang.NullPointerException --------------------------
>> javax.xml.transform.stream.StreamSource.setSystemId(null)
>> java.lang.NullPointerException --------------------------
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> ---------------------------------------------------------------------
>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
--
Tim Ellison ([EMAIL PROTECTED])
IBM Java technology centre, UK.
---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]