[ https://issues.apache.org/jira/browse/FELIX-1235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12720580#action_12720580 ]
Filippo Diotalevi commented on FELIX-1235: ------------------------------------------ Do you get an exception if you start FileInstall watching a non-existent directory? I don't have Win machine to check, but with Linux/MacOS that's not the case; the directory is created at startup. Anyway, I spot a (quite unlikely to happen) bug. If you start FileInstall watching a "foo" directory, but "foo" is actually a file, you get into a pretty bad situation: Welcome to Felix. ================= felix.fileinstall.poll (ms) 2000 felix.fileinstall.dir /opt/myprojects/felix-1.8.0/./load felix.fileinstall.debug -1 felix.fileinstall.bundles.new.start true In main loop, we have serious trouble: java.lang.NullPointerException In main loop, we have serious trouble: java.lang.NullPointerException In main loop, we have serious trouble: java.lang.NullPointerException ...... I'll submit a patch for it, but I need to check it does not interfere with FELIX-1228 > NullPointerException due to misconfigured watched dir > ----------------------------------------------------- > > Key: FELIX-1235 > URL: https://issues.apache.org/jira/browse/FELIX-1235 > Project: Felix > Issue Type: Bug > Components: File Install > Affects Versions: fileinstall-1.0.0 > Environment: Windows [Vista|XP] > Reporter: Guido Spadotto > Fix For: fileinstall-1.2.0 > > Original Estimate: 1.5h > Remaining Estimate: 1.5h > > The "traverse" method of the DirectoryWatcher class will raise a NPE if the > provided "jardir" parameter does not point to a directory. > The for loop inside that method should read: > for (int i = 0; (list!=null) && (i < list.length); i++){...} > To avoid hiding the configuration problem, the constructor of the > DirectoryWatcher class could be amended like this: > ... > this.watchedDirectory = new File(dir); > > if (!this.watchedDirectory.exists()){ > if (!this.watchedDirectory.mkdirs()) { throw new > RuntimeException("Failed to create directory " + > this.watchedDirectory.getAbsolutePath());} > }else{ > if (this.watchedDirectory.isDirectory()){ > log(this.watchedDirectory.getAbsolutePath() + " already > existing", null); > }else{ > log(this.watchedDirectory.getAbsolutePath() + " exists, but > is not a directory", null); > throw new > RuntimeException(this.watchedDirectory.getAbsolutePath()+" exists, but is not > a directory"); > } > } > Object value = properties.get(START_NEW_BUNDLES); > ... -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.