vgritsenko    2004/01/08 19:45:03

  Modified:    java/src/org/apache/xindice/core/indexer IndexManager.java
  Log:
  Indexes now compatible with inline metadata (and binary objects)
  
  Revision  Changes    Path
  1.25      +23 -28    
xml-xindice/java/src/org/apache/xindice/core/indexer/IndexManager.java
  
  Index: IndexManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xindice/java/src/org/apache/xindice/core/indexer/IndexManager.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- IndexManager.java 8 Jan 2004 03:16:44 -0000       1.24
  +++ IndexManager.java 9 Jan 2004 03:45:02 -0000       1.25
  @@ -76,6 +76,7 @@
   import org.apache.xindice.xml.dom.DocumentImpl;
   import org.apache.xindice.xml.sax.CompressionHandler;
   import org.apache.xindice.xml.sax.SAXEventGenerator;
  +import org.apache.xindice.Stopwatch;
   
   import org.w3c.dom.Document;
   import org.xml.sax.Attributes;
  @@ -313,15 +314,13 @@
           }
   
           if (list.length > 0) {
  -            if (true) {
  -                if (log.isDebugEnabled()) {
  -                    for (int i = 0; i < list.length; i++) {
  -                        log.debug("Index Creation: " + 
list[i].indexer.getName());
  -                    }
  +            if (log.isTraceEnabled()) {
  +                for (int i = 0; i < list.length; i++) {
  +                    log.trace("Index Creation: " + 
list[i].indexer.getName());
                   }
               }
   
  -            org.apache.xindice.Stopwatch sw = new 
org.apache.xindice.Stopwatch("Populated Indexes", true);
  +            Stopwatch sw = new Stopwatch("Populated Indexes", true);
               for (int i = 0; i < list.length; i++) {
                   try {
                       if (!list[i].indexer.exists()) {
  @@ -331,26 +330,24 @@
                       list[i].indexer.open();
                   } catch (Exception e) {
                       if (log.isWarnEnabled()) {
  -                        log.warn("ignored exception", e);
  +                        log.warn("Failed to create/open indexer " + list[i], 
e);
                       }
                   }
               }
   
               RecordSet rs = collection.getFiler().getRecordSet();
               while (rs.hasMoreRecords()) {
  -                Record rec = rs.getNextRecord();
  -                if (rec == null) {
  -                    continue;
  -                }
  -
  -                Key key = rec.getKey();
  -                // FIXME: What about inline metadata???
  -                Document doc = new DocumentImpl(rec.getValue().getData(), 
symbols, new NodeSource(collection, key));
  -                try {
  -                    new SAXHandler(key, doc, ACTION_CREATE, list);
  -                } catch (Exception e) {
  -                    if (log.isWarnEnabled()) {
  -                        log.warn("ignored exception", e);
  +                // Read only key, we don't need filer-level value
  +                Key key = rs.getNextKey();
  +                Object value = collection.getEntry(key);
  +                if (value instanceof Document) {
  +                    // Document doc = new 
DocumentImpl(rec.getValue().getData(), symbols, new NodeSource(collection, 
key));
  +                    try {
  +                        new SAXHandler(key, (Document)value, ACTION_CREATE, 
list);
  +                    } catch (Exception e) {
  +                        if (log.isWarnEnabled()) {
  +                            log.warn("Failed to index document " + key, e);
  +                        }
                       }
                   }
               }
  @@ -367,13 +364,11 @@
               }
               sw.stop();
   
  -            if (true) {
  -                if (log.isDebugEnabled()) {
  -                    for (int i = 0; i < list.length; i++) {
  -                        log.debug("Index Complete: " + 
list[i].indexer.getName());
  -                    }
  -                    log.debug(sw.toString());
  +            if (log.isDebugEnabled()) {
  +                for (int i = 0; i < list.length; i++) {
  +                    log.debug("Index Complete: " + 
list[i].indexer.getName());
                   }
  +                log.debug(sw.toString());
               }
           }
       }
  
  
  

Reply via email to