You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(22) |
Nov
(85) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(47) |
Feb
(127) |
Mar
(268) |
Apr
(78) |
May
(47) |
Jun
(38) |
Jul
(131) |
Aug
(221) |
Sep
(187) |
Oct
(54) |
Nov
(111) |
Dec
(84) |
2011 |
Jan
(152) |
Feb
(106) |
Mar
(94) |
Apr
(90) |
May
(53) |
Jun
(20) |
Jul
(24) |
Aug
(37) |
Sep
(32) |
Oct
(70) |
Nov
(22) |
Dec
(15) |
2012 |
Jan
(33) |
Feb
(110) |
Mar
(24) |
Apr
(1) |
May
(11) |
Jun
(8) |
Jul
(12) |
Aug
(37) |
Sep
(39) |
Oct
(81) |
Nov
(38) |
Dec
(50) |
2013 |
Jan
(23) |
Feb
(53) |
Mar
(23) |
Apr
(5) |
May
(19) |
Jun
(16) |
Jul
(16) |
Aug
(9) |
Sep
(21) |
Oct
(1) |
Nov
(2) |
Dec
(8) |
2014 |
Jan
(16) |
Feb
(6) |
Mar
(27) |
Apr
(1) |
May
(10) |
Jun
(1) |
Jul
(4) |
Aug
(10) |
Sep
(19) |
Oct
(22) |
Nov
(4) |
Dec
(6) |
2015 |
Jan
(3) |
Feb
(6) |
Mar
(9) |
Apr
|
May
(11) |
Jun
(23) |
Jul
(14) |
Aug
(10) |
Sep
(10) |
Oct
(9) |
Nov
(18) |
Dec
(4) |
2016 |
Jan
(5) |
Feb
(5) |
Mar
|
Apr
(2) |
May
(15) |
Jun
(2) |
Jul
(8) |
Aug
(2) |
Sep
(6) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
(2) |
Feb
(12) |
Mar
(22) |
Apr
(6) |
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(5) |
Oct
(2) |
Nov
|
Dec
|
2018 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
(3) |
Aug
|
Sep
(7) |
Oct
(19) |
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Wolfgang M. <wol...@ex...> - 2011-05-06 15:04:33
|
> We doing a Teleconf today? I'm ready! There were no plans. Do you have any items to discuss? Wolfgang |
From: Patrick B. <pat...@jo...> - 2011-05-06 15:03:01
|
We doing a Teleconf today? I'm ready! On Fri, Apr 29, 2011 at 7:29 AM, Adam Retter <ad...@ex...> wrote: > Does anyone want to speak, discuss a topic or ask questions in a > Teleconference this evening at 5pm CEST? > > Thanks Adam. > > -- > Adam Retter > > eXist Developer > { United Kingdom } > ad...@ex... > irc://irc.freenode.net/existdb > > > ------------------------------------------------------------------------------ > WhatsUp Gold - Download Free Network Management Software > The most intuitive, comprehensive, and cost-effective network > management toolset available today. Delivers lowest initial > acquisition cost and overall TCO of any competing solution. > http://p.sf.net/sfu/whatsupgold-sd > _______________________________________________ > Exist-development mailing list > Exi...@li... > https://lists.sourceforge.net/lists/listinfo/exist-development > -- Patrick Bosek Jorsek Software Cell (585) 820 9634 Office (585) 239 6060 Jorsek.com |
From: Loren C. <lor...@gm...> - 2011-05-05 18:47:00
|
I am receiving the following error while restoring from a backed up database. The error message at the very least should indicate what resource is being stored that is failing. org.xmldb.api.base.XMLDBException: Failed to invoke method parse in class org.exist.xmlrpc.RpcConnection: org.xml.sax.SAXParseException: The string "--" is not permitted within comments. at org.exist.xmldb.RemoteCollection.store(RemoteCollection.java:527) at org.exist.xmldb.RemoteCollection.storeResource(RemoteCollection.java:492) at org.exist.backup.Restore.startElement(Restore.java:454) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.exist.backup.Restore$1.run(Restore.java:200) Caused by: org.apache.xmlrpc.XmlRpcException: Failed to invoke method parse in class org.exist.xmlrpc.RpcConnection: org.xml.sax.SAXParseException: The string "--" is not permitted within comments. at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197) at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156) at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143) at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69) at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147) at org.exist.xmldb.RemoteCollection.store(RemoteCollection.java:525) ... 13 more [B@32be8e12org.apache.xmlrpc.XmlRpcException: Failed to invoke method parse in class org.exist.xmlrpc.RpcConnection: org.xml.sax.SAXParseException: The string "--" is not permitted within comments. at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197) at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156) at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143) at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69) at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147) at org.exist.xmldb.RemoteCollection.store(RemoteCollection.java:525) at org.exist.xmldb.RemoteCollection.storeResource(RemoteCollection.java:492) at org.exist.backup.Restore.startElement(Restore.java:454) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.exist.backup.Restore$1.run(Restore.java:200) Caused by: org.apache.xmlrpc.XmlRpcException: Failed to invoke method parse in class org.exist.xmlrpc.RpcConnection: org.xml.sax.SAXParseException: The string "--" is not permitted within comments. at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197) at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156) at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143) at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69) at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158) at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147) at org.exist.xmldb.RemoteCollection.store(RemoteCollection.java:525) at org.exist.xmldb.RemoteCollection.storeResource(RemoteCollection.java:492) at org.exist.backup.Restore.startElement(Restore.java:454) at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source) at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.exist.backup.Restore$1.run(Restore.java:200) |
From: Dannes W. <da...@ex...> - 2011-05-04 19:39:41
|
On 4 May 2011, at 20:38 , Pierrick Brihaye wrote: > This is the point. The previous parser used to work... > > Any way to use another parser or to set the namespace feature ? I had a look at the code some time ago, I am not sure if they do some special things there. There are not too many resources on the project that provide a clue... in FunGMLProducers.java we need to figure out how we can pass a XMLFilterImpl object to the indexWorker#streamGeometryToElement method.... need to dive deeper inthis...... http://svn.geotools.org/tags/geoserver-1.7.0-beta1/modules/library/main/src/main/java/org/geotools/xml/transform/TransformerBase.java :-( D. -- Dannes Wessels eXist-db Open Source Native XML Database e: da...@ex... w: http://www.exist-db.org |
From: Casey J. <cas...@jo...> - 2011-05-04 19:11:13
|
Community, As many of you know, our company provides a SaaS authoring and component content management system built on eXist called easyDITA. DITA is a OASIS XML standard for various types of technical documentation and publishing. DITA adoption has been rapidly increasing in recent years because of the standardization of the community as well as development of tools around the standard to produce many types of documentation output from a single source. (There are a lot of benefits of DITA, but I won't go into them here) Our software is completely web based and handles many aspects of component content management, collaboration, ticketing/workflow, and also has a fully validating WYSIWYG editor for working with DITA. It also interoperates well with oXygen, which has the ability to author DITA content as well. These features may be very useful to the community because it allows technical and non-technical alike to author robust XML based documentation, re-use content, collaborate, manage document lifecycle and publish to various formats/platforms. You can find out more about our product at http://easydita.com So that all being said, as a gesture of our appreciation to the eXist community, we would be happy to offer a subscription of our SaaS free for eXist documentation project. I can provide more details if the team is interested. Cheers, Casey On Wed, May 4, 2011 at 11:16 AM, Adam Retter <ad...@ex...> wrote: > > 1. How is this issue of CSS and the "new design" related to the > > project to revise documentation? (I'm not saying there should be no > > overlap - perhaps this makes perfect sense to do before the > > documentation review begins. I just haven't seen anyone explain why > > it suddenly came up here in the thread about documentation.) > > Its not related. The documentation should be done first, it is > completely distinct from the design. > > > 2. Is the discussion about documentation going on here in > > exist-development or off-list? I think it's best to keep important > > matters discussed in the list, otherwise people will miss important > > details. In keeping with that, let me suggest that google docs are > > sent out shouldn't be closed to a group but should be open to all, > > with notifications about them here. > > Should be mostly here. > > > I also found this very good example of how docbook can be used to > produce well structured documentation - > > Explanation of their docbook construction and rules - > > http://anonsvn.jboss.org/repos/hibernate/core/trunk/documentation/manual/README > > Docbook build to produce, html one page, html seperate pages and pdf, > in multiple languages - > > http://anonsvn.jboss.org/repos/hibernate/core/trunk/documentation/manual/pom.xml > > Actual docbook files - > > http://anonsvn.jboss.org/repos/hibernate/core/trunk/documentation/manual/src/main/docbook/en-US/ > > > > -- > Adam Retter > > eXist Developer > { United Kingdom } > ad...@ex... > irc://irc.freenode.net/existdb > > > ------------------------------------------------------------------------------ > WhatsUp Gold - Download Free Network Management Software > The most intuitive, comprehensive, and cost-effective network > management toolset available today. Delivers lowest initial > acquisition cost and overall TCO of any competing solution. > http://p.sf.net/sfu/whatsupgold-sd > _______________________________________________ > Exist-development mailing list > Exi...@li... > https://lists.sourceforge.net/lists/listinfo/exist-development > -- -- Casey Jordan easyDITA a product of Jorsek LLC "CaseyDJordan" on LinkedIn, Twitter & Facebook Cell (585) 348 7399 Office (585) 239 6060 easydita.com This message is intended only for the use of the Addressee(s) and may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, please be advised that any disclosure copying, distribution, or use of the information contained herein is prohibited. If you have received this communication in error, please destroy all copies of the message, whether in electronic or hard copy format, as well as attachments, and immediately contact the sender by replying to this e-mail or by phone. Thank you. |
From: Pierrick B. <pie...@fr...> - 2011-05-04 18:38:28
|
Hi, Le 04/05/2011 20:30, Dannes Wessels a écrit : > log4j:WARN No such property [append] in org.apache.log4j.ConsoleAppender. > May 4, 2011 6:46:06 PM org.geotools.gml.SubHandlerPolygon create > WARNING: Topology Error building polygon > May 4, 2011 6:46:13 PM org.geotools.gml.SubHandlerPolygon create > WARNING: Topology Error building polygon Yes. There are a few polygons in the demo file that are not topologically correct. > Error > The SAX2 parser org.geotools.xml.transform.TransformerBase$XMLReaderSupport does not > support setting the 'namespaces' feature to true: Feature:http://xml.org/sax/features/namespaces > org.exist.xquery.XPathException: [source: String] > at org.exist.xquery.modules.spatial.FunGMLProducers.eval(FunGMLProducers.java:426) > at org.exist.xquery.BasicFunction.eval(BasicFunction.java:68) > at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:55) > at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) > ...... > at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906) > Caused by: org.exist.indexing.spatial.SpatialIndexException: net.sf.saxon.trans.XPathException: The SAX2 parser org.geotools.xml.transform.TransformerBase$XMLReaderSupport does not support setting the 'namespaces' feature to true This is the point. The previous parser used to work... Any way to use another parser or to set the namespace feature ? Cheers, p.b. |
From: Dannes W. <da...@ex...> - 2011-05-04 18:31:05
|
On 4 May 2011, at 8:22 , Dannes Wessels wrote: > I run the spatial tests by default, they all run fine except one; this > one is caused by the introduction of SAXON as default XSLT engine (for > betterForm ?) log4j:WARN No such property [append] in org.apache.log4j.ConsoleAppender. May 4, 2011 6:46:06 PM org.geotools.gml.SubHandlerPolygon create WARNING: Topology Error building polygon May 4, 2011 6:46:13 PM org.geotools.gml.SubHandlerPolygon create WARNING: Topology Error building polygon Error The SAX2 parser org.geotools.xml.transform.TransformerBase$XMLReaderSupport does not support setting the 'namespaces' feature to true: Feature: http://xml.org/sax/features/namespaces org.exist.xquery.XPathException: [source: String] at org.exist.xquery.modules.spatial.FunGMLProducers.eval(FunGMLProducers.java:426) at org.exist.xquery.BasicFunction.eval(BasicFunction.java:68) at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:55) at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:70) ...... at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906) Caused by: org.exist.indexing.spatial.SpatialIndexException: net.sf.saxon.trans.XPathException: The SAX2 parser org.geotools.xml.transform.TransformerBase$XMLReaderSupport does not support setting the 'namespaces' feature to true at org.exist.indexing.spatial.AbstractGMLJDBCIndexWorker.streamGeometryToElement(AbstractGMLJDBCIndexWorker.java:581) at org.exist.xquery.modules.spatial.FunGMLProducers.eval(FunGMLProducers.java:419) ... 35 more Caused by: net.sf.saxon.trans.XPathException: The SAX2 parser org.geotools.xml.transform.TransformerBase$XMLReaderSupport does not support setting the 'namespaces' feature to true at net.sf.saxon.event.Sender.configureParser(Sender.java:541) at net.sf.saxon.event.Sender.sendSAXSource(Sender.java:305) at net.sf.saxon.event.Sender.send(Sender.java:156) at net.sf.saxon.IdentityTransformer.transform(IdentityTransformer.java:32) at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:292) at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:125) at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:113) at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:154) at org.exist.indexing.spatial.AbstractGMLJDBCIndexWorker.streamGeometryToElement(AbstractGMLJDBCIndexWorker.java:579) ... 36 more Caused by: org.xml.sax.SAXNotRecognizedException: Feature: http://xml.org/sax/features/namespaces at org.xml.sax.helpers.XMLFilterImpl.setFeature(XMLFilterImpl.java:156) at net.sf.saxon.event.Sender.configureParser(Sender.java:535) ... 44 more -- Dannes Wessels eXist-db Open Source Native XML Database e: da...@ex... w: http://www.exist-db.org |
From: Loren C. <lor...@gm...> - 2011-05-04 15:45:37
|
Hello Dannes, Try clearing out the downloaded test data (extensions/indexes/spatial/test). The build for test will fail: spatial: prepare: [echo] Building index module: spatial [echo] Building into classes [echo] ------------------------------------ compile: [echo] Compiling with Java 1.6 from 1.6 source to 1.6 target, debug on, optimize on, deprecation off compile-tests: prepare-test-tresources: [mkdir] Created dir: /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/test/resources download-15385-SS7886-5i1: [get] Getting: http://www.ordnancesurvey.co.uk/docs/sample-data/os-mastermap-topography-layer-sample-data.gz [get] To: /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/test/resources/15385-SS7886-5i1.gz [get] http://www.ordnancesurvey.co.uk/docs/sample-data/os-mastermap-topography-layer-sample-data.gz moved to http://www.ordnancesurvey.co.uk/oswebsite/docs/sample-data/os-mastermap-topography-layer-sample-data.gz [get] http://www.ordnancesurvey.co.uk/oswebsite/docs/sample-data/os-mastermap-topography-layer-sample-data.gz moved to http://www.ordnancesurvey.co.uk/site/404.html [get] http://www.ordnancesurvey.co.uk/site/404.html moved to http://www.ordnancesurvey.co.uk/oswebsite/site/404.html [get] ................. [gunzip] Expanding /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/test/resources/15385-SS7886-5i1.gz to /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/test/resources/15385-SS7886-5i1.gml BUILD FAILED /Users/lcahlander/Documents/workspace/test/build/scripts/junit.xml:221: The following error occurred while executing this line: /Users/lcahlander/Documents/workspace/test/extensions/indexes/build.xml:2: The following error occurred while executing this line: /Users/lcahlander/Documents/workspace/test/extensions/indexes/build.xml:2: The following error occurred while executing this line: /Users/lcahlander/Documents/workspace/test/extensions/indexes/build.xml:2: The following error occurred while executing this line: /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/build.xml:67: The following error occurred while executing this line: /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/build.xml:76: Problem expanding gzip Not in GZIP format the file that is downloaded is not a GZIP file. It is a webpage with the title Sorry! We hope this doesn't spoil your experience of our site Their sample data has changed. You can find the current sample data at: http://www.ordnancesurvey.co.uk/oswebsite/products/try-now/sample-data.html The new sample data is at http://www.ordnancesurvey.co.uk/docs/sample-data/os-mastermap-topography-layer-sample-data.zip and contains a GML file Initial/58116-SX9192-2c1.gz I am wondering if we want to store a copy of the sample data that the tests use on demo.exist-db.org. We would probably need to get their permission for that. On May 4, 2011, at 1:22 AM, Dannes Wessels wrote: > Hi, > > On Wed, May 4, 2011 at 7:55 AM, Pierrick Brihaye > <pie...@fr...> wrote: >> What's wrong with the unit tests ? One of the them has been failing >> since the huge refactorings in winter 2009-2010. I'm afraid I wasn't >> lucid enough to fix the issue :-) > > I run the spatial tests by default, they all run fine except one; this > one is caused by the introduction of SAXON as default XSLT engine (for > betterForm ?) > > I agreed last week with LJO to reconsider the build process on > teamCity, I have some good ideas to improve the build a bit. In the > end, Maven could help us here. If we switch the spatial build to use > the "fetch" download task, we can easily enable the cache function of > that ant task so we can limit the overhead of downloading the > dependencies over and over again. > > 'll push it some this/next week....... > > D. > > -- > eXist-db Native XML Database - http://exist-db.org > Join us on linked-in: http://www.linkedin.com/groups?gid=35624 |
From: Adam R. <ad...@ex...> - 2011-05-04 15:16:23
|
> 1. How is this issue of CSS and the "new design" related to the > project to revise documentation? (I'm not saying there should be no > overlap - perhaps this makes perfect sense to do before the > documentation review begins. I just haven't seen anyone explain why > it suddenly came up here in the thread about documentation.) Its not related. The documentation should be done first, it is completely distinct from the design. > 2. Is the discussion about documentation going on here in > exist-development or off-list? I think it's best to keep important > matters discussed in the list, otherwise people will miss important > details. In keeping with that, let me suggest that google docs are > sent out shouldn't be closed to a group but should be open to all, > with notifications about them here. Should be mostly here. I also found this very good example of how docbook can be used to produce well structured documentation - Explanation of their docbook construction and rules - http://anonsvn.jboss.org/repos/hibernate/core/trunk/documentation/manual/README Docbook build to produce, html one page, html seperate pages and pdf, in multiple languages - http://anonsvn.jboss.org/repos/hibernate/core/trunk/documentation/manual/pom.xml Actual docbook files - http://anonsvn.jboss.org/repos/hibernate/core/trunk/documentation/manual/src/main/docbook/en-US/ -- Adam Retter eXist Developer { United Kingdom } ad...@ex... irc://irc.freenode.net/existdb |
From: Dannes W. <da...@ex...> - 2011-05-04 06:23:05
|
Hi, On Wed, May 4, 2011 at 7:55 AM, Pierrick Brihaye <pie...@fr...> wrote: > What's wrong with the unit tests ? One of the them has been failing > since the huge refactorings in winter 2009-2010. I'm afraid I wasn't > lucid enough to fix the issue :-) I run the spatial tests by default, they all run fine except one; this one is caused by the introduction of SAXON as default XSLT engine (for betterForm ?) I agreed last week with LJO to reconsider the build process on teamCity, I have some good ideas to improve the build a bit. In the end, Maven could help us here. If we switch the spatial build to use the "fetch" download task, we can easily enable the cache function of that ant task so we can limit the overhead of downloading the dependencies over and over again. 'll push it some this/next week....... D. -- eXist-db Native XML Database - http://exist-db.org Join us on linked-in: http://www.linkedin.com/groups?gid=35624 |
From: Pierrick B. <pie...@fr...> - 2011-05-04 05:55:28
|
Hi, Le 01/05/2011 02:51, Loren Cahlander a écrit : > I forget who implemented the spatial index, I did :-) > but it was not compiling. Yes, that's possible. I've asked to have a dedicated build on Teamcity... quite some time ago :-( > The libraries that are used for it are no longer where they were. I > updated the build to the current libraries location? Feel free to update the build file with the correct locations. They regularly change... > The dataset the is now downloading in the test has changed from a .gz to > a .zip file. Same remark. > The contents of the sample file has also changed. I will be > looking into this, but it will have to wait a week. If someone else > considers this a priority, then I would appreciate the unit test updates. What's wrong with the unit tests ? One of the them has been failing since the huge refactorings in winter 2009-2010. I'm afraid I wasn't lucid enough to fix the issue :-) Other tests were OK, even though they might be too generic (they were designed to validate the whole process). I plan to add the possibility to bind the spatial engine with SQLite in the next weeks... It seems to be mature enough now. Cheers, p.b. |
From: Dmitriy S. <sha...@gm...> - 2011-05-04 03:20:12
|
Hello, eXist do not support xupdate for in-memory documents, but it will be great to have :-) On Wed, May 4, 2011 at 3:06 AM, Joe Wicentowski <jo...@gm...> wrote: > Loren, > > Seems like this would be a job for in memory node update capable XQuery > Update, if it were available in eXist, right? That would be great to have. > -- Dmitriy Shabanov |
From: Joe W. <jo...@gm...> - 2011-05-03 22:06:00
|
Loren, Seems like this would be a job for in memory node update capable XQuery Update, if it were available in eXist, right? That would be great to have. - Joe Sent from my iPod On May 2, 2011, at 4:25 PM, Loren Cahlander <lor...@gm...> wrote: > I am in the process of building a document in memory that I am not in control of the order that the nodes to be added are coming, but want to create the document as simply as possible. |
From: Loren C. <lor...@gm...> - 2011-05-03 18:34:41
|
I am trying a task where I create an empty memtree document and then try to update the dom document. It is hanging on line 145 Node newNode = doc.createElement(columnNames[index]); Can someone take a look at the attached source? Thank you, Loren 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:107) - context: org.exist.xquery.XQueryContext@36633b88 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:110) - builder: org.exist.memtree.MemTreeBuilder@2cd9799d 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:122) - Storing memtree document /db/test-update.xml 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:177) - =========================================================================== 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:178) - =========================================================================== 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:179) - =========================================================================== 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:180) - =========================================================================== 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:181) - =========================================================================== 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:182) - Attempting to create document: /db/test-update.xml 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:200) - collectionURI: /db 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:202) - docURI: test-update.xml 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:210) - collection: /db[test-update.xml] 03 May 2011 13:08:07,050 [DefaultQuartzScheduler_Worker-2] INFO (TestMemtreeJob.java [storeMemtreeDocument]:220) - INFO: org.exist.collections.IndexInfo@68ffab0a 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:252) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:253) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:254) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:255) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:256) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:124) - stored 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:130) - End waiting 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:133) - Found element result : <result xmlns="..." timestamp="2011-05-03T13:08:07-0500"></result> 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:136) - node names: [Ljava.lang.String;@6d9bf996 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [getChildNode]:162) - Looking for node a 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [getChildNode]:165) - Testing [timestamp] [a] 03 May 2011 13:08:07,052 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [getChildNode]:171) - did not find it 03 May 2011 13:08:07,052 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:144) - Creating node a for result On May 2, 2011, at 3:25 PM, Loren Cahlander wrote: > I am in the process of building a document in memory that I am not in control of the order that the nodes to be added are coming, but want to create the document as simply as possible. > > The following is an example of the steps that would be received: > > Create document with root node 'item' > Add node /item/one > Add node /item/two/alpha > Add node /item/three > Add node /item/two/beta > Add complex node /item/four/a > Add another complex node /item/four/a > > Below are the steps as they should be in the document: > > <?xml version="1.0" encoding="UTF-8"?> > <item/> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > </item> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > <two> > <alpha>bar</alpha> > </two> > </item> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > <two> > <alpha>bar</alpha> > </two> > <three>qwerty</three> > </item> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > <two> > <alpha>bar</alpha> > <beta>1234</beta> > </two> > <three>qwerty</three> > </item> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > <two> > <alpha>bar</alpha> > <beta>1234</beta> > </two> > <three>qwerty</three> > <four> > <a> > <p1>11</p1> > <p2>12</p2> > <p3>13</p3> > <p4>14</p4> > <p5>15</p5> > <p6>16</p6> > <p7>17</p7> > <p8>18</p8> > </a> > <a> > <p1>21</p1> > <p2>22</p2> > <p3>23</p3> > <p4>24</p4> > <p5>25</p5> > <p6>26</p6> > <p7>27</p7> > <p8>28</p8> > </a> > </four> > </item> > > > > I figure that I need to create a memtree document with the following: > > MemTreeBuilder builder = null; > XQuery xquery = broker.getXQueryService(); > > if (xquery == null) { > LOG.error("broker unable to retrieve XQueryService"); > return null; > } > XQueryContext context = xquery.newContext(AccessContext.REST); > > builder = new MemTreeBuilder( context ); > > builder.startDocument(); > builder.startElement( new QName( "item", null, null ), null ); > builder.endElement(); > builder.endDocument(); > DocumentImpl document = builder.getDocument(); > > I would then use XUpdate to build the node structures in the steps as I showed above. How would I best implement the XUpdate? > > Thanks, > Loren > |
From: Loren C. <lor...@gm...> - 2011-05-02 20:31:09
|
I am in the process of building a document in memory that I am not in control of the order that the nodes to be added are coming, but want to create the document as simply as possible. The following is an example of the steps that would be received: Create document with root node 'item' Add node /item/one Add node /item/two/alpha Add node /item/three Add node /item/two/beta Add complex node /item/four/a Add another complex node /item/four/a Below are the steps as they should be in the document: <?xml version="1.0" encoding="UTF-8"?> <item/> <?xml version="1.0" encoding="UTF-8"?> <item> <one>foo</one> </item> <?xml version="1.0" encoding="UTF-8"?> <item> <one>foo</one> <two> <alpha>bar</alpha> </two> </item> <?xml version="1.0" encoding="UTF-8"?> <item> <one>foo</one> <two> <alpha>bar</alpha> </two> <three>qwerty</three> </item> <?xml version="1.0" encoding="UTF-8"?> <item> <one>foo</one> <two> <alpha>bar</alpha> <beta>1234</beta> </two> <three>qwerty</three> </item> <?xml version="1.0" encoding="UTF-8"?> <item> <one>foo</one> <two> <alpha>bar</alpha> <beta>1234</beta> </two> <three>qwerty</three> <four> <a> <p1>11</p1> <p2>12</p2> <p3>13</p3> <p4>14</p4> <p5>15</p5> <p6>16</p6> <p7>17</p7> <p8>18</p8> </a> <a> <p1>21</p1> <p2>22</p2> <p3>23</p3> <p4>24</p4> <p5>25</p5> <p6>26</p6> <p7>27</p7> <p8>28</p8> </a> </four> </item> I figure that I need to create a memtree document with the following: MemTreeBuilder builder = null; XQuery xquery = broker.getXQueryService(); if (xquery == null) { LOG.error("broker unable to retrieve XQueryService"); return null; } XQueryContext context = xquery.newContext(AccessContext.REST); builder = new MemTreeBuilder( context ); builder.startDocument(); builder.startElement( new QName( "item", null, null ), null ); builder.endElement(); builder.endDocument(); DocumentImpl document = builder.getDocument(); I would then use XUpdate to build the node structures in the steps as I showed above. How would I best implement the XUpdate? Thanks, Loren |
From: Dmitriy S. <sha...@gm...> - 2011-05-01 04:40:31
|
fixed by http://exist.svn.sourceforge.net/exist/?rev=14356&view=rev for future, you can answer my question or spend a lot of time to explain that you are right, result will be same :-) You did start with problem around xquery script, that can be because of two different places, I did ask the question to understand what place is making troubles .... On Sat, Apr 30, 2011 at 9:14 PM, Andrzej Jan Taramina <an...@ch...>wrote: > Dmitry: > > > That is not a security issue if you see it in DBA group. Did you check > user from running script? > > (let's say one line before file:directory-list) > > THIS IS A BUG IN SECURITY!!!!!! > > If you have noticed over the past few years, when I report a bug, I > typically have done a lot of > testing prior to mentioning it, to be sure that it's a bug, and to provide > enough information to > allow for the replication of the problem. > > If you create a new user in the dba group using the Ant adduser task as > follows: > > <target name="create-users-test" depends="init" description="add test user > for Dmitry"> > <exist:adduser failonerror="false" uri="${exist.url}/xmlrpc/db" > user="admin" > password="adminpswd" name="test" secret="test" home="/db" > primaryGroup="dba"/> > > <exist:users failonerror="false" uri="${exist.url}/xmlrpc/db" > user="admin" > password="adminpswd" outputproperty="users"/> > > <echo>eXist Users: ${users}</echo> > > </target> > > (change adminpswd to whatever your admin users password really is) > > Then the user is created, and is part of the dba group. > > If you then try to immediately log in as that user and do something that > requires DBA permissions, > it will fail. Try logging in as test on the admin web page and try to do a > shutdown or list running > jobs. The request will fail telling you that your user (test in my example) > does not have DBA > permissions. > > I did a bit more testing today. If you shut down and restart eXist after > you add the user, then > things will work properly. That is, if you then log in as test, you can > perform dba-restricted things. > > If you add a user using the Admin web page, the same thing happens. You > have to restart the database > before it will show as having DBA permissions. So this bug is not > restricted to just the Ant task > implementation of adduser. > > So there is a bug in the security implementation, probably do to with how > user credentials are > cached, since a restart seems to fix the issue. > > This is all on the latest/greatest trunk as of this morning. And it wasn't > there before you > implemented the new security scheme. > > So let me repeat myself so that you understand: > > THIS IS A BUG IN SECURITY!!!!!! > THIS IS A BUG IN SECURITY!!!!!! > THIS IS A BUG IN SECURITY!!!!!! > > Thank you! ;-) > > ....Andrzej > > > You don't seem to understand how the adduser Ant task works. The > user/password attributes are for > > the user that is performing the add. On a new database that would be > the admin user, which has no > > password set, so you provide an empty password. > > > > The user being added is specified by name/secret, in the example > below myuser and the value of the > > Ant variable ${password}. The password is not empty! > > > > The issue is that the myuser is added, with the correct password. > You can log in as that user no > > problem. Both the web and java admin clients show myuser as being in > the "dba" group. > > > > But myuser does not have dba priviledges for some reason which is a > big and a rather serious one in > > my estimation. If I'm logged in as myuser, I cannot do a > file:directory-list( $dir, "*.xml" ) as it > > fails on a permission problem. > > > > This is a bug in the security implementation that needs fixing. > > > > > -- Dmitriy Shabanov |
From: Loren C. <lor...@gm...> - 2011-05-01 00:51:14
|
I forget who implemented the spatial index, but it was not compiling. The libraries that are used for it are no longer where they were. I updated the build to the current libraries location? The dataset the is now downloading in the test has changed from a .gz to a .zip file. The contents of the sample file has also changed. I will be looking into this, but it will have to wait a week. If someone else considers this a priority, then I would appreciate the unit test updates. spatial: prepare-libs: [echo] ------------------------------------------------------ [echo] Downloading libraries required by the spatial index... [echo] ------------------------------------------------------ [get] Getting: http://lists.refractions.net/m2/org/opengis/geoapi-nogenerics/2.1.1/geoapi-nogenerics-2.1.1.jar [get] To: /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/lib/geoapi-nogenerics-2.1.1.jar [get] local file date : Fri Jun 13 04:47:48 CDT 2008 [get] Not modified - so not downloaded [get] Getting: http://maven.geotools.fr/repository/org/geotools/gt2-api/2.4.5/gt2-api-2.4.5.jar [get] To: /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/lib/gt2-api-2.4.5.jar [get] Error opening connection java.io.FileNotFoundException: http://maven.geotools.fr/repository/org/geotools/gt2-api/2.4.5/gt2-api-2.4.5.jar [get] Error opening connection java.io.FileNotFoundException: http://maven.geotools.fr/repository/org/geotools/gt2-api/2.4.5/gt2-api-2.4.5.jar [get] Error opening connection java.io.FileNotFoundException: http://maven.geotools.fr/repository/org/geotools/gt2-api/2.4.5/gt2-api-2.4.5.jar [get] Can't get http://maven.geotools.fr/repository/org/geotools/gt2-api/2.4.5/gt2-api-2.4.5.jar to /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/lib/gt2-api-2.4.5.jar BUILD FAILED /Users/lcahlander/Documents/workspace/test/build/scripts/build-impl.xml:685: The following error occurred while executing this line: /Users/lcahlander/Documents/workspace/test/extensions/indexes/build.xml:2: The following error occurred while executing this line: /Users/lcahlander/Documents/workspace/test/extensions/indexes/build.xml:2: The following error occurred while executing this line: /Users/lcahlander/Documents/workspace/test/extensions/indexes/build.xml:2: The following error occurred while executing this line: /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/build.xml:32: Can't get http://maven.geotools.fr/repository/org/geotools/gt2-api/2.4.5/gt2-api-2.4.5.jar to /Users/lcahlander/Documents/workspace/test/extensions/indexes/spatial/lib/gt2-api-2.4.5.jar |
From: Andrzej J. T. <an...@ch...> - 2011-04-30 17:10:09
|
More testing on this issue: I changed the test function to not use the Binary stuff, so it looks like this: declare function common:test() { let $line := <property name="java.naming.security.credentials" value="{ xs:string( 'dGVzdA==' ) }"/> let $debug2 := util:log-system-out( concat( "Credentials XML String: ", util:serialize( $line, "method=xml media-type=text/xml indent=yes" ) ) ) return $line }; And I still get the erroneous result, with 8 repeated values: (Line: 494) Credentials XML String: <property name="java.naming.security.credentials" value="dGVzdA== dGVzdA== dGVzdA== dGVzdA== dGVzdA== dGVzdA== dGVzdA== dGVzdA=="/> So that means your Binary stuff is off the hook, Adam! The problem is somewhere else....maybe in the query parser or execution engine. Changing the line that creates the xml snippet to: let $line := <property name="java.naming.security.credentials" value="{ let $tmp := 'dGVzdA==' return $tmp }"/> shows the same issue....8 repeated strings, delimited with a space for the @value attribute. But this variant does NOT repeat the values! let $tmp := 'dGVzdA==' let $line := <property name="java.naming.security.credentials" value="{ $tmp }"/> and neither does this one: let $tmp := 'dGVzdA==' let $line := <property name="java.naming.security.credentials" value="{ xs:string( 'dGVzdA==' ) }"/> Which leads me to believe that the bug is partially position sensitive. If the creation of the xml snippet is the first line of code in the function, then the values get replicated 8 times. If there is any code prior to that line, then it does not replicate. I then changed the test function to take a parameter (the string being replicated) and changed the calling function to pass in the string: So this version: declare function common:test( $tmp ) { let $line := <property name="java.naming.security.credentials" value="{ xs:string( $tmp ) }"/> ..... }; replicates the attribute value 8 times (showing the bug), but this one: declare function common:test( $tmp ) { let $line := <property name="java.naming.security.credentials" value="{ $tmp }"/> ..... }; does not replicate (no bug!). This leads me to believe that the bug is somewhere in how code fragments inside attribute values are evaluated. Not being very familiar with the xquery parser nor evaluation engine, I can't easily dive into the code (which is very complex) to figure out what is going on. I'm hoping that all of these different test cases might twig something with you, Wolfgang, since creating a simple test case to replicate this is proving difficult. .....Andrzej > On 30 April 2011 00:55, Andrzej Jan Taramina <an...@ch...> wrote: >> Wolfgang: >> >> I've hit a very weird error in trunk, that could potentially be very serious. >> >> I have some code in a module that looks like this: >> >> declare function common:test() >> { >> let $line := <property name="java.naming.security.credentials" >> value="{ util:binary-to-string( xs:base64Binary( 'dGVzdAoK' ) ) }"/> >> >> let $debug2 := util:log-system-out( concat( "Credentials XML: ", >> util:serialize( $line, "method=xml media-type=text/xml indent=yes" ) ) ) >> >> return $line >> }; >> >> declare function common:get-ldap-connection() as xs:integer >> { >> let $test := common:test() >> >> let $contextProps := >> <properties> >> <property name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/> >> <property name="java.naming.provider.url" >> value="{ common:get-config()/config/ldap/url/text() }"/> >> <property name="java.naming.security.authentication" value="simple"/> >> <property name="java.naming.security.principal" >> value="{ common:get-config()/config/ldap/adminUser/text() }"/> >> <property name="java.naming.security.credentials" >> value="{ util:binary-to-string( xs:base64Binary( >> common:get-config()/config/ldap/adminPswd/text() ) ) }"/> >> </properties> >> >> let $ctx := jndi:get-dir-context( $contextProps ) >> >> return $ctx >> }; >> >> I then have a xquery that includes this module, and does something like this: >> >> let $cnx := common:get-ldap-connection() >> >> All works fine if I call this from the sandbox and in the console log I will see the following line >> produced by the common:test() function: >> >> (Line: 494) Credentials XML: <property name="java.naming.security.credentials" >> value="test

