how about using findbugs (http://findbugs.sourceforge.net/), a static analysis tool.

I just tried this now and found some issues for e.x

 ExpressionEnumerator.java line 135
     else if ( node instanceof ApproximateNode )
     {
list = enumEquality( ( EqualityNode ) node ); // line 135 This cast will always throw a ClassCastException
     }

A possible return of null value in the below code

public final boolean isValid() throws NamingException
   {
       if ( valid != null )
       {
           return valid;
       }

       return valid;
   }

and a possible NPE at line 963 of RdnParser.java (no null check while calling this method)

   rdn.setUpName( StringTools.utf8ToString( dn, start, pos.end - start ) );

There might be some false positives like the one given bellow but its good in catching many valid cases like above.

Example False Positive -

It shows a warning for the below code at line 140 in HostAddresses.java saying possible ClassCastException
but the variable addresses is of type List holding HostAddress objects
HostAddress[] thisHostAddresses = ( HostAddress[] ) addresses.toArray();

-Kiran Ayyagari

Emmanuel Lecharny wrote:
Icky Dude wrote:
Hi,

Is there any way that the following code wouldn't produce a ClassCastException?

SearchResult result = new ServerSearchResult( "", null, ( Attributes )
getRootDSE( null ).clone(), false );
No. You will get a plain old ClassCastException !

Good catch. I will fix this bug.

FYI, this went through the radar when I modified the getRootDSE method. This is why casts are wrong, too.

Last, not least, we need a test case to catch such issues ...

Reply via email to