Do not require a dateformat if not needed

git-svn-id: https://svn.apache.org/repos/asf/logging/chainsaw/trunk@1640746 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java b/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
index 1d7acc0..a0fc0d8 100644
--- a/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
+++ b/src/main/java/org/apache/log4j/chainsaw/vfs/VFSLogFilePatternReceiver.java
@@ -355,18 +355,20 @@
                     	getLogger().warn("JSch not on classpath!", ncdfe);
                     }
 
-                    fileObject = fileSystemManager.resolveFile(getFileURL(), opts);
-                    if (fileObject.exists()) {
-                        reader = new InputStreamReader(fileObject.getContent().getInputStream() , "UTF-8");
-                        //now that we have a reader, remove additional portions of the file url (sftp passwords, etc.)
-                        //check to see if the name is a URLFileName..if so, set file name to not include username/pass
-                        if (fileObject.getName() instanceof URLFileName) {
-                            URLFileName urlFileName = (URLFileName) fileObject.getName();
-                            setHost(urlFileName.getHostName());
-                            setPath(urlFileName.getPath());
+					synchronized(fileSystemManager) {
+                        fileObject = fileSystemManager.resolveFile(getFileURL(), opts);
+                        if (fileObject.exists()) {
+                            reader = new InputStreamReader(fileObject.getContent().getInputStream() , "UTF-8");
+                            //now that we have a reader, remove additional portions of the file url (sftp passwords, etc.)
+                            //check to see if the name is a URLFileName..if so, set file name to not include username/pass
+                            if (fileObject.getName() instanceof URLFileName) {
+                                URLFileName urlFileName = (URLFileName) fileObject.getName();
+                                setHost(urlFileName.getHostName());
+                                setPath(urlFileName.getPath());
+                            }
+                        } else {
+                            getLogger().info(loggableFileURL + " not available - will re-attempt to load after waiting " + MISSING_FILE_RETRY_MILLIS + " millis");
                         }
-                    } else {
-                        getLogger().info(loggableFileURL + " not available - will re-attempt to load after waiting " + MISSING_FILE_RETRY_MILLIS + " millis");
                     }
                 } catch (FileSystemException fse) {
                     getLogger().info(loggableFileURL + " not available - may be due to incorrect credentials, but will re-attempt to load after waiting " + MISSING_FILE_RETRY_MILLIS + " millis", fse);
@@ -404,12 +406,15 @@
                         }
 
                         //fileobject was created above, release it and construct a new one
-                        if (fileObject != null) {
-                            fileObject.getFileSystem().getFileSystemManager().closeFileSystem(fileObject.getFileSystem());
-                            fileObject.close();
-                            fileObject = null;
+						synchronized(fileSystemManager) {
+	                        if (fileObject != null) {
+	                              fileObject.getFileSystem().getFileSystemManager().closeFileSystem(fileObject.getFileSystem());
+	                              fileObject.close();
+	                              fileObject = null;
+                            }
+                        
+                        	fileObject = fileSystemManager.resolveFile(getFileURL(), opts);
                         }
-                        fileObject = fileSystemManager.resolveFile(getFileURL(), opts);
 
                         //file may not exist..
                         boolean fileLarger = false;
diff --git a/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java b/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
index 3a39508..1c2e30c 100644
--- a/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
+++ b/src/main/java/org/apache/log4j/varia/LogFilePatternReceiver.java
@@ -173,7 +173,7 @@
   private final String[] emptyException = new String[] { "" };
 
   private SimpleDateFormat dateFormat;
-  private String timestampFormat = "yyyy-MM-d HH:mm:ss,SSS";
+  private String timestampFormat;
   private String logFormat;
   private String customLevelDefinitions;
   private String fileURL;
@@ -357,7 +357,7 @@
     /**
    * Accessor
    *
-   * @return timestamp format
+   * @return group
    */
   public String getGroup() { return group; }
     
@@ -481,7 +481,7 @@
     if (currentMap.size() == 0) {
       if (additionalLines.size() > 0) {
         for (Iterator iter = additionalLines.iterator();iter.hasNext();) {
-          getLogger().info("found non-matching line: " + iter.next());
+          getLogger().debug("found non-matching line: " + iter.next());
         }
       }
       additionalLines.clear();
@@ -625,11 +625,14 @@
    */
   private String convertTimestamp() {
     //some locales (for example, French) generate timestamp text with characters not included in \w -
-    // now using \S (all non-whitespace characters) instead of /w 
-    String result = timestampFormat.replaceAll(Pattern.quote("+"), "[+]");
-    result = result.replaceAll(VALID_DATEFORMAT_CHAR_PATTERN, "\\\\S+");
-    //make sure dots in timestamp are escaped
-    result = result.replaceAll(Pattern.quote("."), "\\\\.");
+    // now using \S (all non-whitespace characters) instead of /w
+    String result = "";
+    if (timestampFormat != null) {
+      result = timestampFormat.replaceAll(Pattern.quote("+"), "[+]");
+      result = result.replaceAll(VALID_DATEFORMAT_CHAR_PATTERN, "\\\\S+");
+      //make sure dots in timestamp are escaped
+      result = result.replaceAll(Pattern.quote("."), "\\\\.");
+    }
     return result;
   }
 
@@ -929,7 +932,7 @@
         e.printStackTrace();
       }
     }
-    //use current time if timestamp not parseable
+    //use current time if timestamp not parseable/dateformat not specified
     if (timeStamp == 0L) {
       timeStamp = System.currentTimeMillis();
     }