[ http://jira.codehaus.org/browse/MECLIPSE-427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joe Freeman updated MECLIPSE-427: --------------------------------- Attachment: MyEclipseSpringBeansWriter.java > .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, 2.5.1 > Reporter: Joe Freeman > Attachments: MyEclipseSpringBeansWriter.java, > MyEclipseSpringBeansWriter.java > > > 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