Hi Olle,

Looking at the exception stack trace, I would say that you've got problem with 
collection symbol table. That would explain your problems accessing all the 
documents. 

I was able to reproduce exactly the same stack trace by intentionally modifying 
symbol table. 

When Xindice saves a document to the collection, the document is compressed, 
which means that its element and attribute names are replaced with generated 
identifiers. The information about these identifiers saved in the collection 
symbol table. When retrieving the document, Xindice looks up the identifiers 
and replaces them with actual names. If it encounters identifier that cannot be 
found in the table... well, that exception is what happens.

I would suggest checking the symbol table first - it is just XML document that 
is located in /db/system/SysSymbols collection and document name is the same as 
collection path, but fragments of the path are separated with '_' instead of 
'/'. So, for collection /db/a/b/c it will be a_b_c.  Check if anything looks 
out of place, maybe you can see right away that some element or attribute names 
are missing...

This is an example of symbol table for SysConfig collection:
<?xml version="1.0" encoding="UTF-8"?>
<?xindice-class org.apache.xindice.xml.SymbolTable?>
<symbols>
  <symbol name="filer" id="6"/>
  <symbol name="inline-metadata" id="5"/>
  <symbol name="compressed" id="4"/>
  <symbol name="name" id="1"/>
  <symbol name="indexes" id="8"/>
  <symbol name="class" id="7"/>
  <symbol name="collection" id="2"/>
  <symbol name="collections" id="3"/>
  <symbol name="database" id="0"/>
</symbols>

Regards,
Natalia  

On Jun 9, 2010, at 6:43 AM, Olle Olsson wrote:

