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.