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?

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]

Reply via email to