Setting file permissions returns FALSE always
I found the solution and will answer my own question:
When setting permissions on file or directory, you first MUST actually create the directory or write the file and only then set the permissions.
So, what I was doing at start was wrong:
File dir = new File(path);
boolean rc1 = dir.setExecutable(true, false);
While actually need to:
File dir = new File(path);
dir.mkdirs();
boolean rc1 = dir.setExecutable(true, false);
boolean rc2 = dir.setReadable(true, false);
boolean rc3 = dir.setWritable(true, false);
or
File f = new File(uploadedFileLocation);
ImageIO.write(image, "jpg", f);
boolean rc1 = f.setExecutable(true, false);
boolean rc2 = f.setReadable(true, false);
boolean rc3 = f.setWritable(true, false);
Then it will work :)
from javadocs
setExecutable(): Returns
true if and only if the operation succeeded. The operation will fail if the user does not have permission to change the access permissions of this abstract pathname. If executable is false and the underlying file system does not implement an execute permission, then the operation will fail.
Also,
File(String pathname) Creates a new File instance by converting the given pathname string into an abstract pathname. It creates a file instance. It does not create a new file.
To create a new file
File f;
f=new File("myfile.txt");
if(!f.exists()){
f.createNewFile();
System.out.println("New file \"myfile.txt\" has been created
to the current directory");
}