"/> >> >> >> The problem I run into is that when I run this xquery from the scheduler (which is how it's intended >> to run...it's a batch reporting job), cause then I get the following output in the console log: >> >> (Line: 494) Credentials XML: <property name="java.naming.security.credentials" value="test

 >> test

 test

 test

 test

 test

 test

 >> test

"/> >> >> I get 8 concatenated decoded values in the value attribute!!!! >> >> This should never happen!!!! Of course, in that situation, I fail to get an LDAP connection since >> the password (the credentials) is a concatenation of 8 copies of the actual password, and so fails, >> if I remove the call to the test function. If I leave in the call to the test function, then the >> correct (non-replicated) password is inserted into the credentials element of the $contextProps >> variable. If I remove the test function call, then I get the same replication in $contextProps. >> >> What is weird is that the error only shows in the one place and is sensitive to order. If I put the >> call to the test function after the construction of the $contextProps value, then $contextProps gets >> the repeated value and the test function returns a correct, unrepeated value. >> >> I've been trying to create a simple test case to replicate this, but have not yet been successful. >> It seems I need to run the big batch job, where the included module is 3600 lines long, and the >> actual xquery is very long and complex as well. >> >> But the code snippet that causes this bug is static code in the common:test() function, and should >> always return the correct result. >> >> I'm not sure what is causing this. Could it be the new Binary Value caching/handling under weird >> conditions that only happen when running under a scheduled task? I've never managed to reproduce >> this when calling xqueries directly (the ldap connection call is made all over the place in our web >> app for authentication purposes). Maybe util:binary-to-string() is at fault, but that seems >> unlikely. Maybe some of your path wrapper stuff? >> >> This exact same code runs just fine as a scheduled task in an older version of trunk (from late >> summer last year), so it's definitely something new in trunk that has manifested since then. >> >> Any ideas on what might cause something this strange? I has me very worried since this is pretty >> basic stuff....and thus might cause other things like DB corruption, or incorrect values being >> written or wrong logic paths being followed. >> >> I'll keep trying to create a simple test case that illustrates this, but I think it may not be >> possible to do so. >> >> Help! >> >> Thanks! >> >> -- >> Andrzej Taramina >> Chaeron Corporation: Enterprise System Solutions >> http://www.chaeron.com >> > > > -- Andrzej Taramina Chaeron Corporation: Enterprise System Solutions http://www.chaeron.com |
From: Andrzej J. T. <an...@ch...> - 2011-04-30 16:41:08
|
Wolfgang: > The bug is easy to reproduce and you don't need Ant for it: > > 1) Launch a clean db > 2) Use the Java admin client to create a user "administrator" and > assign it to the dba group > 3) Log into the client as "administrator" and try to trigger a > shutdown -> permission denied! > 4) Stop and restart the db > 5) Repeat step 3) -> you are now allowed to shutdown Yup....as I had mentioned you can do the same thing with the Admin Web App. Thanks for corroborating this. So like I said....it's a security/permissions bug, Dmitry! ;-) LOL -- Andrzej Taramina Chaeron Corporation: Enterprise System Solutions http://www.chaeron.com |
From: Andrzej J. T. <an...@ch...> - 2011-04-30 16:38:39
|
> Gonna try turning off the query optimizer and see if that makes any difference. No effect turning off the query optimizer. I still get the same problem with it turned off, so it's not the query rewriter that is manifesting the issue. .....A > On 30 April 2011 00:55, Andrzej Jan Taramina <an...@ch...> wrote: >> Wolfgang: >> >> I've hit a very weird error in trunk, that could potentially be very serious. >> >> I have some code in a module that looks like this: >> >> declare function common:test() >> { >> let $line := <property name="java.naming.security.credentials" >> value="{ util:binary-to-string( xs:base64Binary( 'dGVzdAoK' ) ) }"/> >> >> let $debug2 := util:log-system-out( concat( "Credentials XML: ", >> util:serialize( $line, "method=xml media-type=text/xml indent=yes" ) ) ) >> >> return $line >> }; >> >> declare function common:get-ldap-connection() as xs:integer >> { >> let $test := common:test() >> >> let $contextProps := >> <properties> >> <property name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/> >> <property name="java.naming.provider.url" >> value="{ common:get-config()/config/ldap/url/text() }"/> >> <property name="java.naming.security.authentication" value="simple"/> >> <property name="java.naming.security.principal" >> value="{ common:get-config()/config/ldap/adminUser/text() }"/> >> <property name="java.naming.security.credentials" >> value="{ util:binary-to-string( xs:base64Binary( >> common:get-config()/config/ldap/adminPswd/text() ) ) }"/> >> </properties> >> >> let $ctx := jndi:get-dir-context( $contextProps ) >> >> return $ctx >> }; >> >> I then have a xquery that includes this module, and does something like this: >> >> let $cnx := common:get-ldap-connection() >> >> All works fine if I call this from the sandbox and in the console log I will see the following line >> produced by the common:test() function: >> >> (Line: 494) Credentials XML: <property name="java.naming.security.credentials" >> value="test

