Mercurial > hg > release > icedtea-web-1.2
changeset 249:03f8f75457dc
Check if cache directory is writable from itweb-settings
author | Andrew Su <asu@redhat.com> |
---|---|
date | Mon, 30 May 2011 14:03:23 -0400 |
parents | 4393a8c5101a |
children | af1ed34483d1 |
files | ChangeLog netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java |
diffstat | 2 files changed, 27 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon May 30 13:50:35 2011 -0400 +++ b/ChangeLog Mon May 30 14:03:23 2011 -0400 @@ -1,3 +1,9 @@ +2011-05-30 Andrew Su <asu@redhat.com> + + * netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java: + (addComponent): Add check to see if specified cache directory is + writable. + 2011-05-30 Andrew Su <asu@redhat.com> * netx/net/sourceforge/jnlp/cache/ResourceTracker.java:
--- a/netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java Mon May 30 13:50:35 2011 -0400 +++ b/netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java Mon May 30 14:03:23 2011 -0400 @@ -26,6 +26,7 @@ import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.io.File; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -33,6 +34,7 @@ import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JLabel; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.JSpinner; @@ -109,10 +111,27 @@ public void actionPerformed(ActionEvent e) { JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + fileChooser.setFileHidingEnabled(false); if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { + // Check if we have permission to write to that location. String result = fileChooser.getSelectedFile().getAbsolutePath(); - location.setText(result); - config.setProperty(properties[1], result); + File dirLocation = new File(result); + boolean canWrite = dirLocation.canWrite(); + while (!canWrite && dirLocation != null){ // File does not exist, or no permission. + + if (dirLocation.exists()) { + JOptionPane.showMessageDialog(null, "No permission to write to this location."); + return; + } + + dirLocation = dirLocation.getParentFile(); + canWrite = dirLocation.canWrite(); + } + + if (canWrite) { + location.setText(result); + config.setProperty(properties[1], result); + } } } });