.springBeans definition throws NullPointer if BaseDir does not exist
--------------------------------------------------------------------

                 Key: MECLIPSE-427
                 URL: http://jira.codehaus.org/browse/MECLIPSE-427
             Project: Maven 2.x Eclipse Plugin
          Issue Type: Bug
          Components: MyEclipse support
    Affects Versions: 2.5.1, 2.5
            Reporter: Joe Freeman


This is related to the fix submitted for MECLIPSE-359
We have an application with 40 eclipse projects in it.  About  half of them 
have spring beans and 1/2 don't. The top level pom describes how the eclipse 
plugin should function and includes the Spring configuration component for the 
myeclipse target.  A null pointer is thrown when running eclipse:myeclipse when 
the base dir doesn't exist, in our case in one of the projects that doesn't 
have any spring components.  Our pom.xml fragment looks like

                    <spring>
                        <version>2.0</version>
                        <file-pattern>*.xml</file-pattern>
                        <basedir>src/main/resources/conf</basedir>
                    </spring>

The exception stack trace looks like

java.lang.NullPointerException
        at 
org.apache.maven.plugin.eclipse.writers.myeclipse.MyEclipseSpringBeansWriter.getConfigurationFilesList(MyEclipseSpringBeansWriter.java:142)
        at 
org.apache.maven.plugin.eclipse.writers.myeclipse.MyEclipseSpringBeansWriter.write(MyEclipseSpringBeansWriter.java:93)

The following code block with the problem throws NullPointer when 
directory.listFiles() returns a null into subdirs. Wrap the for() loop in a 
nullcheck

       try
        {
            File directory = new File( basedir );

            File[] subdirs = directory.listFiles( new FileFilter()
            {
                public boolean accept( File pathname )
                {
                    return pathname.isDirectory();
                }
            } );

            for ( int i = 0; i < subdirs.length; i++ )
            {
                configFiles.addAll( getConfigurationFilesList( 
subdirs[i].getPath(), pattern ) );
            }

            configFiles.addAll( FileUtils.getFileNames( directory, pattern, 
null, true ) );
        }


Testing:

Take one of the test cases and remove the directory that is pointed to by the 
basedir attribute.




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to