> Suddenly this morning I could not access the data in Xindice ... execution 
> exception.
> 
> Running Xindice under Tomcat
> - Apache Tomcat/5.5.27
> - Xindice 1.1
> on a Linux box
> 
> Symptoms:
> - Xindice is running under Tomcat (status seen in Tomcat Web Application 
> Manager)
> - I can open the "Xindice Ugly Debug Tool"
> - I can navigate through the collection hierarchy
> - I can see that all documents exist
> - trying to inspect the contents of any document results in an exception
> 
> That accessing *any* document generates that exception indicates to me that 
> no single content file has been corrupted. And that all document files but no 
> collection files have eroded, that is unlikely.
> 
> Has some core central system-oriented file been perverted?
> 
> Or is it a question of a bug in Xindice software?
> 
> As to OS access restrictions, they all look good:
>   -rw-rw-r--+
> except for  SysAccess.tbl, SysGroups.tbl, SysObjects.tbl, and SysUsers.tbl, 
> that have
>   -rwxr--r--+
> And there is no lack of available space on the file system.
> 
> 
> Extracts from logs reproduced below.
> 
> *Question*:
> - Any hints/advise?
> - are there any diagnostic tools?
> - are there any repair tools?
> 
> /olle
> 
> 
> ______________________
> localhost.2010-06-09.log
> 
> Jun 9, 2010 12:04:48 PM org.apache.catalina.core.StandardWrapperValve invoke
> SEVERE: Servlet.service() for servlet xindice threw exception
> java.lang.NullPointerException
>    at org.apache.xindice.xml.dom.ElementImpl.checkLoaded(ElementImpl.java:110)
>    at org.apache.xindice.xml.dom.NodeImpl.getNodeName(NodeImpl.java:442)
>    at org.apache.xindice.xml.dom.ElementImpl.getTagName(ElementImpl.java:244)
>    at org.apache.xml.serialize.XMLSerializer.serializeElement(Unknown Source)
>    at org.apache.xml.serialize.BaseMarkupSerializer.serializeNode(Unknown 
> Source)
>    at org.apache.xml.serialize.XMLSerializer.serializeElement(Unknown Source)
>    at org.apache.xml.serialize.BaseMarkupSerializer.serializeNode(Unknown 
> Source)
>    at org.apache.xml.serialize.XMLSerializer.serializeElement(Unknown Source)
>    at org.apache.xml.serialize.BaseMarkupSerializer.serializeNode(Unknown 
> Source)
>    at org.apache.xml.serialize.BaseMarkupSerializer.serializeNode(Unknown 
> Source)
>    at org.apache.xml.serialize.BaseMarkupSerializer.serialize(Unknown Source)
>    at org.apache.xindice.server.UglyBrowser.prettyPrint(UglyBrowser.java:203)
>    at 
> org.apache.xindice.server.UglyBrowser.getDetailView(UglyBrowser.java:192)
>    at org.apache.xindice.server.UglyBrowser.doGet(UglyBrowser.java:82)
>    at org.apache.xindice.server.XindiceServlet.doGet(XindiceServlet.java:84)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>    at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>    at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>    at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>    at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>    at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>    at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>    at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:548)
>    at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>    at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>    at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
>    at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>    at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>    at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>    at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>    at java.lang.Thread.run(Thread.java:619)
> 
> ______________________
> catalina.out  (and  catalina.2010-06-09.log)
> 
> Jun 9, 2010 12:04:48 PM org.apache.xindice.xml.dom.ElementImpl <init>
> WARNING: ignored exception
> java.lang.NullPointerException
>        at 
> org.apache.xindice.xml.dom.ElementImpl.loadAttributes(ElementImpl.java:189)
>        at org.apache.xindice.xml.dom.ElementImpl.<init>(ElementImpl.java:66)
>        at 
> org.apache.xindice.xml.dom.ContainerNodeImpl.loadChildren(ContainerNodeImpl.java:128)
>        at 
> org.apache.xindice.xml.dom.ElementImpl.checkLoaded(ElementImpl.java:113)
>        at org.apache.xindice.xml.dom.NodeImpl.getNodeName(NodeImpl.java:442)
>        at 
> org.apache.xindice.xml.dom.ElementImpl.getTagName(ElementImpl.java:244)
>        at org.apache.xml.serialize.XMLSerializer.serializeElement(Unknown 
> Source)
>        at org.apache.xml.serialize.BaseMarkupSerializer.serializeNode(Unknown 
> Source)
>        at org.apache.xml.serialize.XMLSerializer.serializeElement(Unknown 
> Source)
>        at org.apache.xml.serialize.BaseMarkupSerializer.serializeNode(Unknown 
> Source)
>        at org.apache.xml.serialize.BaseMarkupSerializer.serializeNode(Unknown 
> Source)
>        at org.apache.xml.serialize.BaseMarkupSerializer.serialize(Unknown 
> Source)
>        at 
> org.apache.xindice.server.UglyBrowser.prettyPrint(UglyBrowser.java:203)
>        at 
> org.apache.xindice.server.UglyBrowser.getDetailView(UglyBrowser.java:192)
>        at org.apache.xindice.server.UglyBrowser.doGet(UglyBrowser.java:82)
>        at 
> org.apache.xindice.server.XindiceServlet.doGet(XindiceServlet.java:84)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>        at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>        at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>        at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>        at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>        at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>        at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>        at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:548)
>        at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>        at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>        at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
>        at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>        at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>        at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>        at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>        at java.lang.Thread.run(Thread.java:619)
> Jun 9, 2010 12:05:34 PM 
> org.apache.xindice.core.DatabaseChangeObserver$FlushTask run
> INFO: Successfully flushed 0 collections out of 0
> .....
> 
> 
> 
> 
> -- 
> ------------------------------------------------------------------
> Olle Olsson   ol...@sics.se   Tel: +46 8 633 15 19  Fax: +46 8 751 72 30
>        [Svenska W3C-kontoret: ol...@w3.org]
> SICS [Swedish Institute of Computer Science]
> Box 1263
> SE - 164 29 Kista
> Sweden
> ------------------------------------------------------------------
> 
> 

Reply via email to