You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
(57) |
Apr
(103) |
May
(164) |
Jun
(139) |
Jul
(173) |
Aug
(196) |
Sep
(221) |
Oct
(333) |
Nov
(214) |
Dec
(88) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(163) |
Feb
(165) |
Mar
(98) |
Apr
(93) |
May
(199) |
Jun
(118) |
Jul
(200) |
Aug
(212) |
Sep
(185) |
Oct
(297) |
Nov
(437) |
Dec
(272) |
2006 |
Jan
(542) |
Feb
(329) |
Mar
(267) |
Apr
(332) |
May
(267) |
Jun
(130) |
Jul
(161) |
Aug
(348) |
Sep
(166) |
Oct
(305) |
Nov
(173) |
Dec
(173) |
2007 |
Jan
(199) |
Feb
(118) |
Mar
(133) |
Apr
(200) |
May
(208) |
Jun
(146) |
Jul
(198) |
Aug
(146) |
Sep
(187) |
Oct
(182) |
Nov
(181) |
Dec
(83) |
2008 |
Jan
(252) |
Feb
(124) |
Mar
(124) |
Apr
(101) |
May
(143) |
Jun
(122) |
Jul
(129) |
Aug
(60) |
Sep
(80) |
Oct
(89) |
Nov
(54) |
Dec
(112) |
2009 |
Jan
(88) |
Feb
(145) |
Mar
(105) |
Apr
(164) |
May
(123) |
Jun
(154) |
Jul
(374) |
Aug
(341) |
Sep
(219) |
Oct
(137) |
Nov
(373) |
Dec
(240) |
2010 |
Jan
(197) |
Feb
(270) |
Mar
(253) |
Apr
(150) |
May
(102) |
Jun
(51) |
Jul
(300) |
Aug
(512) |
Sep
(254) |
Oct
(258) |
Nov
(288) |
Dec
(143) |
2011 |
Jan
(238) |
Feb
(179) |
Mar
(253) |
Apr
(332) |
May
(248) |
Jun
(255) |
Jul
(216) |
Aug
(282) |
Sep
(146) |
Oct
(77) |
Nov
(86) |
Dec
(69) |
2012 |
Jan
(172) |
Feb
(234) |
Mar
(229) |
Apr
(101) |
May
(212) |
Jun
(267) |
Jul
(129) |
Aug
(210) |
Sep
(239) |
Oct
(271) |
Nov
(368) |
Dec
(220) |
2013 |
Jan
(179) |
Feb
(155) |
Mar
(59) |
Apr
(47) |
May
(99) |
Jun
(158) |
Jul
(185) |
Aug
(16) |
Sep
(16) |
Oct
(7) |
Nov
(20) |
Dec
(12) |
2014 |
Jan
(21) |
Feb
(17) |
Mar
(18) |
Apr
(13) |
May
(27) |
Jun
(15) |
Jul
(19) |
Aug
(22) |
Sep
(30) |
Oct
(16) |
Nov
(19) |
Dec
(16) |
2015 |
Jan
(14) |
Feb
(24) |
Mar
(33) |
Apr
(41) |
May
(14) |
Jun
(80) |
Jul
(53) |
Aug
(8) |
Sep
(7) |
Oct
(15) |
Nov
(13) |
Dec
(2) |
2016 |
Jan
(22) |
Feb
(12) |
Mar
(30) |
Apr
(6) |
May
(33) |
Jun
(16) |
Jul
(8) |
Aug
(20) |
Sep
(12) |
Oct
(18) |
Nov
(12) |
Dec
(11) |
2017 |
Jan
(24) |
Feb
(26) |
Mar
(47) |
Apr
(23) |
May
(19) |
Jun
(14) |
Jul
(28) |
Aug
(30) |
Sep
(17) |
Oct
|
Nov
|
Dec
|
2019 |
Jan
(1) |
Feb
(73) |
Mar
(90) |
Apr
(42) |
May
(116) |
Jun
(90) |
Jul
(127) |
Aug
(103) |
Sep
(56) |
Oct
(42) |
Nov
(95) |
Dec
(58) |
2020 |
Jan
(102) |
Feb
(31) |
Mar
(93) |
Apr
(60) |
May
(57) |
Jun
(45) |
Jul
(29) |
Aug
(32) |
Sep
(44) |
Oct
(86) |
Nov
(51) |
Dec
(71) |
2021 |
Jan
(44) |
Feb
(25) |
Mar
(78) |
Apr
(130) |
May
(64) |
Jun
(74) |
Jul
(21) |
Aug
(64) |
Sep
(40) |
Oct
(43) |
Nov
(21) |
Dec
(99) |
2022 |
Jan
(154) |
Feb
(64) |
Mar
(45) |
Apr
(95) |
May
(62) |
Jun
(48) |
Jul
(73) |
Aug
(37) |
Sep
(71) |
Oct
(27) |
Nov
(40) |
Dec
(65) |
2023 |
Jan
(89) |
Feb
(130) |
Mar
(124) |
Apr
(50) |
May
(93) |
Jun
(46) |
Jul
(45) |
Aug
(68) |
Sep
(62) |
Oct
(71) |
Nov
(108) |
Dec
(82) |
2024 |
Jan
(53) |
Feb
(76) |
Mar
(64) |
Apr
(75) |
May
(36) |
Jun
(54) |
Jul
(98) |
Aug
(137) |
Sep
(58) |
Oct
(177) |
Nov
(84) |
Dec
(52) |
2025 |
Jan
(70) |
Feb
(53) |
Mar
(72) |
Apr
(47) |
May
(88) |
Jun
(49) |
Jul
(86) |
Aug
(25) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Wolfgang M. M. <wol...@us...> - 2004-08-04 19:30:20
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/collections In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24651/src/org/exist/collections Modified Files: Collection.java Log Message: Commented out debug output. Index: Collection.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/collections/Collection.java,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** Collection.java 4 Aug 2004 14:48:06 -0000 1.46 --- Collection.java 4 Aug 2004 19:30:10 -0000 1.47 *************** *** 177,181 **** */ public void release() { ! LOG.debug("releasing lock on " + name); lock.release(); } --- 177,181 ---- */ public void release() { ! // LOG.debug("releasing lock on " + name); lock.release(); } *************** *** 486,489 **** --- 486,491 ---- } DocumentImpl doc = (DocumentImpl) documents.get(name); + if(doc == null) + return null; Lock updateLock = doc.getUpdateLock(); updateLock.acquire(lockMode); |
From: Wolfgang M. M. <wol...@us...> - 2004-08-04 19:00:44
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xquery In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18983/src/org/exist/xquery Modified Files: FunctionFactory.java XQueryContext.java Log Message: Default element namespace has been (wrongly) applied to variable names. Index: XQueryContext.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/XQueryContext.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** XQueryContext.java 17 Jul 2004 10:00:44 -0000 1.21 --- XQueryContext.java 4 Aug 2004 19:00:05 -0000 1.22 *************** *** 532,536 **** */ public Variable resolveVariable(String name) throws XPathException { ! QName qn = QName.parse(this, name); return resolveVariable(qn); } --- 532,536 ---- */ public Variable resolveVariable(String name) throws XPathException { ! QName qn = QName.parse(this, name, null); return resolveVariable(qn); } Index: FunctionFactory.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/FunctionFactory.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** FunctionFactory.java 23 Feb 2004 09:36:11 -0000 1.4 --- FunctionFactory.java 4 Aug 2004 19:00:05 -0000 1.5 *************** *** 55,59 **** List params) throws XPathException { ! QName qname = QName.parseFunction(context, ast.getText()); String local = qname.getLocalName(); String uri = qname.getNamespaceURI(); --- 55,59 ---- List params) throws XPathException { ! QName qname = QName.parse(context, ast.getText(), context.getDefaultFunctionNamespace()); String local = qname.getLocalName(); String uri = qname.getNamespaceURI(); |
From: Wolfgang M. M. <wol...@us...> - 2004-08-04 19:00:22
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xquery/parser In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18983/src/org/exist/xquery/parser Modified Files: XQueryParserTokenTypes.txt XQueryParser.java XQueryTreeParser.java XQuery.g Log Message: Default element namespace has been (wrongly) applied to variable names. Index: XQueryTreeParser.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/parser/XQueryTreeParser.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** XQueryTreeParser.java 23 Jul 2004 14:19:53 -0000 1.16 --- XQueryTreeParser.java 4 Aug 2004 19:00:06 -0000 1.17 *************** *** 2627,2631 **** VariableDeclaration decl= new VariableDeclaration(context, qname.getText(), enclosed); decl.setSequenceType(type); ! decl.setASTNode(e); path.add(decl); if(myModule != null) { --- 2627,2631 ---- VariableDeclaration decl= new VariableDeclaration(context, qname.getText(), enclosed); decl.setSequenceType(type); ! decl.setASTNode(e); path.add(decl); if(myModule != null) { *************** *** 3938,3942 **** match(_t,QNAME); _t = _t.getNextSibling(); ! qname= QName.parseAttribute(context, attr.getText()); break; } --- 3938,3942 ---- match(_t,QNAME); _t = _t.getNextSibling(); ! qname= QName.parse(context, attr.getText(), null); break; } *************** *** 5201,5206 **** "COMP_NS_CONSTRUCTOR", "\"xpointer\"", ! "(", ! ")", "NCNAME", "\"module\"", --- 5201,5206 ---- "COMP_NS_CONSTRUCTOR", "\"xpointer\"", ! "'('", ! "')'", "NCNAME", "\"module\"", Index: XQueryParser.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/parser/XQueryParser.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** XQueryParser.java 23 Jul 2004 14:19:52 -0000 1.16 --- XQueryParser.java 4 Aug 2004 19:00:06 -0000 1.17 *************** *** 6814,6819 **** "COMP_NS_CONSTRUCTOR", "\"xpointer\"", ! "(", ! ")", "NCNAME", "\"module\"", --- 6814,6819 ---- "COMP_NS_CONSTRUCTOR", "\"xpointer\"", ! "'('", ! "')'", "NCNAME", "\"module\"", Index: XQuery.g =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/parser/XQuery.g,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** XQuery.g 21 Jul 2004 08:53:56 -0000 1.20 --- XQuery.g 4 Aug 2004 19:00:06 -0000 1.21 *************** *** 1909,1913 **** ( attr:QNAME ! { qname= QName.parseAttribute(context, attr.getText()); } | WILDCARD --- 1909,1913 ---- ( attr:QNAME ! { qname= QName.parse(context, attr.getText(), null); } | WILDCARD Index: XQueryParserTokenTypes.txt =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/parser/XQueryParserTokenTypes.txt,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** XQueryParserTokenTypes.txt 23 Jul 2004 14:19:52 -0000 1.10 --- XQueryParserTokenTypes.txt 4 Aug 2004 19:00:06 -0000 1.11 *************** *** 41,46 **** COMP_NS_CONSTRUCTOR=42 LITERAL_xpointer="xpointer"=43 ! LPAREN("(")=44 ! RPAREN(")")=45 NCNAME=46 LITERAL_module="module"=47 --- 41,46 ---- COMP_NS_CONSTRUCTOR=42 LITERAL_xpointer="xpointer"=43 ! LPAREN("'('")=44 ! RPAREN("')'")=45 NCNAME=46 LITERAL_module="module"=47 |
From: Wolfgang M. M. <wol...@us...> - 2004-08-04 19:00:21
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/dom In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18983/src/org/exist/dom Modified Files: QName.java Log Message: Default element namespace has been (wrongly) applied to variable names. Index: QName.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/dom/QName.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** QName.java 8 Jun 2004 08:16:07 -0000 1.14 --- QName.java 4 Aug 2004 19:00:08 -0000 1.15 *************** *** 204,211 **** * @param context * @param qname ! * @return * @exception IllegalArgumentException if no namespace URI is mapped to the prefix */ ! public static QName parse(XQueryContext context, String qname) throws XPathException { String prefix = extractPrefix(qname); --- 204,211 ---- * @param context * @param qname ! * @return defaultNS the default namespace to use if no namespace prefix is present. * @exception IllegalArgumentException if no namespace URI is mapped to the prefix */ ! public static QName parse(XQueryContext context, String qname, String defaultNS) throws XPathException { String prefix = extractPrefix(qname); *************** *** 216,254 **** throw new XPathException("No namespace defined for prefix " + prefix); } else ! namespaceURI = context.getURIForPrefix(""); ! if (namespaceURI == null) ! namespaceURI = ""; ! return new QName(extractLocalName(qname), namespaceURI, prefix); ! } ! ! public static QName parseAttribute(XQueryContext context, String qname) ! throws XPathException { ! String prefix = extractPrefix(qname); ! String namespaceURI = null; ! if (prefix != null) { ! namespaceURI = context.getURIForPrefix(prefix); ! if (namespaceURI == null) ! throw new XPathException("No namespace defined for prefix " + prefix); ! } if (namespaceURI == null) namespaceURI = ""; return new QName(extractLocalName(qname), namespaceURI, prefix); } ! ! public static QName parseFunction(XQueryContext context, String qname) throws XPathException { ! String prefix = extractPrefix(qname); ! String namespaceURI; ! if (prefix != null) { ! namespaceURI = context.getURIForPrefix(prefix); ! if (namespaceURI == null) ! throw new XPathException("No namespace defined for prefix " + prefix); ! } else ! namespaceURI = context.getDefaultFunctionNamespace(); ! if (namespaceURI == null) ! namespaceURI = ""; ! return new QName(extractLocalName(qname), namespaceURI, prefix); } ! public final static boolean isQName(String name) { int colon = name.indexOf(':'); --- 216,241 ---- throw new XPathException("No namespace defined for prefix " + prefix); } else ! namespaceURI = defaultNS; if (namespaceURI == null) namespaceURI = ""; return new QName(extractLocalName(qname), namespaceURI, prefix); } ! ! /** ! * Parses the given string into a QName. The method uses context to look up ! * a namespace URI for an existing prefix. ! * ! * This method uses the default element namespace for qnames without prefix. ! * ! * @param context ! * @param qname ! * @return ! * @exception IllegalArgumentException if no namespace URI is mapped to the prefix ! */ ! public static QName parse(XQueryContext context, String qname) throws XPathException { ! return parse(context, qname, context.getURIForPrefix("")); } ! public final static boolean isQName(String name) { int colon = name.indexOf(':'); |
From: Wolfgang M. M. <wol...@us...> - 2004-08-04 19:00:19
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18983/src/org/exist/xquery/functions/util Modified Files: DescribeFunction.java Log Message: Default element namespace has been (wrongly) applied to variable names. Index: DescribeFunction.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions/util/DescribeFunction.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** DescribeFunction.java 28 May 2004 10:54:21 -0000 1.3 --- DescribeFunction.java 4 Aug 2004 19:00:08 -0000 1.4 *************** *** 68,72 **** throws XPathException { String fname = getArgument(0).eval(contextSequence, contextItem).getStringValue(); ! QName qname = QName.parseFunction(context, fname); String uri = qname.getNamespaceURI(); FunctionSignature signature; --- 68,72 ---- throws XPathException { String fname = getArgument(0).eval(contextSequence, contextItem).getStringValue(); ! QName qname = QName.parse(context, fname, context.getDefaultFunctionNamespace()); String uri = qname.getNamespaceURI(); FunctionSignature signature; |
From: Wolfgang M. M. <wol...@us...> - 2004-08-04 14:48:17
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/storage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2454/src/org/exist/storage Modified Files: DBBroker.java BrokerPool.java NativeBroker.java Log Message: Fixed some deadlocks introduced by yesterday's changes. Moved the global CollectionCache object in DBBroker to BrokerPool (it should not be declared static or it will not be re-initialized upon database restart). Index: NativeBroker.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/storage/NativeBroker.java,v retrieving revision 1.94 retrieving revision 1.95 diff -C2 -d -r1.94 -r1.95 *** NativeBroker.java 3 Aug 2004 16:45:47 -0000 1.94 --- NativeBroker.java 4 Aug 2004 14:48:06 -0000 1.95 *************** *** 46,49 **** --- 46,50 ---- import org.exist.EXistException; import org.exist.collections.Collection; + import org.exist.collections.CollectionCache; import org.exist.collections.triggers.TriggerException; import org.exist.dom.ArraySet; *************** *** 76,79 **** --- 77,81 ---- import org.exist.util.ByteArrayPool; import org.exist.util.ByteConversion; + import org.exist.util.CollectionScanner; import org.exist.util.Configuration; import org.exist.util.Lock; *************** *** 253,257 **** elementIndex = new NativeElementIndex(this, config, elementsDb); user = new User("admin", null, "dba"); ! getOrCreateCollection(ROOT_COLLECTION); } catch (DBException e) { LOG.debug("failed to initialize database: " + e.getMessage(), e); --- 255,260 ---- elementIndex = new NativeElementIndex(this, config, elementsDb); user = new User("admin", null, "dba"); ! if(pool.isInitializing()) ! getOrCreateCollection(ROOT_COLLECTION); } catch (DBException e) { LOG.debug("failed to initialize database: " + e.getMessage(), e); *************** *** 387,390 **** --- 390,394 ---- name = name.substring(0, name.length() - 1); + CollectionCache collectionsCache = pool.getCollectionsCache(); synchronized(collectionsCache) { Collection collection = collectionsCache.get(name); *************** *** 426,432 **** if(lockMode != Lock.NO_LOCK) { try { ! // LOG.debug("acquiring lock on " + collection.getName()); collection.getLock().acquire(lockMode); ! // Thread.dumpStack(); } catch (LockException e1) { LOG.warn("Could not acquire lock on collection " + name); --- 430,436 ---- if(lockMode != Lock.NO_LOCK) { try { ! LOG.debug("acquiring lock on " + collection.getName()); collection.getLock().acquire(lockMode); ! LOG.debug("lock acquired"); } catch (LockException e1) { LOG.warn("Could not acquire lock on collection " + name); *************** *** 1515,1519 **** return result; } ! /** * get collection object If the collection does not yet exists, it is --- 1519,1523 ---- return result; } ! /** * get collection object If the collection does not yet exists, it is *************** *** 1538,1542 **** if (name.endsWith("/") && name.length() > 1) name = name.substring(0, name.length() - 1); ! synchronized(collectionsCache) { try { --- 1542,1546 ---- if (name.endsWith("/") && name.length() > 1) name = name.substring(0, name.length() - 1); ! final CollectionCache collectionsCache = pool.getCollectionsCache(); synchronized(collectionsCache) { try { *************** *** 1585,1589 **** } } ! /** * Gets a range of nodes, starting with first, ending with last --- 1589,1593 ---- } } ! /** * Gets a range of nodes, starting with first, ending with last *************** *** 1748,1751 **** --- 1752,1756 ---- throw new PermissionDeniedException("not allowed to remove collection"); + final CollectionCache collectionsCache = pool.getCollectionsCache(); synchronized(collectionsCache) { String name = collection.getName(); *************** *** 2009,2013 **** if (readOnly) throw new PermissionDeniedException(DATABASE_IS_READ_ONLY); ! collectionsCache.add(collection); Lock lock = null; try { --- 2014,2018 ---- if (readOnly) throw new PermissionDeniedException(DATABASE_IS_READ_ONLY); ! pool.getCollectionsCache().add(collection); Lock lock = null; try { *************** *** 2191,2194 **** --- 2196,2200 ---- } String name = collection.getName(); + final CollectionCache collectionsCache = pool.getCollectionsCache(); synchronized(collectionsCache) { Collection parent = openCollection(collection.getParentPath(), Lock.WRITE_LOCK); Index: DBBroker.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/storage/DBBroker.java,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** DBBroker.java 3 Aug 2004 15:25:58 -0000 1.40 --- DBBroker.java 4 Aug 2004 14:48:06 -0000 1.41 *************** *** 34,38 **** import org.exist.EXistException; import org.exist.collections.Collection; - import org.exist.collections.CollectionCache; import org.exist.dom.BinaryDocument; import org.exist.dom.DocumentImpl; --- 34,37 ---- *************** *** 73,82 **** public final static int POSTGRESQL = 2; public final static int DBM = 3; - - // size of the internal buffer for collection objects - public static final int COLLECTION_BUFFER_SIZE = 128; - - protected static CollectionCache collectionsCache = - new CollectionCache(COLLECTION_BUFFER_SIZE); protected final static Logger LOG = Logger.getLogger(DBBroker.class); --- 72,75 ---- *************** *** 155,162 **** return symbols; } - - public CollectionCache getCollectionsCache() { - return collectionsCache; - } public DBBroker(BrokerPool pool, Configuration config) --- 148,151 ---- Index: BrokerPool.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/storage/BrokerPool.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** BrokerPool.java 3 Aug 2004 15:25:58 -0000 1.26 --- BrokerPool.java 4 Aug 2004 14:48:06 -0000 1.27 *************** *** 31,34 **** --- 31,35 ---- import org.apache.log4j.Logger; import org.exist.EXistException; + import org.exist.collections.CollectionCache; import org.exist.security.User; import org.exist.storage.sync.Sync; *************** *** 53,60 **** --- 54,67 ---- private final static Logger LOG = Logger.getLogger(BrokerPool.class); + private final static TreeMap instances = new TreeMap(); + private static long timeOut = 30000L; + private final static ShutdownThread shutdownThread = new ShutdownThread(); + // size of the internal buffer for collection objects + public static final int COLLECTION_BUFFER_SIZE = 128; + public final static String DEFAULT_INSTANCE = "exist"; *************** *** 164,173 **** private Stack pool = new Stack(); private Map threads = new HashMap(); - private org.exist.security.SecurityManager secManager = null; private String instanceId; private boolean syncRequired = false; private SyncDaemon syncDaemon; private ShutdownListener shutdownListener = null; private XQueryPool xqueryCache; private Lock globalXUpdateLock = new ReentrantReadWriteLock("xupdate"); --- 171,183 ---- private Stack pool = new Stack(); private Map threads = new HashMap(); private String instanceId; private boolean syncRequired = false; + private boolean initializing = true; + + private org.exist.security.SecurityManager secManager = null; private SyncDaemon syncDaemon; private ShutdownListener shutdownListener = null; private XQueryPool xqueryCache; + protected CollectionCache collectionsCache; private Lock globalXUpdateLock = new ReentrantReadWriteLock("xupdate"); *************** *** 198,201 **** --- 208,212 ---- conf = config; xqueryCache = new XQueryPool(); + collectionsCache = new CollectionCache(COLLECTION_BUFFER_SIZE); initialize(); } *************** *** 225,228 **** --- 236,243 ---- } + public CollectionCache getCollectionsCache() { + return collectionsCache; + } + protected DBBroker createBroker() throws EXistException { DBBroker broker = BrokerFactory.getInstance(this, conf); *************** *** 314,319 **** --- 329,336 ---- protected void initialize() throws EXistException { LOG.debug("initializing database " + instanceId); + initializing = true; for (int i = 0; i < min; i++) createBroker(); + initializing = false; DBBroker broker = (DBBroker) pool.peek(); secManager = new org.exist.security.SecurityManager(this, broker); *************** *** 321,324 **** --- 338,345 ---- } + protected boolean isInitializing() { + return initializing; + } + /** * Release a DBBroker instance into the pool. |
From: Wolfgang M. M. <wol...@us...> - 2004-08-04 14:48:17
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/collections In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2454/src/org/exist/collections Modified Files: Collection.java Log Message: Fixed some deadlocks introduced by yesterday's changes. Moved the global CollectionCache object in DBBroker to BrokerPool (it should not be declared static or it will not be re-initialized upon database restart). Index: Collection.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/collections/Collection.java,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** Collection.java 3 Aug 2004 16:45:46 -0000 1.45 --- Collection.java 4 Aug 2004 14:48:06 -0000 1.46 *************** *** 177,181 **** */ public void release() { ! // LOG.debug("releasing lock on " + name); lock.release(); } --- 177,181 ---- */ public void release() { ! LOG.debug("releasing lock on " + name); lock.release(); } *************** *** 292,296 **** boolean recursive, boolean checkPermissions) { if (permissions.validate(broker.getUser(), Permission.READ)) { ! CollectionCache cache = broker.getCollectionsCache(); synchronized (cache) { getDocuments(broker, docs, checkPermissions); --- 292,296 ---- boolean recursive, boolean checkPermissions) { if (permissions.validate(broker.getUser(), Permission.READ)) { ! CollectionCache cache = broker.getBrokerPool().getCollectionsCache(); synchronized (cache) { getDocuments(broker, docs, checkPermissions); |
From: Wolfgang M. M. <wol...@us...> - 2004-08-04 14:48:16
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xmldb In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2454/src/org/exist/xmldb Modified Files: LocalCollection.java LocalCollectionManagementService.java Log Message: Fixed some deadlocks introduced by yesterday's changes. Moved the global CollectionCache object in DBBroker to BrokerPool (it should not be declared static or it will not be re-initialized upon database restart). Index: LocalCollectionManagementService.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/LocalCollectionManagementService.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** LocalCollectionManagementService.java 3 Aug 2004 15:25:58 -0000 1.14 --- LocalCollectionManagementService.java 4 Aug 2004 14:48:05 -0000 1.15 *************** *** 58,72 **** collName = parent.getPath() + '/' + collName; DBBroker broker = null; - org.exist.collections.Collection parentColl = null; try { broker = brokerPool.get(user); - parentColl = broker.openCollection(parent.getPath(), Lock.WRITE_LOCK); - if(parentColl == null) - throw new XMLDBException(ErrorCodes.INVALID_COLLECTION, - "Collection " + parent.getPath() + " not found"); org.exist.collections.Collection coll = broker.getOrCreateCollection( collName ); broker.saveCollection( coll ); - broker.flush(); } catch ( EXistException e ) { throw new XMLDBException( ErrorCodes.VENDOR_ERROR, --- 58,66 ---- *************** *** 76,81 **** "not allowed to create collection", e ); } finally { - if(parentColl != null) - parentColl.release(); brokerPool.release( broker ); } --- 70,73 ---- Index: LocalCollection.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/LocalCollection.java,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** LocalCollection.java 3 Aug 2004 16:45:45 -0000 1.38 --- LocalCollection.java 4 Aug 2004 14:48:05 -0000 1.39 *************** *** 263,267 **** childName = getPath() + '/' + name; } finally { ! collection.getLock().release(Lock.READ_LOCK); } if(childName != null) --- 263,267 ---- childName = getPath() + '/' + name; } finally { ! collection.release(); } if(childName != null) *************** *** 288,292 **** return collection.getName(); } finally { ! collection.getLock().release(Lock.READ_LOCK); } } --- 288,292 ---- return collection.getName(); } finally { ! collection.release(); } } |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 20:54:42
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/http/webdav In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11108/src/org/exist/http/webdav Modified Files: WebDAV.java Log Message: Index: WebDAV.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/http/webdav/WebDAV.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** WebDAV.java 3 Aug 2004 15:26:00 -0000 1.6 --- WebDAV.java 3 Aug 2004 20:54:33 -0000 1.7 *************** *** 120,123 **** --- 120,124 ---- WebDAVMethod method = null; DBBroker broker = null; + boolean collectionLocked = false; try { broker = pool.get(user); *************** *** 134,138 **** if(resource != null) collection = resource.getCollection(); ! } } catch (EXistException e) { throw new ServletException("An error occurred while retrieving resource: " + e.getMessage(), e); --- 135,140 ---- if(resource != null) collection = resource.getCollection(); ! } else ! collectionLocked = true; } catch (EXistException e) { throw new ServletException("An error occurred while retrieving resource: " + e.getMessage(), e); *************** *** 145,149 **** method.process(user, request, response, collection, resource); } finally { ! if(collection != null) collection.release(); if(resource != null) --- 147,151 ---- method.process(user, request, response, collection, resource); } finally { ! if(collection != null && collectionLocked) collection.release(); if(resource != null) |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:59:11
|
Update of /cvsroot/exist/eXist-1.0/installer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27418/installer Modified Files: install.xml install.xml.tmpl Log Message: build.properties file missing in generated installer. Index: install.xml =================================================================== RCS file: /cvsroot/exist/eXist-1.0/installer/install.xml,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** install.xml 28 May 2004 10:54:25 -0000 1.16 --- install.xml 3 Aug 2004 16:59:01 -0000 1.17 *************** *** 2,6 **** <info> <appname>eXist</appname> ! <appversion>20040525-dev</appversion> <authors> <author email="wol...@ex..." --- 2,6 ---- <info> <appname>eXist</appname> ! <appversion>20040803-dev</appversion> <authors> <author email="wol...@ex..." *************** *** 40,43 **** --- 40,44 ---- <include name="log4j.xml"/> <include name="build.xml"/> + <include name="build.properties"/> <include name="LICENSE"/> <include name="README"/> *************** *** 63,67 **** <exclude name="**/*.log*"/> <exclude name="api/**"/> - <exclude name="bin/**"/> <exclude name="**/CVS/"/> <exclude name="**/*~"/> --- 64,67 ---- Index: install.xml.tmpl =================================================================== RCS file: /cvsroot/exist/eXist-1.0/installer/install.xml.tmpl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** install.xml.tmpl 28 May 2004 10:54:25 -0000 1.2 --- install.xml.tmpl 3 Aug 2004 16:59:01 -0000 1.3 *************** *** 63,67 **** <exclude name="**/*.log*"/> <exclude name="api/**"/> - <exclude name="bin/**"/> <exclude name="**/CVS/"/> <exclude name="**/*~"/> --- 63,66 ---- |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:47:55
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xmldb In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25409/src/org/exist/xmldb Modified Files: RemoteUserManagementService.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: RemoteUserManagementService.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/RemoteUserManagementService.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** RemoteUserManagementService.java 21 May 2004 08:32:14 -0000 1.4 --- RemoteUserManagementService.java 3 Aug 2004 16:47:38 -0000 1.5 *************** *** 5,12 **** import java.util.Iterator; import java.util.Vector; import org.apache.xmlrpc.XmlRpcException; import org.exist.security.Permission; import org.exist.security.User; ! import org.xmldb.api.base.*; public class RemoteUserManagementService implements UserManagementService { --- 5,16 ---- import java.util.Iterator; import java.util.Vector; + import org.apache.xmlrpc.XmlRpcException; import org.exist.security.Permission; import org.exist.security.User; ! import org.xmldb.api.base.Collection; ! import org.xmldb.api.base.ErrorCodes; ! import org.xmldb.api.base.Resource; ! import org.xmldb.api.base.XMLDBException; public class RemoteUserManagementService implements UserManagementService { |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:47:55
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xmlrpc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25409/src/org/exist/xmlrpc Modified Files: RpcConnection.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: RpcConnection.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmlrpc/RpcConnection.java,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -d -r1.65 -r1.66 *** RpcConnection.java 3 Aug 2004 16:45:46 -0000 1.65 --- RpcConnection.java 3 Aug 2004 16:47:38 -0000 1.66 *************** *** 50,54 **** import org.apache.log4j.Logger; import org.exist.EXistException; - import org.exist.Indexer; import org.exist.collections.Collection; import org.exist.collections.IndexInfo; --- 50,53 ---- |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:47:49
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25409/src/org/exist/xquery/functions Modified Files: FunSubstringBefore.java FunMatches.java FunBaseURI.java FunNormalizeSpace.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: FunMatches.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions/FunMatches.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FunMatches.java 28 May 2004 10:54:09 -0000 1.2 --- FunMatches.java 3 Aug 2004 16:47:37 -0000 1.3 *************** *** 31,36 **** import org.exist.xquery.Function; import org.exist.xquery.FunctionSignature; - import org.exist.xquery.XQueryContext; import org.exist.xquery.XPathException; import org.exist.xquery.value.BooleanValue; import org.exist.xquery.value.Item; --- 31,36 ---- import org.exist.xquery.Function; import org.exist.xquery.FunctionSignature; import org.exist.xquery.XPathException; + import org.exist.xquery.XQueryContext; import org.exist.xquery.value.BooleanValue; import org.exist.xquery.value.Item; Index: FunNormalizeSpace.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions/FunNormalizeSpace.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FunNormalizeSpace.java 29 Jan 2004 15:06:41 -0000 1.1 --- FunNormalizeSpace.java 3 Aug 2004 16:47:37 -0000 1.2 *************** *** 30,35 **** import org.exist.xquery.Function; import org.exist.xquery.FunctionSignature; - import org.exist.xquery.XQueryContext; import org.exist.xquery.XPathException; import org.exist.xquery.value.Item; import org.exist.xquery.value.Sequence; --- 30,35 ---- import org.exist.xquery.Function; import org.exist.xquery.FunctionSignature; import org.exist.xquery.XPathException; + import org.exist.xquery.XQueryContext; import org.exist.xquery.value.Item; import org.exist.xquery.value.Sequence; Index: FunSubstringBefore.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions/FunSubstringBefore.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FunSubstringBefore.java 29 Jan 2004 15:06:41 -0000 1.1 --- FunSubstringBefore.java 3 Aug 2004 16:47:37 -0000 1.2 *************** *** 29,34 **** import org.exist.xquery.Function; import org.exist.xquery.FunctionSignature; - import org.exist.xquery.XQueryContext; import org.exist.xquery.XPathException; import org.exist.xquery.value.Item; import org.exist.xquery.value.Sequence; --- 29,34 ---- import org.exist.xquery.Function; import org.exist.xquery.FunctionSignature; import org.exist.xquery.XPathException; + import org.exist.xquery.XQueryContext; import org.exist.xquery.value.Item; import org.exist.xquery.value.Sequence; Index: FunBaseURI.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/functions/FunBaseURI.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FunBaseURI.java 28 May 2004 10:54:09 -0000 1.2 --- FunBaseURI.java 3 Aug 2004 16:47:37 -0000 1.3 *************** *** 27,32 **** import org.exist.xquery.Function; import org.exist.xquery.FunctionSignature; - import org.exist.xquery.XQueryContext; import org.exist.xquery.XPathException; import org.exist.xquery.value.Item; import org.exist.xquery.value.Sequence; --- 27,32 ---- import org.exist.xquery.Function; import org.exist.xquery.FunctionSignature; import org.exist.xquery.XPathException; + import org.exist.xquery.XQueryContext; import org.exist.xquery.value.Item; import org.exist.xquery.value.Sequence; |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:47:49
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/storage/io/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25409/src/org/exist/storage/io/test Modified Files: VariableByteStreamTest.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: VariableByteStreamTest.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/storage/io/test/VariableByteStreamTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** VariableByteStreamTest.java 3 May 2004 13:01:35 -0000 1.1 --- VariableByteStreamTest.java 3 Aug 2004 16:47:37 -0000 1.2 *************** *** 1,10 **** package org.exist.storage.io.test; - import junit.framework.TestCase; - import java.io.EOFException; import java.io.IOException; import java.util.Random; import org.exist.storage.io.VariableByteArrayInput; import org.exist.storage.io.VariableByteOutputStream; --- 1,10 ---- package org.exist.storage.io.test; import java.io.EOFException; import java.io.IOException; import java.util.Random; + import junit.framework.TestCase; + import org.exist.storage.io.VariableByteArrayInput; import org.exist.storage.io.VariableByteOutputStream; |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:47:49
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25409/src/org/exist/xmldb/test Modified Files: IndexingTest.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: IndexingTest.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/test/IndexingTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IndexingTest.java 29 Feb 2004 20:09:24 -0000 1.2 --- IndexingTest.java 3 Aug 2004 16:47:34 -0000 1.3 *************** *** 1,21 **** package org.exist.xmldb.test; ! import org.xmldb.api.*; ! import org.xmldb.api.base.*; ! import org.xmldb.api.modules.*; ! import org.exist.xmldb.DatabaseInstanceManager; ! ! import java.io.*; import java.util.Random; ! import javax.xml.parsers.*; ! import javax.xml.transform.*; ! import javax.xml.transform.dom.*; ! import javax.xml.transform.sax.*; import junit.framework.TestCase; ! import org.xml.sax.*; ! import org.w3c.dom.*; /** Reproduce the EXistException "the document is too complex/irregularily structured --- 1,31 ---- package org.exist.xmldb.test; ! import java.io.ByteArrayInputStream; ! import java.io.UnsupportedEncodingException; import java.util.Random; ! import javax.xml.parsers.DocumentBuilder; ! import javax.xml.parsers.DocumentBuilderFactory; ! import javax.xml.transform.Transformer; ! import javax.xml.transform.TransformerConfigurationException; ! import javax.xml.transform.TransformerException; ! import javax.xml.transform.TransformerFactory; ! import javax.xml.transform.TransformerFactoryConfigurationError; ! import javax.xml.transform.dom.DOMSource; ! import javax.xml.transform.sax.SAXResult; import junit.framework.TestCase; ! import org.exist.xmldb.DatabaseInstanceManager; ! import org.w3c.dom.Document; ! import org.w3c.dom.Element; ! import org.w3c.dom.Node; ! import org.xml.sax.Attributes; ! import org.xml.sax.ContentHandler; ! import org.xml.sax.Locator; ! import org.xmldb.api.DatabaseManager; ! import org.xmldb.api.base.Collection; ! import org.xmldb.api.base.Database; ! import org.xmldb.api.modules.XMLResource; /** Reproduce the EXistException "the document is too complex/irregularily structured |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:46:27
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xmldb In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25039/src/org/exist/xmldb Modified Files: LocalCollection.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: LocalCollection.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/LocalCollection.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** LocalCollection.java 3 Aug 2004 15:25:57 -0000 1.37 --- LocalCollection.java 3 Aug 2004 16:45:45 -0000 1.38 *************** *** 39,42 **** --- 39,43 ---- import org.exist.Indexer; import org.exist.collections.Collection; + import org.exist.collections.IndexInfo; import org.exist.collections.triggers.TriggerException; import org.exist.dom.BinaryDocument; *************** *** 569,573 **** DocumentImpl newDoc; Collection collection = broker.openCollection(path, Lock.WRITE_LOCK); ! Indexer indexer = null; try { if(collection == null) --- 570,574 ---- DocumentImpl newDoc; Collection collection = broker.openCollection(path, Lock.WRITE_LOCK); ! IndexInfo info = null; try { if(collection == null) *************** *** 579,594 **** } if (uri != null) { ! indexer = collection.validate(broker, name, new InputSource(uri)); } else if (res.root != null) ! newDoc = collection.addDocument(broker, name, res.root); else ! indexer = collection.validate(broker, name, res.content); } finally { collection.release(); } if (uri != null) { ! collection.store(broker, indexer, new InputSource(uri), false); ! } else ! collection.store(broker, indexer, res.content, false); collection.deleteObservers(); } catch (Exception e) { --- 580,598 ---- } if (uri != null) { ! info = collection.validate(broker, name, new InputSource(uri)); } else if (res.root != null) ! info = collection.validate(broker, name, res.root); else ! info = collection.validate(broker, name, res.content); } finally { collection.release(); } if (uri != null) { ! collection.store(broker, info, new InputSource(uri), false); ! } else if (res.root != null) { ! collection.store(broker, info, res.root, false); ! } else { ! collection.store(broker, info, res.content, false); ! } collection.deleteObservers(); } catch (Exception e) { |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:46:27
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25039/src/org/exist/xmldb/test Modified Files: ResourceTest.java AllTests.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: AllTests.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/test/AllTests.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** AllTests.java 9 Jul 2004 16:44:41 -0000 1.4 --- AllTests.java 3 Aug 2004 16:45:45 -0000 1.5 *************** *** 11,15 **** suite.addTest(new TestSuite(CreateCollectionsTest.class)); suite.addTest(new TestSuite(ResourceTest.class)); ! suite.addTest(new TestSuite(ResourceSetTest.class)); suite.addTest(new TestSuite(TestEXistXMLSerialize.class)); //$JUnit-END$ --- 11,15 ---- suite.addTest(new TestSuite(CreateCollectionsTest.class)); suite.addTest(new TestSuite(ResourceTest.class)); ! // suite.addTest(new TestSuite(ResourceSetTest.class)); suite.addTest(new TestSuite(TestEXistXMLSerialize.class)); //$JUnit-END$ Index: ResourceTest.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmldb/test/ResourceTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ResourceTest.java 15 Jul 2004 19:43:23 -0000 1.9 --- ResourceTest.java 3 Aug 2004 16:45:44 -0000 1.10 *************** *** 24,28 **** import org.xmldb.api.base.Database; import org.xmldb.api.base.XMLDBException; - import org.xmldb.api.modules.CollectionManagementService; import org.xmldb.api.modules.XMLResource; --- 24,27 ---- *************** *** 76,88 **** assertNotNull(elem); assertEquals(elem.getNodeName(), "PLAY"); ! System.out.println("root element: " + elem.getNodeName()); NodeList children = elem.getChildNodes(); Node node; for (int i = 0; i < children.getLength(); i++) { node = children.item(i); assertNotNull(node); node = node.getFirstChild(); ! while((node = node.getNextSibling() ) != null) System.out.println("child: " + node.getNodeName()); } } catch (XMLDBException e) { --- 75,90 ---- assertNotNull(elem); assertEquals(elem.getNodeName(), "PLAY"); ! System.out.println("Root element: " + elem.getNodeName()); NodeList children = elem.getChildNodes(); Node node; for (int i = 0; i < children.getLength(); i++) { node = children.item(i); + System.out.println("Child: " + node.getNodeName()); assertNotNull(node); node = node.getFirstChild(); ! while(node != null) { System.out.println("child: " + node.getNodeName()); + node = node.getNextSibling(); + } } } catch (XMLDBException e) { *************** *** 216,219 **** --- 218,236 ---- } + protected void setUp() { + try { + // initialize driver + Class cl = Class.forName(DRIVER); + Database database = (Database) cl.newInstance(); + database.setProperty("create-database", "true"); + DatabaseManager.registerDatabase(database); + } catch (ClassNotFoundException e) { + } catch (InstantiationException e) { + } catch (IllegalAccessException e) { + } catch (XMLDBException e) { + e.printStackTrace(); + } + } + public static void main(String[] args) { junit.textui.TestRunner.run(ResourceTest.class); |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:46:27
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/http/webdav/methods In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25039/src/org/exist/http/webdav/methods Modified Files: Copy.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: Copy.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/http/webdav/methods/Copy.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Copy.java 3 Aug 2004 15:25:58 -0000 1.2 --- Copy.java 3 Aug 2004 16:45:45 -0000 1.3 *************** *** 39,42 **** --- 39,43 ---- import org.exist.storage.BrokerPool; import org.exist.storage.DBBroker; + import org.exist.util.Lock; import org.exist.util.LockException; *************** *** 109,115 **** DBBroker broker = null; Collection destCollection = null; try { broker = pool.get(user); ! destCollection = broker.getCollection(destination); if(destCollection == null) { response.sendError(HttpServletResponse.SC_CONFLICT, --- 110,117 ---- DBBroker broker = null; Collection destCollection = null; + Collection sourceCollection = null; try { broker = pool.get(user); ! destCollection = broker.openCollection(destination, Lock.WRITE_LOCK); if(destCollection == null) { response.sendError(HttpServletResponse.SC_CONFLICT, *************** *** 117,120 **** --- 119,128 ---- return; } + String sourcePath = resource.getName(); + int pos = sourcePath.lastIndexOf('/'); + String collName = sourcePath.substring(0, pos); + String docName = sourcePath.substring(pos + 1); + sourceCollection = broker.openCollection(collName, Lock.READ_LOCK); + DocumentImpl oldDoc = destCollection.getDocument(broker, newResourceName); if(oldDoc != null) { *************** *** 139,142 **** --- 147,152 ---- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } finally { + if(sourceCollection != null) + sourceCollection.release(); if(destCollection != null) destCollection.release(); |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:45:59
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xmlrpc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25039/src/org/exist/xmlrpc Modified Files: RpcConnection.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: RpcConnection.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xmlrpc/RpcConnection.java,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** RpcConnection.java 3 Aug 2004 15:26:00 -0000 1.64 --- RpcConnection.java 3 Aug 2004 16:45:46 -0000 1.65 *************** *** 52,55 **** --- 52,56 ---- import org.exist.Indexer; import org.exist.collections.Collection; + import org.exist.collections.IndexInfo; import org.exist.collections.triggers.TriggerException; import org.exist.dom.ArraySet; *************** *** 981,985 **** String docName = path.substring(p + 1); InputSource source; ! Indexer indexer; try { collection = broker.openCollection(collectionName, Lock.WRITE_LOCK); --- 982,986 ---- String docName = path.substring(p + 1); InputSource source; ! IndexInfo info; try { collection = broker.openCollection(collectionName, Lock.WRITE_LOCK); *************** *** 995,1004 **** InputStream is = new ByteArrayInputStream(xml); source = new InputSource(is); ! indexer = collection.validate(broker, docName, source); } finally { if(collection != null) collection.release(); } ! collection.store(broker, indexer, source, false); LOG.debug("parsing " + path + " took " + (System.currentTimeMillis() - startTime) + "ms."); --- 996,1005 ---- InputStream is = new ByteArrayInputStream(xml); source = new InputSource(is); ! info = collection.validate(broker, docName, source); } finally { if(collection != null) collection.release(); } ! collection.store(broker, info, source, false); LOG.debug("parsing " + path + " took " + (System.currentTimeMillis() - startTime) + "ms."); *************** *** 1039,1043 **** docName = docName.substring(p + 1); Collection collection = null; ! Indexer indexer; InputSource source; try { --- 1040,1044 ---- docName = docName.substring(p + 1); Collection collection = null; ! IndexInfo info; InputSource source; try { *************** *** 1059,1068 **** } source = new InputSource(uri); ! indexer = collection.validate(broker, docName, source); } finally { if(collection != null) collection.release(); } ! collection.store(broker, indexer, source, false); } finally { brokerPool.release(broker); --- 1060,1069 ---- } source = new InputSource(uri); ! info = collection.validate(broker, docName, source); } finally { if(collection != null) collection.release(); } ! collection.store(broker, info, source, false); } finally { brokerPool.release(broker); |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:45:59
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25039/src/org/exist Modified Files: Indexer.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: Indexer.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/Indexer.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Indexer.java 3 Aug 2004 15:26:00 -0000 1.14 --- Indexer.java 3 Aug 2004 16:45:45 -0000 1.15 *************** *** 57,61 **** import org.xml.sax.SAXNotSupportedException; import org.xml.sax.SAXParseException; - import org.xml.sax.XMLReader; import org.xml.sax.ext.LexicalHandler; --- 57,60 ---- *************** *** 81,85 **** protected DocumentImpl document = null; ! protected XMLReader reader = null; protected boolean insideDTD = false; protected boolean validate = false; --- 80,84 ---- protected DocumentImpl document = null; ! protected boolean insideDTD = false; protected boolean validate = false; *************** *** 153,164 **** this.validate = validate; } - - public void setReader(XMLReader reader) { - this.reader = reader; - } - - public XMLReader getReader() { - return this.reader; - } /** --- 152,155 ---- |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:45:59
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/storage/store In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25039/src/org/exist/storage/store Modified Files: DOMFile.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: DOMFile.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/storage/store/DOMFile.java,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** DOMFile.java 3 Aug 2004 15:35:14 -0000 1.45 --- DOMFile.java 3 Aug 2004 16:45:46 -0000 1.46 *************** *** 798,803 **** final long address = findNode(n, node.gid, iter); if(address == 0) { ! if(LOG.isDebugEnabled()) ! LOG.debug("Node data location not found for node " + node.gid); return KEY_NOT_FOUND; } else --- 798,803 ---- final long address = findNode(n, node.gid, iter); if(address == 0) { ! // if(LOG.isDebugEnabled()) ! // LOG.debug("Node data location not found for node " + node.gid); return KEY_NOT_FOUND; } else |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:45:59
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/collections In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25039/src/org/exist/collections Modified Files: Collection.java Added Files: IndexInfo.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. --- NEW FILE: IndexInfo.java --- /* * eXist Open Source Native XML Database * Copyright (C) 2000-04, Wolfgang M. Meier (wol...@ex...) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id: IndexInfo.java,v 1.1 2004/08/03 16:45:46 wolfgang_m Exp $ */ package org.exist.collections; import org.exist.Indexer; import org.exist.util.serializer.DOMStreamer; import org.xml.sax.XMLReader; /** * Internal class used to track some required fields when calling * {@link org.exist.collections.Collection#validate(DBBroker, String, Node)} and * {@link org.exist.collections.Collection#store(DBBroker, IndexInfo, Node, boolean)}. * This class is not publicly readable. * * @author wolf */ public class IndexInfo { protected Indexer indexer; protected XMLReader reader = null; protected DOMStreamer streamer = null; protected IndexInfo(Indexer indexer) { this.indexer = indexer; } protected Indexer getIndexer() { return indexer; } protected void setReader(XMLReader reader) { this.reader = reader; } protected XMLReader getReader() { return this.reader; } public void setDOMStreamer(DOMStreamer streamer) { this.streamer = streamer; } public DOMStreamer getDOMStreamer() { return this.streamer; } } Index: Collection.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/collections/Collection.java,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** Collection.java 3 Aug 2004 15:25:58 -0000 1.44 --- Collection.java 3 Aug 2004 16:45:46 -0000 1.45 *************** *** 764,768 **** } ! public Indexer validate(DBBroker broker, String name, InputSource source) throws EXistException, PermissionDeniedException, TriggerException, SAXException, LockException { --- 764,768 ---- } ! public IndexInfo validate(DBBroker broker, String name, InputSource source) throws EXistException, PermissionDeniedException, TriggerException, SAXException, LockException { *************** *** 781,785 **** } ! public void store(DBBroker broker, Indexer indexer, InputSource source, boolean privileged) throws EXistException, PermissionDeniedException, TriggerException, SAXException, LockException { --- 781,785 ---- } ! public void store(DBBroker broker, IndexInfo info, InputSource source, boolean privileged) throws EXistException, PermissionDeniedException, TriggerException, SAXException, LockException { *************** *** 798,806 **** } // second pass: store the document DocumentImpl document = indexer.getDocument(); LOG.debug("storing document " + document.getDocId() + "; " + document.getFileName() + " ..."); try { try { ! indexer.getReader().parse(source); } catch (IOException e) { throw new EXistException(e); --- 798,807 ---- } // second pass: store the document + Indexer indexer = info.getIndexer(); DocumentImpl document = indexer.getDocument(); LOG.debug("storing document " + document.getDocId() + "; " + document.getFileName() + " ..."); try { try { ! info.getReader().parse(source); } catch (IOException e) { throw new EXistException(e); *************** *** 831,835 **** } ! public Indexer validate(DBBroker broker, String name, String data) throws EXistException, PermissionDeniedException, TriggerException, SAXException, LockException { --- 832,836 ---- } ! public IndexInfo validate(DBBroker broker, String name, String data) throws EXistException, PermissionDeniedException, TriggerException, SAXException, LockException { *************** *** 850,854 **** } ! public void store(DBBroker broker, Indexer indexer, String data, boolean privileged) throws EXistException, PermissionDeniedException, TriggerException, SAXException, LockException { --- 851,855 ---- } ! public void store(DBBroker broker, IndexInfo info, String data, boolean privileged) throws EXistException, PermissionDeniedException, TriggerException, SAXException, LockException { *************** *** 856,864 **** // second pass: store the document DocumentImpl document = indexer.getDocument(); LOG.debug("storing document " + document.getDocId() + " ..."); try { try { ! indexer.getReader().parse(source); } catch (IOException e) { throw new EXistException(e); --- 857,866 ---- // second pass: store the document + Indexer indexer = info.getIndexer(); DocumentImpl document = indexer.getDocument(); LOG.debug("storing document " + document.getDocId() + " ..."); try { try { ! info.getReader().parse(source); } catch (IOException e) { throw new EXistException(e); *************** *** 890,893 **** --- 892,1011 ---- } + public IndexInfo validate(DBBroker broker, String name, Node node) + throws EXistException, PermissionDeniedException, TriggerException, + SAXException, LockException { + if (broker.isReadOnly()) + throw new PermissionDeniedException("Database is read-only"); + DocumentImpl document, oldDoc = null; + try { + lock.acquire(Lock.WRITE_LOCK); + oldDoc = getDocument(broker, name); + document = new DocumentImpl(broker, name, this); + + checkPermissions(broker, name, oldDoc); + + manageDocumentInformation(broker, name, oldDoc, document ); + + Trigger trigger = setupTriggers(broker, name, oldDoc); + + Indexer indexer = new Indexer(broker); + IndexInfo info = new IndexInfo(indexer); + indexer.setDocument(document); + + addObserversToIndexer(broker, indexer); + indexer.setValidating(true); + DOMStreamer streamer = new DOMStreamer(); + info.setDOMStreamer(streamer); + if (trigger != null && triggersEnabled) { + streamer.setContentHandler(trigger.getInputHandler()); + streamer.setLexicalHandler(trigger.getLexicalInputHandler()); + trigger.setOutputHandler(indexer); + trigger.setValidating(true); + // prepare the trigger + trigger.prepare(oldDoc == null + ? Trigger.STORE_DOCUMENT_EVENT + : Trigger.UPDATE_DOCUMENT_EVENT, broker, name, oldDoc); + } else { + streamer.setContentHandler(indexer); + streamer.setLexicalHandler(indexer); + } + + // first pass: parse the document to determine tree structure + LOG.debug("validating document " + name); + streamer.serialize(node, true); + document.setMaxDepth(document.getMaxDepth() + 1); + document.calculateTreeLevelStartPoints(); + // new document is valid: remove old document + if (oldDoc != null) { + LOG.debug("removing old document " + oldDoc.getFileName()); + if (oldDoc.getResourceType() == DocumentImpl.BINARY_FILE) + broker.removeBinaryResource((BinaryDocument) oldDoc); + else + broker.removeDocument(oldDoc, false); + oldDoc.copyOf(document); + indexer.setDocumentObject(oldDoc); + document = oldDoc; + } else { + document.getUpdateLock().acquire(Lock.WRITE_LOCK); + document.setDocId(broker.getNextDocId(this)); + } + + indexer.setValidating(false); + if (trigger != null) + trigger.setValidating(false); + return info; + } catch(EXistException e) { + if(oldDoc != null) oldDoc.getUpdateLock().release(Lock.WRITE_LOCK); + throw e; + } catch(SAXException e) { + if(oldDoc != null) oldDoc.getUpdateLock().release(Lock.WRITE_LOCK); + throw e; + } catch(PermissionDeniedException e) { + if(oldDoc != null) oldDoc.getUpdateLock().release(Lock.WRITE_LOCK); + throw e; + } catch(TriggerException e) { + if(oldDoc != null) oldDoc.getUpdateLock().release(Lock.WRITE_LOCK); + throw e; + } finally { + lock.release(); + } + } + + public void store(DBBroker broker, IndexInfo info, Node node, boolean privileged) + throws EXistException, PermissionDeniedException, TriggerException, + SAXException, LockException { + // second pass: store the document + Indexer indexer = info.getIndexer(); + DocumentImpl document = indexer.getDocument(); + LOG.debug("storing document " + document.getDocId() + " ..."); + DOMStreamer streamer = info.getDOMStreamer(); + try { + streamer.serialize(node, true); + + if(!hasDocument(document.getFileName())) { + addDocument(broker, document); + broker.addDocument(this, document); + } else { + broker.updateDocument(document); + } + broker.closeDocument(); + broker.flush(); + // broker.checkTree(document); + LOG.debug("document stored."); + // if we are running in privileged mode (e.g. backup/restore) + // notify the SecurityManager about changes + if (getName().equals(SecurityManager.SYSTEM) && document.getFileName().equals(SecurityManager.ACL_FILE) + && privileged == false) { + // inform the security manager that system data has changed + LOG.debug("users.xml changed"); + broker.getBrokerPool().reloadSecurityManager(broker); + } + } finally { + document.getUpdateLock().release(Lock.WRITE_LOCK); + } + broker.deleteObservers(); + return; + } + public DocumentImpl addDocument(DBBroker broker, String name, String data) throws EXistException, PermissionDeniedException, TriggerException, *************** *** 914,919 **** // first pass: parse the document to determine tree structure ! Indexer indexer = determineTreeStructure(broker, name, document, oldDoc, reader, source); ! document = indexer.getDocument(); } finally { lock.release(); --- 1032,1037 ---- // first pass: parse the document to determine tree structure ! IndexInfo info = determineTreeStructure(broker, name, document, oldDoc, reader, source); ! document = info.getIndexer().getDocument(); } finally { lock.release(); *************** *** 971,975 **** * @throws TriggerException */ ! private Indexer determineTreeStructure(DBBroker broker, String name, DocumentImpl document, DocumentImpl oldDoc, XMLReader reader, InputSource source) throws LockException, EXistException, SAXException, PermissionDeniedException, TriggerException { try { checkPermissions(broker, name, oldDoc); --- 1089,1093 ---- * @throws TriggerException */ ! private IndexInfo determineTreeStructure(DBBroker broker, String name, DocumentImpl document, DocumentImpl oldDoc, XMLReader reader, InputSource source) throws LockException, EXistException, SAXException, PermissionDeniedException, TriggerException { try { checkPermissions(broker, name, oldDoc); *************** *** 979,986 **** Trigger trigger = setupTriggers(broker, name, oldDoc); Indexer indexer = new Indexer(broker); indexer.setDocument(document); addObserversToIndexer(broker, indexer); ! prepareSAXParser(broker, name, oldDoc, trigger, indexer, reader ); // first pass: parse the document to determine tree structure --- 1097,1105 ---- Trigger trigger = setupTriggers(broker, name, oldDoc); Indexer indexer = new Indexer(broker); + IndexInfo info = new IndexInfo(indexer); indexer.setDocument(document); addObserversToIndexer(broker, indexer); ! prepareSAXParser(broker, name, oldDoc, trigger, info, reader ); // first pass: parse the document to determine tree structure *************** *** 1014,1018 **** if (trigger != null) trigger.setValidating(false); ! return indexer; } catch(EXistException e) { if(oldDoc != null) oldDoc.getUpdateLock().release(Lock.WRITE_LOCK); --- 1133,1137 ---- if (trigger != null) trigger.setValidating(false); ! return info; } catch(EXistException e) { if(oldDoc != null) oldDoc.getUpdateLock().release(Lock.WRITE_LOCK); *************** *** 1044,1049 **** */ private void prepareSAXParser(DBBroker broker, String name, DocumentImpl oldDoc, ! Trigger trigger, Indexer indexer, XMLReader reader) throws EXistException, SAXException, SAXNotRecognizedException, SAXNotSupportedException, TriggerException { //XMLReader reader; indexer.setValidating(true); // reader = getReader(broker); --- 1163,1169 ---- */ private void prepareSAXParser(DBBroker broker, String name, DocumentImpl oldDoc, ! Trigger trigger, IndexInfo info, XMLReader reader) throws EXistException, SAXException, SAXNotRecognizedException, SAXNotSupportedException, TriggerException { //XMLReader reader; + Indexer indexer = info.getIndexer(); indexer.setValidating(true); // reader = getReader(broker); *************** *** 1070,1074 **** } reader.setErrorHandler(indexer); ! indexer.setReader(reader); //return reader; } --- 1190,1194 ---- } reader.setErrorHandler(indexer); ! info.setReader(reader); //return reader; } *************** *** 1170,1175 **** // first pass: parse the document to determine tree structure ! Indexer indexer = determineTreeStructure(broker, name, document, oldDoc, reader, source); ! document = indexer.getDocument(); } finally { lock.release(); --- 1290,1295 ---- // first pass: parse the document to determine tree structure ! IndexInfo info = determineTreeStructure(broker, name, document, oldDoc, reader, source); ! document = info.getIndexer().getDocument(); } finally { lock.release(); |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 16:45:59
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/storage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25039/src/org/exist/storage Modified Files: NativeBroker.java Log Message: All the addDocument methods in org.exist.collections.Collection have been split into two method calls: validate + store. Background: while locking the collection is necessary during validation, this is not really required while the document is being stored. The caller can thus release the lock after validate has completed. Index: NativeBroker.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/storage/NativeBroker.java,v retrieving revision 1.93 retrieving revision 1.94 diff -C2 -d -r1.93 -r1.94 *** NativeBroker.java 3 Aug 2004 15:36:07 -0000 1.93 --- NativeBroker.java 3 Aug 2004 16:45:47 -0000 1.94 *************** *** 1620,1627 **** Value val = domDb.get(new NodeProxy((DocumentImpl) doc, gid)); if (val == null) { ! if(LOG.isDebugEnabled()) { ! LOG.debug("node " + gid + " not found in document " + ((DocumentImpl)doc).getDocId()); ! Thread.dumpStack(); ! } return null; } --- 1620,1627 ---- Value val = domDb.get(new NodeProxy((DocumentImpl) doc, gid)); if (val == null) { ! // if(LOG.isDebugEnabled()) { ! // LOG.debug("node " + gid + " not found in document " + ((DocumentImpl)doc).getDocId()); ! // Thread.dumpStack(); ! // } return null; } |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 15:36:16
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/storage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10023/src/org/exist/storage Modified Files: NativeBroker.java Log Message: Commented out debug output. Index: NativeBroker.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/storage/NativeBroker.java,v retrieving revision 1.92 retrieving revision 1.93 diff -C2 -d -r1.92 -r1.93 *** NativeBroker.java 3 Aug 2004 15:25:58 -0000 1.92 --- NativeBroker.java 3 Aug 2004 15:36:07 -0000 1.93 *************** *** 2455,2459 **** } doc.setAddress(domDb.add(data)); ! LOG.debug("Document metadata stored to " + StorageAddress.toString(doc.getAddress())); return null; } --- 2455,2459 ---- } doc.setAddress(domDb.add(data)); ! // LOG.debug("Document metadata stored to " + StorageAddress.toString(doc.getAddress())); return null; } |
From: Wolfgang M. M. <wol...@us...> - 2004-08-03 15:35:23
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/storage/store In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9848/src/org/exist/storage/store Modified Files: DOMFile.java Log Message: Commented out debug output. Index: DOMFile.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/storage/store/DOMFile.java,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** DOMFile.java 3 Aug 2004 15:25:59 -0000 1.44 --- DOMFile.java 3 Aug 2004 15:35:14 -0000 1.45 *************** *** 1192,1200 **** public void removeAll(long p) { ! StringBuffer debug = new StringBuffer(); ! debug.append("Removed pages: "); long pnum = StorageAddress.pageFromPointer(p); while(-1 < pnum) { ! debug.append(' ').append(pnum); DOMPage page = getCurrentPage(pnum); pnum = page.getPageHeader().getNextDataPage(); --- 1192,1200 ---- public void removeAll(long p) { ! // StringBuffer debug = new StringBuffer(); ! // debug.append("Removed pages: "); long pnum = StorageAddress.pageFromPointer(p); while(-1 < pnum) { ! // debug.append(' ').append(pnum); DOMPage page = getCurrentPage(pnum); pnum = page.getPageHeader().getNextDataPage(); *************** *** 1213,1217 **** } } ! LOG.debug(debug.toString()); } --- 1213,1217 ---- } } ! // LOG.debug(debug.toString()); } |