All pastes #931303 Raw Edit

hd420

public java v1 · immutable
·published 2008-03-07 02:16 UTC
rendered paste body
ERROR opening the Index - contact sysadmin!Error message: no segments* file found in org.apache.lucene.store.FSDirectory@/home/hdiwan/public_html/Q4D: files:Stack Trace follows...org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:587)org.apache.lucene.index.DirectoryIndexReader.open(DirectoryIndexReader.java:63)org.apache.lucene.index.IndexReader.open(IndexReader.java:209)org.apache.lucene.index.IndexReader.open(IndexReader.java:173)org.apache.lucene.search.IndexSearcher.(IndexSearcher.java:48)org.apache.jsp.results_jsp._jspService(results_jsp.java:130)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)java.lang.Thread.run(Thread.java:619)-- Source code follows --import java.io.File;import java.io.FilenameFilter;import java.io.IOException;import java.net.URLDecoder;import java.util.Collection;import java.util.Collections;import java.util.Comparator;import java.util.Date;import java.util.HashSet;import java.util.Vector;import org.apache.lucene.analysis.WhitespaceAnalyzer;import org.apache.lucene.document.DateTools;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.index.CorruptIndexException;import org.apache.lucene.index.IndexWriter;import org.apache.lucene.store.Directory;import org.apache.lucene.store.LockObtainFailedException;import org.apache.lucene.store.FSDirectory;public class Parser implements Runnable,Comparator {	        String path;	        public Parser(String string) { 	                path = string; 	        } 	        public void run() { 	                IndexWriter writer = null; 	                Directory directory = null; 	                try { 	                     directory = FSDirectory.getDirectory(this.path); 	                } catch (IOException e) { 	                    System.err.println(e.getStackTrace()); 	                } 	                try { 	                    writer = new IndexWriter(directory,new WhitespaceAnalyzer(), true); 	                } catch (CorruptIndexException e) { 	                        e.printStackTrace(); 	                } catch (LockObtainFailedException e) { 	                        e.printStackTrace(); 	                } catch (IOException e) { 	                        e.printStackTrace(); 	                } 	                Document doc = new Document(); 	                File image = null; 	                File file = null; 	                for (File f : this.listFiles(new File(path))) { 	                        if (f.getAbsolutePath().endsWith("xml") || f.getAbsolutePath().endsWith("q4d")) { 	                                System.err.println("Q4D file found!"); 	                                file = f; 	                        } else { 	                                image = f; 	                        } 	                        if ((f != null) && (image != null)) break; 	                } 	                Date lastModified = new Date(file.lastModified()); 	                System.err.println("Found a file and its corresponding image!"); 	                String imageName = image.getName(); 	                String filename = file.getName(); 	                String lastModifiedDownToSecond = DateTools.dateToString(lastModified, DateTools.Resolution.SECOND); 	                System.err.println("the time the file was last modified was "+lastModifiedDownToSecond); 	                String author = System.getProperty("author");                        String source = System.getProperty("source"); 	                String url = System.getProperty("url"); 	                String description = URLDecoder.decode(System.getProperty("description", "UTF-8")); 	        System.err.println("about to create fields"); 	                doc.add(new Field("author", author, Field.Store.YES, Field.Index.TOKENIZED)); 	                doc.add(new Field("source", source, Field.Store.YES, Field.Index.TOKENIZED)); 	                doc.add(new Field("name", filename, Field.Store.YES, Field.Index.NO)); 	                doc.add(new Field("image", imageName, Field.Store.YES, Field.Index.NO)); 	                doc.add(new Field("date", lastModifiedDownToSecond, Field.Store.YES, Field.Index.NO)); 	                doc.add(new Field("url", url, Field.Store.YES, Field.Index.NO)); 	                if (description != null) { 	                    doc.add(new Field("description", description, Field.Store.YES, Field.Index.TOKENIZED)); 	                } else { 	                    doc.add(new Field("description", "none", Field.Store.YES, Field.Index.TOKENIZED)); 	                } 	                doc.add(new Field("all", author+lastModifiedDownToSecond+source+imageName+description+url, Field.Store.YES, Field.Index.TOKENIZED)); 	                try { 	                        writer.addDocument(doc); 	                } catch (CorruptIndexException e) { 	                        e.printStackTrace(); 	                } catch (IOException e) { 	                        e.printStackTrace(); 	                } 	                try { 	                        writer.optimize(); 	                } catch (CorruptIndexException e) { 	                        e.printStackTrace(); 	                } catch (IOException e) { 	                        e.printStackTrace(); 	                } 	        } 	        	        private Collection<File> listFiles( 	                        File directory) 	        { 	                Vector<File> files = new Vector<File>(); 	                // Get files / directories in the directory 	                File[] entries = directory.listFiles(); 	 	                // Go over entries 	                for (File entry : entries) 	                { 	                        files.add(entry); 	                } 	 	                // Return collection of files, sorted by date 	                Collections.sort(files, this); 	                for (File entry : files) { 	                        System.err.println(entry+" "+entry.lastModified()); 	                } 	                return files; 	        } 	        	        public int compare(Object o1, Object o2) { 	                File f1 = (File)o1; 	                File f2 = (File)o2; 	                Date d1 = new Date(f1.lastModified()); 	                Date d2 = new Date(f2.lastModified()); 	                return d1.compareTo(d2); 	        } 	        	        public static void main (String []args) { 	                Parser obj = new Parser(args[0]); 	                try {	                        obj.run(); 	                } finally { // in case it crashes, I don't want a locked repository! 	                        File f = new File(args[0]+File.separator+"write.lock"); 	                        f.delete(); 	                } 	        } 	}