[ http://jira.codehaus.org/browse/MECLIPSE-427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joe Freeman updated MECLIPSE-427: --------------------------------- Attachment: testcase-project-meclipse-MECLIPSE-427.zip This contains the complete test case. I couldn't attach the whole test case as part of the patch file because the svn patch tool won't include empty files in the patch. The test case includes empty placeholder files like the other myeclipse test cases. > .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: MECLIPSE-427.patch, > testcase-project-meclipse-MECLIPSE-427.zip > > > 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