Revision 2580
Added by sgarg over 19 years ago
src/edu/ucsb/nceas/metacat/DocumentImpl.java | ||
---|---|---|
2102 | 2102 |
parser.parse(new InputSource(xml)); |
2103 | 2103 |
conn.commit(); |
2104 | 2104 |
conn.setAutoCommit(true); |
2105 |
|
|
2106 |
DBSAXHandler dbx = (DBSAXHandler) parser.getContentHandler(); |
|
2107 |
dbx.runIndexingThread(); |
|
2105 | 2108 |
} catch (Exception e) { |
2106 | 2109 |
conn.rollback(); |
2107 | 2110 |
conn.setAutoCommit(true); |
src/edu/ucsb/nceas/metacat/DBSAXHandler.java | ||
---|---|---|
242 | 242 |
+ e.getMessage()); |
243 | 243 |
} |
244 | 244 |
} |
245 |
boolean useXMLIndex = |
|
246 |
(new Boolean(MetaCatUtil.getOption("usexmlindex"))).booleanValue(); |
|
247 |
if (useXMLIndex) { |
|
248 |
try { |
|
249 |
xmlIndex.start(); |
|
250 |
} catch (NullPointerException e) { |
|
251 |
xmlIndex = null; |
|
252 |
throw new SAXException( |
|
253 |
"Problem with starting thread for writing XML Index. " |
|
254 |
+ e.getMessage()); |
|
255 |
} |
|
256 |
} |
|
257 | 245 |
} |
258 | 246 |
|
259 | 247 |
/** SAX Handler that is called at the start of Namespace */ |
... | ... | |
427 | 415 |
} |
428 | 416 |
} |
429 | 417 |
|
418 |
public void runIndexingThread(){ |
|
419 |
boolean useXMLIndex = |
|
420 |
(new Boolean(MetaCatUtil.getOption("usexmlindex"))).booleanValue(); |
|
421 |
if (useXMLIndex) { |
|
422 |
try { |
|
423 |
xmlIndex.start(); |
|
424 |
} catch (NullPointerException e) { |
|
425 |
xmlIndex = null; |
|
426 |
MetaCatUtil.debugMessage("Error in DBSAXHandler.runIndexingThread() " |
|
427 |
+ e.getMessage(), 20); |
|
428 |
} |
|
429 |
} |
|
430 |
} |
|
431 |
|
|
430 | 432 |
/* |
431 | 433 |
* Run a separate thread to build the XML index for this document. This |
432 | 434 |
* thread is run asynchronously in order to more quickly return control to |
... | ... | |
488 | 490 |
boolean tableHasRows = doccheckRS.next(); |
489 | 491 |
if (tableHasRows) { |
490 | 492 |
MetaCatUtil.debugMessage( |
491 |
"=========== find the correct document", 35);
|
|
493 |
"=========== found the correct document", 35);
|
|
492 | 494 |
inxmldoc = true; |
493 | 495 |
} |
494 | 496 |
doccheckRS.close(); |
Also available in: Unified diff
Fix for bug 2060.
Moved the call to starting of indexing thread from endDocument to DocumentImpl after commit has been done. This way when ever a document is indexed it has already been entered in xml_nodes and xml_documents