Author: imario
Date: Wed Dec 20 01:14:53 2006
New Revision: 488989

URL: http://svn.apache.org/viewvc?view=rev&rev=488989
Log:
VFS-104: throw exception if setting last modification time failed

Added:
    
jakarta/commons/proper/vfs/trunk/examples/src/main/java/org/apache/commons/vfs/example/ChangeLastModificationTime.java
   (with props)
Modified:
    
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
    
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
    
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DelegateFileObject.java
    
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/local/LocalFile.java
    
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileObject.java

Modified: 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java?view=diff&rev=488989&r1=488988&r2=488989
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
 Wed Dec 20 01:14:53 2006
@@ -248,11 +248,28 @@
         throw new 
FileSystemException("vfs.provider/get-last-modified-not-supported.error");
     }
 
+       /**
+        * Sets the last modified time of this file.  Is only called if
+        * [EMAIL PROTECTED] #doGetType} does not return [EMAIL PROTECTED] 
FileType#IMAGINARY}.
+        * <p/>
+        * This implementation throws an exception.
+        *
+        * @return false if it was not possible to change the time
+        */
+       protected boolean doSetLastModTime(final long modtime)
+               throws Exception
+       {
+               doSetLastModifiedTime(modtime);
+               return true;
+       }
+
     /**
      * Sets the last modified time of this file.  Is only called if
      * [EMAIL PROTECTED] #doGetType} does not return [EMAIL PROTECTED] 
FileType#IMAGINARY}.
      * <p/>
      * This implementation throws an exception.
+        *
+        * @deprecated use [EMAIL PROTECTED] #doSetLastModTime}
      */
     protected void doSetLastModifiedTime(final long modtime)
         throws Exception
@@ -978,7 +995,7 @@
     /**
      * Checks if this fileObject is the same file as <code>destFile</code> 
just with a different
      * name.<br />
-     * E.g. for case insensitive filesystems like windows. 
+     * E.g. for case insensitive filesystems like windows.
      */
     protected boolean isSameFile(FileObject destFile) throws 
FileSystemException
     {

Modified: 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java?view=diff&rev=488989&r1=488988&r2=488989
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
 Wed Dec 20 01:14:53 2006
@@ -186,8 +186,11 @@
         }
         try
         {
-            file.doSetLastModifiedTime(modTime);
-        }
+            if (!file.doSetLastModTime(modTime))
+                       {
+                               throw new 
FileSystemException("vfs.provider/set-last-modified.error", file);
+                       }
+               }
         catch (final Exception e)
         {
             throw new 
FileSystemException("vfs.provider/set-last-modified.error", file, e);

Modified: 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DelegateFileObject.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DelegateFileObject.java?view=diff&rev=488989&r1=488988&r2=488989
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DelegateFileObject.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DelegateFileObject.java
 Wed Dec 20 01:14:53 2006
@@ -268,11 +268,12 @@
     /**
      * Sets the last-modified time of this file.
      */
-    protected void doSetLastModifiedTime(final long modtime)
+    protected boolean doSetLastModTime(final long modtime)
         throws Exception
     {
         file.getContent().setLastModifiedTime(modtime);
-    }
+               return true;
+       }
 
     /**
      * Creates an input stream to read the file content from.

Modified: 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/local/LocalFile.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/local/LocalFile.java?view=diff&rev=488989&r1=488988&r2=488989
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/local/LocalFile.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/local/LocalFile.java
 Wed Dec 20 01:14:53 2006
@@ -192,10 +192,10 @@
     /**
      * Sets the last modified time of this file.
      */
-    protected void doSetLastModifiedTime(final long modtime)
+    protected boolean doSetLastModTime(final long modtime)
         throws FileSystemException
     {
-        file.setLastModified(modtime);
+        return file.setLastModified(modtime);
     }
 
     /**

Modified: 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileObject.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileObject.java?view=diff&rev=488989&r1=488988&r2=488989
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileObject.java
 (original)
+++ 
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/ram/RamFileObject.java
 Wed Dec 20 01:14:53 2006
@@ -63,7 +63,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.apache.commons.vfs.provider.AbstractFileObject#doGetType()
         */
        protected FileType doGetType() throws Exception