"/> >> >> >> The problem I run into is that when I run this xquery from the scheduler (which is how it's intended >> to run...it's a batch reporting job), cause then I get the following output in the console log: >> >> (Line: 494) Credentials XML: <property name="java.naming.security.credentials" value="test

 >> test

 test

 test

 test

 test

 test

 >> test

"/> >> >> I get 8 concatenated decoded values in the value attribute!!!! >> >> This should never happen!!!! Of course, in that situation, I fail to get an LDAP connection since >> the password (the credentials) is a concatenation of 8 copies of the actual password, and so fails, >> if I remove the call to the test function. If I leave in the call to the test function, then the >> correct (non-replicated) password is inserted into the credentials element of the $contextProps >> variable. If I remove the test function call, then I get the same replication in $contextProps. >> >> What is weird is that the error only shows in the one place and is sensitive to order. If I put the >> call to the test function after the construction of the $contextProps value, then $contextProps gets >> the repeated value and the test function returns a correct, unrepeated value. >> >> I've been trying to create a simple test case to replicate this, but have not yet been successful. >> It seems I need to run the big batch job, where the included module is 3600 lines long, and the >> actual xquery is very long and complex as well. >> >> But the code snippet that causes this bug is static code in the common:test() function, and should >> always return the correct result. >> >> I'm not sure what is causing this. Could it be the new Binary Value caching/handling under weird >> conditions that only happen when running under a scheduled task? I've never managed to reproduce >> this when calling xqueries directly (the ldap connection call is made all over the place in our web >> app for authentication purposes). Maybe util:binary-to-string() is at fault, but that seems >> unlikely. Maybe some of your path wrapper stuff? >> >> This exact same code runs just fine as a scheduled task in an older version of trunk (from late >> summer last year), so it's definitely something new in trunk that has manifested since then. >> >> Any ideas on what might cause something this strange? I has me very worried since this is pretty >> basic stuff....and thus might cause other things like DB corruption, or incorrect values being >> written or wrong logic paths being followed. >> >> I'll keep trying to create a simple test case that illustrates this, but I think it may not be >> possible to do so. >> >> Help! >> >> Thanks! >> >> -- >> Andrzej Taramina >> Chaeron Corporation: Enterprise System Solutions >> http://www.chaeron.com >> > > > -- Andrzej Taramina Chaeron Corporation: Enterprise System Solutions http://www.chaeron.com |
From: Wolfgang M. <wol...@ex...> - 2011-04-30 16:28:56
|
> So there is a bug in the security implementation, probably do to with how user credentials are > cached, since a restart seems to fix the issue. The bug is easy to reproduce and you don't need Ant for it: 1) Launch a clean db 2) Use the Java admin client to create a user "administrator" and assign it to the dba group 3) Log into the client as "administrator" and try to trigger a shutdown -> permission denied! 4) Stop and restart the db 5) Repeat step 3) -> you are now allowed to shutdown Wolfgang |
From: Andrzej J. T. <an...@ch...> - 2011-04-30 16:15:07
|
Dmitry: > That is not a security issue if you see it in DBA group. Did you check user from running script? > (let's say one line before file:directory-list) THIS IS A BUG IN SECURITY!!!!!! If you have noticed over the past few years, when I report a bug, I typically have done a lot of testing prior to mentioning it, to be sure that it's a bug, and to provide enough information to allow for the replication of the problem. If you create a new user in the dba group using the Ant adduser task as follows: <target name="create-users-test" depends="init" description="add test user for Dmitry"> <exist:adduser failonerror="false" uri="${exist.url}/xmlrpc/db" user="admin" password="adminpswd" name="test" secret="test" home="/db" primaryGroup="dba"/> <exist:users failonerror="false" uri="${exist.url}/xmlrpc/db" user="admin" password="adminpswd" outputproperty="users"/> <echo>eXist Users: ${users}</echo> </target> (change adminpswd to whatever your admin users password really is) Then the user is created, and is part of the dba group. If you then try to immediately log in as that user and do something that requires DBA permissions, it will fail. Try logging in as test on the admin web page and try to do a shutdown or list running jobs. The request will fail telling you that your user (test in my example) does not have DBA permissions. I did a bit more testing today. If you shut down and restart eXist after you add the user, then things will work properly. That is, if you then log in as test, you can perform dba-restricted things. If you add a user using the Admin web page, the same thing happens. You have to restart the database before it will show as having DBA permissions. So this bug is not restricted to just the Ant task implementation of adduser. So there is a bug in the security implementation, probably do to with how user credentials are cached, since a restart seems to fix the issue. This is all on the latest/greatest trunk as of this morning. And it wasn't there before you implemented the new security scheme. So let me repeat myself so that you understand: THIS IS A BUG IN SECURITY!!!!!! THIS IS A BUG IN SECURITY!!!!!! THIS IS A BUG IN SECURITY!!!!!! Thank you! ;-) ....Andrzej > You don't seem to understand how the adduser Ant task works. The user/password attributes are for > the user that is performing the add. On a new database that would be the admin user, which has no > password set, so you provide an empty password. > > The user being added is specified by name/secret, in the example below myuser and the value of the > Ant variable ${password}. The password is not empty! > > The issue is that the myuser is added, with the correct password. You can log in as that user no > problem. Both the web and java admin clients show myuser as being in the "dba" group. > > But myuser does not have dba priviledges for some reason which is a big and a rather serious one in > my estimation. If I'm logged in as myuser, I cannot do a file:directory-list( $dir, "*.xml" ) as it > fails on a permission problem. > > This is a bug in the security implementation that needs fixing. > > -- Andrzej Taramina Chaeron Corporation: Enterprise System Solutions http://www.chaeron.com |
From: Andrzej J. T. <an...@ch...> - 2011-04-30 15:53:32
|
Adam: > I guess its not so serious ;-) It is to me. ;-) > As its running from the scheduler, and you see the value repeat itself > 8 times, could we hazard a guess that your scheduled task has been > called 8 times? Nope. The task has only been called once. And if I initiate the task multiple times, it still always shows either 8 or 1 repetitions. No other combo ever appears, which is very weird. I tried your fix....and it still does the same thing. > The new BinaryValues stuff,if it is not cleaned up just results in a > memory-leak, it is safely re-useable. So you can re-read the same > InputStream multiple times! I don't think that is the cause of the issue. > I would guess that somehow, something is appended to a session > variable, and this is not being cleaned up. Not sure why that would replicate a constant value. > If you could remove the ldap stuff, and create some sort of > reproducible test case I would be happy to look into this. I've been trying...and have not yet managed to replicate in a simple case. I think it's related to the complexity of the XQuery. Gonna try turning off the query optimizer and see if that makes any difference. > Also for eXist-db related issues, could I ask that you use my > ad...@ex... email address. And if you have eXist Solutions > enquiries, or are one of our customers then use my > ad...@ex... email address. It helps me to keep these > things organised. Sure thing.... ....Andrzej > Thanks Adam. > > On 30 April 2011 00:55, Andrzej Jan Taramina <an...@ch...> wrote: >> Wolfgang: >> >> I've hit a very weird error in trunk, that could potentially be very serious. >> >> I have some code in a module that looks like this: >> >> declare function common:test() >> { >> let $line := <property name="java.naming.security.credentials" >> value="{ util:binary-to-string( xs:base64Binary( 'dGVzdAoK' ) ) }"/> >> >> let $debug2 := util:log-system-out( concat( "Credentials XML: ", >> util:serialize( $line, "method=xml media-type=text/xml indent=yes" ) ) ) >> >> return $line >> }; >> >> declare function common:get-ldap-connection() as xs:integer >> { >> let $test := common:test() >> >> let $contextProps := >> <properties> >> <property name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/> >> <property name="java.naming.provider.url" >> value="{ common:get-config()/config/ldap/url/text() }"/> >> <property name="java.naming.security.authentication" value="simple"/> >> <property name="java.naming.security.principal" >> value="{ common:get-config()/config/ldap/adminUser/text() }"/> >> <property name="java.naming.security.credentials" >> value="{ util:binary-to-string( xs:base64Binary( >> common:get-config()/config/ldap/adminPswd/text() ) ) }"/> >> </properties> >> >> let $ctx := jndi:get-dir-context( $contextProps ) >> >> return $ctx >> }; >> >> I then have a xquery that includes this module, and does something like this: >> >> let $cnx := common:get-ldap-connection() >> >> All works fine if I call this from the sandbox and in the console log I will see the following line >> produced by the common:test() function: >> >> (Line: 494) Credentials XML: <property name="java.naming.security.credentials" >> value="test

