Author: cschneider
Date: Tue Jul  5 12:51:53 2011
New Revision: 1143032

URL: http://svn.apache.org/viewvc?rev=1143032&view=rev
Log:
KARAF-281 Fixed

Added:
    
karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/KarafFileHistory.java
   (with props)
Modified:
    
karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java

Modified: 
karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
URL: 
http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java?rev=1143032&r1=1143031&r2=1143032&view=diff
==============================================================================
--- 
karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
 (original)
+++ 
karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
 Tue Jul  5 12:51:53 2011
@@ -103,39 +103,13 @@ public class Console implements Runnable
                                    this.terminal);
 
         final File file = getHistoryFile();
-        file.getParentFile().mkdirs();
-
-        // We may not have the perms to read the history file...
-        if( file.exists() && file.canRead() ) {
-            // Override the FileHistory impl to trap failures due to the
-            // user does not having write access to the history file.
-            reader.setHistory(new FileHistory(file) {
-                boolean failed = false;
-                @Override
-                public void flush() throws IOException {
-                    if( !failed ) {
-                        try {
-                            super.flush();
-                        } catch (IOException e) {
-                            failed = true;
-                            LOGGER.debug("Cold not write history file: "+file, 
e);
-                        }
-                    }
-                }
+        try {
+            file.getParentFile().mkdirs();
+               reader.setHistory(new KarafFileHistory(file));
+               } catch (Exception e) {
+                       LOGGER.error("Can not read history from file " + file + 
". Using in memory history", e);
+               }
 
-                @Override
-                public void purge() throws IOException {
-                    if( !failed ) {
-                        try {
-                            super.purge();
-                        } catch (IOException e) {
-                            failed = true;
-                            LOGGER.debug("Cold not delete history file: 
"+file, e);
-                        }
-                    }
-                }
-            });
-        }
         session.put(".jline.history", reader.getHistory());
         Completer completer = createCompleter();
         if (completer != null) {

Added: 
karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/KarafFileHistory.java
URL: 
http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/KarafFileHistory.java?rev=1143032&view=auto
==============================================================================
--- 
karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/KarafFileHistory.java
 (added)
+++ 
karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/KarafFileHistory.java
 Tue Jul  5 12:51:53 2011
@@ -0,0 +1,46 @@
+package org.apache.karaf.shell.console.jline;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import jline.console.history.FileHistory;
+
+/**
+ * Override the FileHistory impl to trap failures due to the
+ * user does not having write access to the history file.
+ */
+public final class KarafFileHistory extends FileHistory {
+       static final Logger LOGGER = 
LoggerFactory.getLogger(KarafFileHistory.class);
+       boolean failed = false;
+
+       public KarafFileHistory(File file) throws IOException {
+               super(file);
+       }
+
+       @Override
+       public void flush() throws IOException {
+           if( !failed ) {
+               try {
+                   super.flush();
+               } catch (IOException e) {
+                   failed = true;
+                   LOGGER.debug("Could not write history file: "+ getFile(), 
e);
+               }
+           }
+       }
+
+       @Override
+       public void purge() throws IOException {
+           if( !failed ) {
+               try {
+                   super.purge();
+               } catch (IOException e) {
+                   failed = true;
+                   LOGGER.debug("Could not delete history file: "+ getFile(), 
e);
+               }
+           }
+       }
+}
\ No newline at end of file

Propchange: 
karaf/branches/karaf-2.2.x/shell/console/src/main/java/org/apache/karaf/shell/console/jline/KarafFileHistory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to