You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Filippo Diotalevi (JIRA)" <ji...@apache.org> on 2009/06/17 11:26:07 UTC
[jira] Commented: (FELIX-1235) NullPointerException due to
misconfigured watched dir
[ 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.