@@ -73,7 +73,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#doListChildren()
         */
        protected String[] doListChildren() throws Exception
@@ -83,7 +83,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#doGetContentSize()
         */
        protected long doGetContentSize() throws Exception
@@ -93,7 +93,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#doGetInputStream()
         */
        protected InputStream doGetInputStream() throws Exception
@@ -103,7 +103,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#doGetOutputStream(boolean)
         */
        protected OutputStream doGetOutputStream(boolean bAppend) throws 
Exception
@@ -117,7 +117,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.apache.commons.vfs.provider.AbstractFileObject#doDelete()
         */
        protected void doDelete() throws Exception
@@ -127,7 +127,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#doGetLastModifiedTime()
         */
        protected long doGetLastModifiedTime() throws Exception
@@ -137,17 +137,18 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#doSetLastModifiedTime(long)
         */
-       protected void doSetLastModifiedTime(long modtime) throws Exception
+       protected boolean doSetLastModTime(long modtime) throws Exception
        {
                data.setLastModified(modtime);
+               return true;
        }
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#doCreateFolder()
         */
        protected void doCreateFolder() throws Exception
@@ -158,7 +159,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#doRename(org.apache.commons.vfs.FileObject)
         */
        protected void doRename(FileObject newfile) throws Exception
@@ -168,7 +169,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#doGetRandomAccessContent(org.apache.commons.vfs.util.RandomAccessMode)
         */
        protected RandomAccessContent doGetRandomAccessContent(RandomAccessMode 
mode)
@@ -179,7 +180,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.apache.commons.vfs.provider.AbstractFileObject#doAttach()
         */
        protected void doAttach() throws Exception
@@ -206,7 +207,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see 
org.apache.commons.vfs.provider.AbstractFileObject#injectType(org.apache.commons.vfs.FileType)
         */
        protected void injectType(FileType fileType)
@@ -217,7 +218,7 @@
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.apache.commons.vfs.provider.AbstractFileObject#endOutput()
         */
        protected void endOutput() throws Exception

Added: 
jakarta/commons/proper/vfs/trunk/examples/src/main/java/org/apache/commons/vfs/example/ChangeLastModificationTime.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/examples/src/main/java/org/apache/commons/vfs/example/ChangeLastModificationTime.java?view=auto&rev=488989
==============================================================================
--- 
jakarta/commons/proper/vfs/trunk/examples/src/main/java/org/apache/commons/vfs/example/ChangeLastModificationTime.java
 (added)
+++ 
jakarta/commons/proper/vfs/trunk/examples/src/main/java/org/apache/commons/vfs/example/ChangeLastModificationTime.java
 Wed Dec 20 01:14:53 2006
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.vfs.example;
+
+import org.apache.commons.vfs.FileSystemManager;
+import org.apache.commons.vfs.VFS;
+import org.apache.commons.vfs.FileObject;
+import org.apache.commons.vfs.FileType;
+import org.apache.commons.vfs.FileSystemException;
+
+import java.text.DateFormat;
+import java.util.Date;
+
+/**
+ * Simply changed the last modification time of the given file
+ *
+ * @author [EMAIL PROTECTED]
+ */
+public class ChangeLastModificationTime
+{
+    public static void main(String[] args) throws Exception
+       {
+        if (args.length == 0)
+        {
+            System.err.println("Please pass the name of a file as parameter.");
+            return;
+        }
+
+               FileObject fo = VFS.getManager().resolveFile(args[0]);
+               long setTo = System.currentTimeMillis();
+               System.err.println("set to: " + setTo);
+               fo.getContent().setLastModifiedTime(setTo);
+               System.err.println("after set: " + 
fo.getContent().getLastModifiedTime());
+    }
+}

Propchange: 
jakarta/commons/proper/vfs/trunk/examples/src/main/java/org/apache/commons/vfs/example/ChangeLastModificationTime.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/vfs/trunk/examples/src/main/java/org/apache/commons/vfs/example/ChangeLastModificationTime.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
jakarta/commons/proper/vfs/trunk/examples/src/main/java/org/apache/commons/vfs/example/ChangeLastModificationTime.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to