From: Wolfgang M. M. <wol...@us...> - 2004-06-08 08:16:53
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/soap In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29485/src/org/exist/soap Modified Files: AdminSoapBindingImpl.java QuerySoapBindingImpl.java Log Message: * Resolved concurrency conflicts when accessing a collection: avoid dirty reads on the old document while it is being replaced. * The index settings specified in the configuration are now also applied to reindexed document fragments during an XUpdate. * Removed unnecessary data from org.exist.dom.DocumentImpl to reduce its in memory size. * Deferred addition of new documents to collection: when adding a large number of documents, keeping the actual document objects in memory slows down the indexing process. Class Collection now just remembers the document name, not the object itself. Index: QuerySoapBindingImpl.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/soap/QuerySoapBindingImpl.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** QuerySoapBindingImpl.java 1 Apr 2004 14:12:46 -0000 1.20 --- QuerySoapBindingImpl.java 8 Jun 2004 08:16:10 -0000 1.21 *************** *** 389,395 **** ArraySet hitsByDoc = new ArraySet(50); NodeProxy p; for (Iterator i = ((NodeSet) resultSet).iterator(); i.hasNext();) { p = (NodeProxy) i.next(); ! if (p.doc.getFileName().equals(docPath)) hitsByDoc.add(p); } --- 389,397 ---- ArraySet hitsByDoc = new ArraySet(50); NodeProxy p; + String path; for (Iterator i = ((NodeSet) resultSet).iterator(); i.hasNext();) { p = (NodeProxy) i.next(); ! path = p.doc.getCollection().getName() + '/' + p.doc.getFileName(); ! if (path.equals(docPath)) hitsByDoc.add(p); } Index: AdminSoapBindingImpl.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/soap/AdminSoapBindingImpl.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** AdminSoapBindingImpl.java 25 May 2004 09:26:07 -0000 1.13 --- AdminSoapBindingImpl.java 8 Jun 2004 08:16:10 -0000 1.14 *************** *** 122,126 **** throw new EXistException( "Collection " + collectionName + " not found"); ! DocumentImpl doc = collection.getDocument(path); if(doc == null) throw new EXistException("Document " + docName + " not found"); --- 122,126 ---- throw new EXistException( "Collection " + collectionName + " not found"); ! DocumentImpl doc = collection.getDocument(broker, docName); if(doc == null) throw new EXistException("Document " + docName + " not found"); *************** *** 158,162 **** throw new EXistException("Collection " + collectionName + " not found"); if(!replace) { ! DocumentImpl old = collection.getDocument(path); if(old != null) throw new RemoteException("Document exists and overwrite is not allowed"); --- 158,162 ---- throw new EXistException("Collection " + collectionName + " not found"); if(!replace) { ! DocumentImpl old = collection.getDocument(broker, path); if(old != null) throw new RemoteException("Document exists and overwrite is not allowed"); |