Hello,

I don't believe so.  I looked in system.xml and the XPathQueryResolver and
autoindex="false".

If this will help, here is my SysConfig from "db/System/".  (I changed the
name attributes values for this posting)
--------
Document 'database.xml'

<?xml version="1.0"?>
 <database name="db">
  <collections>
   <collection compressed=" true" name="CHANGEDFORPOST_0">
    <filer class="org.apache.xindice.core.filer.BTreeFiler" />
    <indexes />
    <collections>
     <collection compressed=" true" name="CHANGEDFORPOST_1">
      <filer class="org.apache.xindice.core.filer.BTreeFiler" />
      <indexes />
     </collection>
     <collection compressed=" true" name="CHANGEDFORPOST_2">
     <filer class="org.apache.xindice.core.filer.BTreeFiler" />
     <indexes/>
    </collection>
   </collections>
  </collection>
 </collections>
</database>

Thanks,
-Nate

> Do you have any indexes enabled?
>
> Todd
>
> [EMAIL PROTECTED] wrote:
>> Hello,
>>
>> Thank you for the reply.  I should have included my java memory settings
>> in my previous post.  I'm already running tomcat with the following
>> settings:
>>   CATALINA_OPTS="-Xms128m -Xmx512m"
>>
>> I'm did some more experiments, and while I get the failure from the
>> getResource() call, I am able to call listResources(), and see that the
>> resource name that I'm trying to access.  Sometimes even after I do a
>> successful listResources(), I still get the getResource() failure.
>>
>> Thanks again for the help,
>> -Nate
>>
>>
>>>I want to say I have ran into this before I would try increasing your
>>>memory in your Tomcat. If that doesn't fix the problem let me know and I
>>>can look into it deeper.
>>>
>>>Add this
>>>
>>>JAVA_OPTS="$JAVA_OPTS -Xmx512m"
>>>
>>>To the the top of catalina.sh
>>>
>>>Todd
>>>
>>>[EMAIL PROTECTED] wrote:
>>>
>>>>Hello,
>>>>
>>>>I searched around these mail archives for posts about
>>>>NullPointerExceptions, but I wasn't able to find a solution to my
>>>>problem
>>>>below.  Any advice on how to find a solution would be greatly
>>>>appreciated.
>>>>
>>>>Here is the message I receive from XMLDBException.GetMessage() call:
>>>> Failed to execute command 'GetResource' on server:
>>>>http://localhost:8080/xindice/, message: java.lang.Exception:
>>>>java.lang.NullPointerException
>>>>
>>>>I'm using the following versions:
>>>> Xindice: 1.1b4
>>>> Tomcat:  5.0.25
>>>> JVM:     1.4.2_01-b06
>>>> OS:      Linux 2.4.18-14
>>>>
>>>>Here is the sequence that causes this error:
>>>> 1.  User updates web form and post to my Servlet
>>>> 2.  My servlet does a GetResource() to pull the current version of the
>>>>XML data.
>>>> 3.  My servlet updates the XML data.
>>>> 4.  My servlet does a createResource() and storeResource() to update
>>>>the
>>>>XML data back into Xindice.
>>>> 5.  ... later user repeats steps 1 to 4.
>>>>
>>>>Each time the user updates the form to Add/Update/Delete data.  About
>>>>one
>>>>in every ten cycles the NullPointException will be thrown when I
>>>> perform
>>>>the GetResource().  I tried having my code sleep for 2 seconds after
>>>> the
>>>>first GetResource() failed and then retry to call, but that only solves
>>>>the problem once in awhile.
>>>>
>>>>My XML data is usually somewhere in the 5 - 200 Kb range.  A posting
>>>>said
>>>>a storeResource should take about 3ms/KB, so I thought sleeping for 2
>>>>seconds should have been enough delay for any of my files.
>>>>
>>>>Thanks for the help,
>>>>-Nate
>>>>
>>>>Here is some code snippets.  I create a singleton that owns this class,
>>>>so
>>>>there is only one of these (currently).  Therefore EnableDatabase() is
>>>>only executed once the first time that object is used.
>>>>
>>>>
>>>>/*
>>>> * XindiceGateway.java
>>>> *
>>>> * Created on August 25, 2004, 9:31 PM
>>>> */
>>>>
>>>>package org.test.gateways;
>>>>
>>>>import java.util.Vector;
>>>>import org.apache.log4j.Logger;
>>>>import org.apache.xindice.client.xmldb.services.CollectionManager;
>>>>import org.apache.xindice.xml.dom.DOMParser;
>>>>import org.test.commands.DatabaseCommand;
>>>>import org.w3c.dom.Node;
>>>>
>>>>import org.xmldb.api.base.*;
>>>>import org.xmldb.api.modules.*;
>>>>import org.xmldb.api.*;
>>>>
>>>>
>>>>/**
>>>> *
>>>> * @author  stoddarn
>>>> */
>>>>public class XindiceGateway
>>>>{
>>>>  // Log4j Logger
>>>>  static Logger m_logger = Logger.getLogger(XindiceGateway.class);
>>>>
>>>>  // Static mutex on the database
>>>>  static String m_databaseMutex = new String ("mutex");
>>>>
>>>>  private boolean m_databaseRegistered = false;
>>>>
>>>>  // Static XINDICE data
>>>>  private static String XINDICE_DB_DRIVER = new
>>>>String("org.apache.xindice.client.xmldb.DatabaseImpl");
>>>>
>>>>  // The root to the database
>>>>  private static String XINDICE_DB_ROOT = new
>>>>String("xmldb:xindice://localhost:8080/db/");   // LINUX Penguin
>>>>
>>>>  // Xindice API version
>>>>  private static String XINDICE_API_VERSION = new String ("1.0");
>>>>
>>>>  // Xindice file setup
>>>>  private static String XINDICE_COMPRESSION_ENABLED = new String
>>>>("true");
>>>>  private static String XINDICE_FILTER_CLASS = new
>>>>String("org.apache.xindice.core.filer.BTreeFiler");
>>>>
>>>>
>>>>/** Make sure the database is registered */
>>>>protected void EnableDatabase ()
>>>>       throws ClassNotFoundException, InstantiationException,
>>>>IllegalAccessException,
>>>>               XMLDBException
>>>>{
>>>>  // If the database isn't already registered
>>>>  if (! m_databaseRegistered)
>>>>  {
>>>>    m_databaseRegistered = true;
>>>>
>>>>    m_logger.info("Enabling Xindice Database");
>>>>
>>>>    Class c = Class.forName(XINDICE_DB_DRIVER);
>>>>
>>>>    Database database = (Database) c.newInstance();
>>>>    DatabaseManager.registerDatabase(database);
>>>>
>>>>    // Update the CodeReview paths
>>>>    boolean baseCollectionFound = false;
>>>>    boolean projectListingsCollectionFound = false;
>>>>    boolean projectListingsFileFound = false;
>>>>    boolean projectsCollectionFound = false;
>>>>
>>>>    // Check for "test"
>>>>    String [] baseCollection = ListCollections("");
>>>>    // Loop to see if there is a match
>>>>    for (int bcItr = 0; !baseCollectionFound && bcItr <
>>>>baseCollection.length; bcItr++)
>>>>    {
>>>>
>>>>      if (baseCollection[bcItr].equals("test"))
>>>>      {
>>>>        baseCollectionFound = true;
>>>>      }
>>>>    }
>>>>    // If the baseCollection is missing add it
>>>>    if (!baseCollectionFound)
>>>>    {
>>>>      m_logger.info("Create codereview collection required");
>>>>      CreateCollection("", "test");
>>>>    }
>>>>
>>>>    // Check for "projectlistings" and "projects"
>>>>    String [] testCollection = ListCollections("test");
>>>>    // Loop to see if there is a match for project listings and
>>>> projects
>>>>    for (int crItr = 0; (!projectListingsCollectionFound ||
>>>>!projectsCollectionFound) && crItr < testCollection.length; crItr++)
>>>>    {
>>>>      if (testCollection[crItr].equals("projectlistings"))
>>>>      {
>>>>        projectListingsCollectionFound = true;
>>>>      }
>>>>      else if (testCollection[crItr].equals("projects"))
>>>>      {
>>>>        projectsCollectionFound = true;
>>>>      }
>>>>    }
>>>>    // If the baseCollection is missing add it
>>>>    if (!projectListingsCollectionFound)
>>>>    {
>>>>      m_logger.info("Create projectlistings collection required");
>>>>      CreateCollection("test", "projectlistings");
>>>>    }
>>>>
>>>>    // If the baseCollection is missing add it
>>>>    if (!projectsCollectionFound)
>>>>    {
>>>>      m_logger.info("Create projects collection required");
>>>>      CreateCollection("test", "projects");
>>>>    }
>>>>  }
>>>>}
>>>>
>>>>
>>>>/** Add documents to a collection */
>>>>public void AddDocument(String collectionName, String documentName,
>>>>String
>>>>documentXML)
>>>>{
>>>>  Collection col = null;
>>>>
>>>>  String[] documents = null;
>>>>  synchronized (m_databaseMutex)
>>>>  {
>>>>    try {
>>>>      EnableDatabase();
>>>>
>>>>      // Get the collection
>>>>      col = DatabaseManager.getCollection(XINDICE_DB_ROOT +
>>>>collectionName);
>>>>
>>>>      XMLResource document = (XMLResource)
>>>>col.createResource(documentName, "XMLResource");
>>>>      document.setContent(documentXML);
>>>>      col.storeResource(document);
>>>>    }
>>>>    catch (XMLDBException e) {
>>>>      m_logger.error("AddDocument: XML:DB Exception occured: " +
>>>>e.getMessage());
>>>>    }
>>>>    catch (Exception e) {
>>>>      m_logger.error("AddDocument: Other Exception occured");
>>>>    }
>>>>    finally
>>>>    {
>>>>      // If the colletion was created, then make sure we close it
>>>>      if (col != null)
>>>>      {
>>>>        try
>>>>        {
>>>>          // Close the collection
>>>>          col.close();
>>>>        }
>>>>        catch (Exception e)
>>>>        {
>>>>          // Catch any issues with closing the exception.
>>>>          m_logger.error("Unable to close collection.  " +
>>>>e.getMessage());
>>>>        }
>>>>      }
>>>>    }
>>>>  }
>>>>}
>>>>
>>>>
>>>>/** Read a document */
>>>>public String ReadDocument(String collectionName, String documentName)
>>>>{
>>>>  Collection col = null;
>>>>  String returnString = null;
>>>>
>>>>  synchronized (m_databaseMutex)
>>>>  {
>>>>    try {
>>>>      EnableDatabase();
>>>>
>>>>      col = DatabaseManager.getCollection(XINDICE_DB_ROOT +
>>>>collectionName);
>>>>
>>>>      XMLResource document = (XMLResource)
>>>>col.getResource(documentName);
>>>>
>>>>      returnString = (String)document.getContent();
>>>>    }
>>>>    catch (XMLDBException e) {
>>>>      m_logger.error("ReadDocument (" + collectionName + "/" +
>>>>documentName + "):  " + e.getMessage());
>>>>    }
>>>>    catch (Exception e) {
>>>>      m_logger.error("ReadDocument (" + collectionName + "/" +
>>>>documentName + "):  " + e.getMessage());
>>>>    }
>>>>    finally
>>>>    {
>>>>      // If the colletion was created, then make sure we close it
>>>>      if (col != null)
>>>>      {
>>>>        try
>>>>        {
>>>>          // Close the collection
>>>>          col.close();
>>>>        }
>>>>        catch (Exception e)
>>>>        {
>>>>          // Catch any issues with closing the exception.
>>>>          m_logger.error("Unable to close collection.  " +
>>>>e.getMessage());
>>>>        }
>>>>      }
>>>>    }
>>>>  }
>>>>
>>>>   return (returnString);
>>>> }
>>>>
>>>>
>>>>
>>>>  /** Creates a new instance of XindiceGateway */
>>>>  public XindiceGateway()
>>>>  {
>>>>  }
>>>>
>>>>}
>>>>
>>>
>>
>


Reply via email to