"/> >> >> >> The problem I run into is that when I run this xquery from the scheduler (which is how it's intended >> to run...it's a batch reporting job), cause then I get the following output in the console log: >> >> (Line: 494) Credentials XML: <property name="java.naming.security.credentials" value="test

 >> test

 test

 test

 test

 test

 test

 >> test

"/> >> >> I get 8 concatenated decoded values in the value attribute!!!! >> >> This should never happen!!!! Of course, in that situation, I fail to get an LDAP connection since >> the password (the credentials) is a concatenation of 8 copies of the actual password, and so fails, >> if I remove the call to the test function. If I leave in the call to the test function, then the >> correct (non-replicated) password is inserted into the credentials element of the $contextProps >> variable. If I remove the test function call, then I get the same replication in $contextProps. >> >> What is weird is that the error only shows in the one place and is sensitive to order. If I put the >> call to the test function after the construction of the $contextProps value, then $contextProps gets >> the repeated value and the test function returns a correct, unrepeated value. >> >> I've been trying to create a simple test case to replicate this, but have not yet been successful. >> It seems I need to run the big batch job, where the included module is 3600 lines long, and the >> actual xquery is very long and complex as well. >> >> But the code snippet that causes this bug is static code in the common:test() function, and should >> always return the correct result. >> >> I'm not sure what is causing this. Could it be the new Binary Value caching/handling under weird >> conditions that only happen when running under a scheduled task? I've never managed to reproduce >> this when calling xqueries directly (the ldap connection call is made all over the place in our web >> app for authentication purposes). Maybe util:binary-to-string() is at fault, but that seems >> unlikely. Maybe some of your path wrapper stuff? >> >> This exact same code runs just fine as a scheduled task in an older version of trunk (from late >> summer last year), so it's definitely something new in trunk that has manifested since then. >> >> Any ideas on what might cause something this strange? I has me very worried since this is pretty >> basic stuff....and thus might cause other things like DB corruption, or incorrect values being >> written or wrong logic paths being followed. >> >> I'll keep trying to create a simple test case that illustrates this, but I think it may not be >> possible to do so. >> >> Help! >> >> Thanks! >> >> -- >> Andrzej Taramina >> Chaeron Corporation: Enterprise System Solutions >> http://www.chaeron.com >> > > > -- Andrzej Taramina Chaeron Corporation: Enterprise System Solutions http://www.chaeron.com |
From: Andrzej J. T. <an...@ch...> - 2011-04-30 15:25:17
|
Adam: > I checked, and it was indeed the case that binary resources were not > being cleaned up after execution through the Scheduler. I have fixed > that, but I am not sure it will fix the issue that Andrzej is seeing - > perhaps he could test and let us know? I'll give it a try later today! Fingers crossed.... Thanks for the quick response. -- Andrzej Taramina Chaeron Corporation: Enterprise System Solutions http://www.chaeron.com |
From: Adam R. <ad...@ex...> - 2011-04-30 09:18:46
|
> Assuming that the XQuery is really as simple as this: > > <property name="java.naming.security.credentials" > value="{ util:binary-to-string( > xs:base64Binary( 'dGVzdAoK' ) ) }"/> > > I would guess that the base64Binary is cleaned up when the query runs > stand-alone, but not when it is called through the scheduler. Maybe a > missing reset on the context? I checked, and it was indeed the case that binary resources were not being cleaned up after execution through the Scheduler. I have fixed that, but I am not sure it will fix the issue that Andrzej is seeing - perhaps he could test and let us know? -- Adam Retter eXist Developer { United Kingdom } ad...@ex... irc://irc.freenode.net/existdb |