You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by saraheg <sa...@gmail.com> on 2008/08/07 18:35:02 UTC

Issues while importing.

Hello.  I am getting an intermittent error while doing an import.  I export 3
base nodes site, foo, and bar.
*Sometimes I can do the import with NO errors at all.


The whole error stacktrace is sometimes shown, sometimes not. The error is
never thrown (it appears to be a lucene error).  My temp fix for this is to
delete the index dir after the import, it will rebuild itself when the site
that uses this starts up, and works correctly, otherwise a search of the
repo has missing data (i can see the missing data if i do an export of the
new repo).

Any idea what is causing this error?

Do the import/export times look right? They seem extremly long to me.

total time to export is 14 mins (also very long)! using exportSystemView
with NO binaray data all data is very nested..no nodes have more than 300
children

I am exporting using the
org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager
PersistenceManager, and importing using
org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager

Jackrabbit version 1.4
jdk 1.5

The exported xmls are: 



site-1.xml : 5.8M
foo-1.xml : 7.6M
bar-1.xml :  is 8M





start import=Aug 07,2008 09:58
custom node types registered:Aug 07,2008 09:58
importing site:Aug 07,2008 09:58
saving site:Aug 07,2008 09:58
[2008-08-07 10:02:12,103] ERROR [IndexMerger]
[org.apache.jackrabbit.core.query.lucene.IndexMerger] Error while merging
indexes: java.io.IOException: Directory was previously created with a
different LockFactory instance; please pass null as the lockFactory instance
and use setLockFactory to change it
site imported:Aug 07,2008 10:02
importing foo:Aug 07,2008 10:02
saving foo:Aug 07,2008 10:02
[2008-08-07 10:06:24,343] ERROR [resin-tcp-connection-127.0.0.4:6800-9]
[org.apache.jackrabbit.core.SearchManager] Error indexing node.
java.io.IOException: Directory was previously created with a different
LockFactory instance; please pass null as the lockFactory instance and use
setLockFactory to change it
        at
org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:192)
        at
org.apache.jackrabbit.core.query.lucene.PersistentIndex.<init>(PersistentIndex.java:63)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.getOrCreateIndex(MultiIndex.java:581)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex$CreateIndex.execute(MultiIndex.java:1631)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:936)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(MultiIndex.java:983)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.flush(MultiIndex.java:868)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.update(MultiIndex.java:429)
        at
org.apache.jackrabbit.core.query.lucene.SearchIndex.updateNodes(SearchIndex.java:496)
        at
org.apache.jackrabbit.core.SearchManager.onEvent(SearchManager.java:495)
        at
org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(EventConsumer.java:231)
        at
org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatchEvents(ObservationDispatcher.java:201)
        at
org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:425)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:721)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:857)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:324)
        at
org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:300)
        at
org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
        at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1244)
        at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:896)
        at
com.metrowerks.mdp2.channels.ChannelManagerSingleton.importSection(ChannelManagerSingleton.java:1316)
        at
com.metrowerks.mdp2.channels.ChannelManagerSingleton.importRepository(ChannelManagerSingleton.java:1358)
        at
com.metrowerks.kpimdp.deploy.BundledDeployer.deploy(BundledDeployer.java:111)
        at
com.metrowerks.kpimdp.deploy.action.DeploySaveAction.doActionAfterPermissionCheck(DeploySaveAction.java:38)
        at
com.metrowerks.kpimdp.permissions.action.CheckPermissionsAction.doAction(CheckPermissionsAction.java:32)
        at
com.metrowerks.mdp2.action.LoginReqAction.execute(LoginReqAction.java:50)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
        at
com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
        at
com.metrowerks.mdp2.logging.PageViewFilter.doFilter(PageViewFilter.java:132)
        at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
        at
com.metrowerks.mdp2.web.cms.JackrabbitSessionRequestFilter.doFilter(JackrabbitSessionRequestFilter.java:57)
        at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
        at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
        at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
        at
com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:424)
        at com.caucho.server.port.TcpConnection.run(TcpConnection.java:481)
        at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:685)
        at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:607)
        at java.lang.Thread.run(Thread.java:619)
foo imported:Aug 07,2008 10:06
importing bar:Aug 07,2008 10:06
saving bar:Aug 07,2008 10:07
[2008-08-07 10:10:53,160] ERROR [resin-tcp-connection-127.0.0.4:6800-9]
[org.apache.jackrabbit.core.SearchManager] Error indexing node.
java.io.IOException: Directory was previously created with a different
LockFactory instance; please pass null as the lockFactory instance and use
setLockFactory to change it
        at
org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:192)
        at
org.apache.jackrabbit.core.query.lucene.PersistentIndex.<init>(PersistentIndex.java:63)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.getOrCreateIndex(MultiIndex.java:581)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex$CreateIndex.execute(MultiIndex.java:1631)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:936)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(MultiIndex.java:983)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.checkVolatileCommit(MultiIndex.java:961)
        at
org.apache.jackrabbit.core.query.lucene.MultiIndex.update(MultiIndex.java:422)
        at
org.apache.jackrabbit.core.query.lucene.SearchIndex.updateNodes(SearchIndex.java:496)
        at
org.apache.jackrabbit.core.SearchManager.onEvent(SearchManager.java:495)
        at
org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(EventConsumer.java:231)
        at
org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatchEvents(ObservationDispatcher.java:201)
        at
org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:425)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:721)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:857)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:324)
        at
org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:300)
        at
org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
        at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1244)
        at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:896)
        at
com.metrowerks.mdp2.channels.ChannelManagerSingleton.importSection(ChannelManagerSingleton.java:1316)
        at
com.metrowerks.mdp2.channels.ChannelManagerSingleton.importRepository(ChannelManagerSingleton.java:1364)
        at
com.metrowerks.kpimdp.deploy.BundledDeployer.deploy(BundledDeployer.java:111)
        at
com.metrowerks.kpimdp.deploy.action.DeploySaveAction.doActionAfterPermissionCheck(DeploySaveAction.java:38)
        at
com.metrowerks.kpimdp.permissions.action.CheckPermissionsAction.doAction(CheckPermissionsAction.java:32)
        at
com.metrowerks.mdp2.action.LoginReqAction.execute(LoginReqAction.java:50)
        at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
        at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
        at
com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
        at
com.metrowerks.mdp2.logging.PageViewFilter.doFilter(PageViewFilter.java:132)
        at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
        at
com.metrowerks.mdp2.web.cms.JackrabbitSessionRequestFilter.doFilter(JackrabbitSessionRequestFilter.java:57)
        at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
        at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
        at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
        at
com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:424)
        at com.caucho.server.port.TcpConnection.run(TcpConnection.java:481)
        at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:685)
        at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:607)
        at java.lang.Thread.run(Thread.java:619)
bar imported:Aug 07,2008 10:10
index dir deleted:Aug 07,2008 10:10
import complete:Aug 07,2008 10:10


public void importSection(Session jrSession, String path, String section,
int environmentId) throws IOException, RepositoryException{
      Timestamp timestamp = null;
      DateFormat dateFormatter = new SimpleDateFormat("MMM dd,yyyy hh:mm");
      timestamp = new Timestamp(System.currentTimeMillis());
      System.out.println("importing "+ section +":" +
dateFormatter.format(timestamp)  );
      InputStream siteIn = new FileInputStream(path + "/" + section + "-" +
environmentId + ".xml");
      jrSession.importXML("/", siteIn,
ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING);
      timestamp = new Timestamp(System.currentTimeMillis());
      System.out.println("saving " + section + ":" +
dateFormatter.format(timestamp)  );
      jrSession.save();
      jrSession.logout();
      timestamp = new Timestamp(System.currentTimeMillis());
      System.out.println(section + " imported:" +
dateFormatter.format(timestamp)  );
   }

   public void importRepository(String path, int environmentId, String
repositoryXMLPath, String repositoryPath, String username, String password)
throws RepositoryException, IOException, InterruptedException,
DeleteRmRfException {
    Timestamp timestamp = null;
    DateFormat dateFormatter = new SimpleDateFormat("MMM dd,yyyy hh:mm");

    timestamp = new Timestamp(System.currentTimeMillis());
    System.out.println("start import=" + dateFormatter.format(timestamp)  );
    Session jrSession = null;
    Repository repository = null;
    try {
      repository = new TransientRepository(repositoryXMLPath,
repositoryPath);
      SimpleCredentials creds = new SimpleCredentials(username,
password.toCharArray());
      jrSession = repository.login(creds);

      //register the name space
      NamespaceRegistry nsReg =
jrSession.getWorkspace().getNamespaceRegistry();

      nsReg.registerNamespace("test", "http://www.test.com/test");

      JackrabbitNodeTypeManager manager = (JackrabbitNodeTypeManager)
jrSession.getWorkspace().getNodeTypeManager();
      manager.registerNodeTypes(new FileInputStream(nodeTypeConfig),
JackrabbitNodeTypeManager.TEXT_X_JCR_CND);
      jrSession.save();
      jrSession.logout();
      shutdownRepository(repository);
      repository  = null;

      timestamp = new Timestamp(System.currentTimeMillis());
      System.out.println("custom node types registered:" +
dateFormatter.format(timestamp)  );

      repository = new TransientRepository(repositoryXMLPath,
repositoryPath);
      jrSession = repository.login(creds);
      importSection(jrSession, path, "site", environmentId);
      shutdownRepository(repository);
      repository  = null;

      repository = new TransientRepository(repositoryXMLPath,
repositoryPath);
      jrSession = repository.login(creds);
      importSection(jrSession, path, "foo", environmentId);
      shutdownRepository(repository);
      repository  = null;

      repository = new TransientRepository(repositoryXMLPath,
repositoryPath);
      jrSession = repository.login(creds);
      importSection(jrSession, path, "bar", environmentId);
      shutdownRepository(repository);


      repository = null;
      jrSession = null;
      
      
        deleteDir(repositoryPath + "/workspaces/default/index");
        timestamp = new Timestamp(System.currentTimeMillis());
        System.out.println("index dir deleted:" +
dateFormatter.format(timestamp)  );
      
    } finally {
      if (jrSession != null){
        jrSession.logout();
      }
      if (repository != null){
        shutdownRepository(repository);
      }
      repository = null;

    }
    timestamp = new Timestamp(System.currentTimeMillis());
    System.out.println("import complete:" + dateFormatter.format(timestamp) 
);
   }
-- 
View this message in context: http://www.nabble.com/Issues-while-importing.-tp18874536p18874536.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Re: Issues while importing.

Posted by saraheg <sa...@gmail.com>.
I increased the memory from 256 to 512, and still get the same errors :(


-- 
View this message in context: http://www.nabble.com/Issues-while-importing.-tp18874536p18933034.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Re: Issues while importing.

Posted by Felix Meschberger <fm...@gmail.com>.
Hi,

Just a wild guess: Could this be an OutOfMemory situation, which is not 
logged ? Would the import work (and even be faster) if you configured 
the VM startup with a higher maximum heap size value (-Xmx) ?

Such a OutOfMemory situation is not likely to be primarily be dependent 
on the size of any binary data but on the number of nodes and properties.

Regards
Felix

saraheg schrieb:
> Hello.  I am getting an intermittent error while doing an import.  I export 3
> base nodes site, foo, and bar.
> *Sometimes I can do the import with NO errors at all.
> 
> 
> The whole error stacktrace is sometimes shown, sometimes not. The error is
> never thrown (it appears to be a lucene error).  My temp fix for this is to
> delete the index dir after the import, it will rebuild itself when the site
> that uses this starts up, and works correctly, otherwise a search of the
> repo has missing data (i can see the missing data if i do an export of the
> new repo).
> 
> Any idea what is causing this error?
> 
> Do the import/export times look right? They seem extremly long to me.
> 
> total time to export is 14 mins (also very long)! using exportSystemView
> with NO binaray data all data is very nested..no nodes have more than 300
> children
> 
> I am exporting using the
> org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager
> PersistenceManager, and importing using
> org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager
> 
> Jackrabbit version 1.4
> jdk 1.5
> 
> The exported xmls are: 
> 
> 
> 
> site-1.xml : 5.8M
> foo-1.xml : 7.6M
> bar-1.xml :  is 8M
> 
> 
> 
> 
> 
> start import=Aug 07,2008 09:58
> custom node types registered:Aug 07,2008 09:58
> importing site:Aug 07,2008 09:58
> saving site:Aug 07,2008 09:58
> [2008-08-07 10:02:12,103] ERROR [IndexMerger]
> [org.apache.jackrabbit.core.query.lucene.IndexMerger] Error while merging
> indexes: java.io.IOException: Directory was previously created with a
> different LockFactory instance; please pass null as the lockFactory instance
> and use setLockFactory to change it
> site imported:Aug 07,2008 10:02
> importing foo:Aug 07,2008 10:02
> saving foo:Aug 07,2008 10:02
> [2008-08-07 10:06:24,343] ERROR [resin-tcp-connection-127.0.0.4:6800-9]
> [org.apache.jackrabbit.core.SearchManager] Error indexing node.
> java.io.IOException: Directory was previously created with a different
> LockFactory instance; please pass null as the lockFactory instance and use
> setLockFactory to change it
>         at
> org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:192)
>         at
> org.apache.jackrabbit.core.query.lucene.PersistentIndex.<init>(PersistentIndex.java:63)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.getOrCreateIndex(MultiIndex.java:581)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex$CreateIndex.execute(MultiIndex.java:1631)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:936)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(MultiIndex.java:983)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.flush(MultiIndex.java:868)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.update(MultiIndex.java:429)
>         at
> org.apache.jackrabbit.core.query.lucene.SearchIndex.updateNodes(SearchIndex.java:496)
>         at
> org.apache.jackrabbit.core.SearchManager.onEvent(SearchManager.java:495)
>         at
> org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(EventConsumer.java:231)
>         at
> org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatchEvents(ObservationDispatcher.java:201)
>         at
> org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:425)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:721)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:857)
>         at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:324)
>         at
> org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
>         at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:300)
>         at
> org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
>         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1244)
>         at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:896)
>         at
> com.metrowerks.mdp2.channels.ChannelManagerSingleton.importSection(ChannelManagerSingleton.java:1316)
>         at
> com.metrowerks.mdp2.channels.ChannelManagerSingleton.importRepository(ChannelManagerSingleton.java:1358)
>         at
> com.metrowerks.kpimdp.deploy.BundledDeployer.deploy(BundledDeployer.java:111)
>         at
> com.metrowerks.kpimdp.deploy.action.DeploySaveAction.doActionAfterPermissionCheck(DeploySaveAction.java:38)
>         at
> com.metrowerks.kpimdp.permissions.action.CheckPermissionsAction.doAction(CheckPermissionsAction.java:32)
>         at
> com.metrowerks.mdp2.action.LoginReqAction.execute(LoginReqAction.java:50)
>         at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
>         at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
>         at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
>         at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
>         at
> com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
>         at
> com.metrowerks.mdp2.logging.PageViewFilter.doFilter(PageViewFilter.java:132)
>         at
> com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
>         at
> com.metrowerks.mdp2.web.cms.JackrabbitSessionRequestFilter.doFilter(JackrabbitSessionRequestFilter.java:57)
>         at
> com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
>         at
> com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
>         at
> com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
>         at
> com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:424)
>         at com.caucho.server.port.TcpConnection.run(TcpConnection.java:481)
>         at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:685)
>         at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:607)
>         at java.lang.Thread.run(Thread.java:619)
> foo imported:Aug 07,2008 10:06
> importing bar:Aug 07,2008 10:06
> saving bar:Aug 07,2008 10:07
> [2008-08-07 10:10:53,160] ERROR [resin-tcp-connection-127.0.0.4:6800-9]
> [org.apache.jackrabbit.core.SearchManager] Error indexing node.
> java.io.IOException: Directory was previously created with a different
> LockFactory instance; please pass null as the lockFactory instance and use
> setLockFactory to change it
>         at
> org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:192)
>         at
> org.apache.jackrabbit.core.query.lucene.PersistentIndex.<init>(PersistentIndex.java:63)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.getOrCreateIndex(MultiIndex.java:581)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex$CreateIndex.execute(MultiIndex.java:1631)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:936)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(MultiIndex.java:983)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.checkVolatileCommit(MultiIndex.java:961)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.update(MultiIndex.java:422)
>         at
> org.apache.jackrabbit.core.query.lucene.SearchIndex.updateNodes(SearchIndex.java:496)
>         at
> org.apache.jackrabbit.core.SearchManager.onEvent(SearchManager.java:495)
>         at
> org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(EventConsumer.java:231)
>         at
> org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatchEvents(ObservationDispatcher.java:201)
>         at
> org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:425)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:721)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:857)
>         at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:324)
>         at
> org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
>         at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:300)
>         at
> org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
>         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1244)
>         at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:896)
>         at
> com.metrowerks.mdp2.channels.ChannelManagerSingleton.importSection(ChannelManagerSingleton.java:1316)
>         at
> com.metrowerks.mdp2.channels.ChannelManagerSingleton.importRepository(ChannelManagerSingleton.java:1364)
>         at
> com.metrowerks.kpimdp.deploy.BundledDeployer.deploy(BundledDeployer.java:111)
>         at
> com.metrowerks.kpimdp.deploy.action.DeploySaveAction.doActionAfterPermissionCheck(DeploySaveAction.java:38)
>         at
> com.metrowerks.kpimdp.permissions.action.CheckPermissionsAction.doAction(CheckPermissionsAction.java:32)
>         at
> com.metrowerks.mdp2.action.LoginReqAction.execute(LoginReqAction.java:50)
>         at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
>         at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
>         at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
>         at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
>         at
> com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
>         at
> com.metrowerks.mdp2.logging.PageViewFilter.doFilter(PageViewFilter.java:132)
>         at
> com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
>         at
> com.metrowerks.mdp2.web.cms.JackrabbitSessionRequestFilter.doFilter(JackrabbitSessionRequestFilter.java:57)
>         at
> com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
>         at
> com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
>         at
> com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
>         at
> com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:424)
>         at com.caucho.server.port.TcpConnection.run(TcpConnection.java:481)
>         at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:685)
>         at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:607)
>         at java.lang.Thread.run(Thread.java:619)
> bar imported:Aug 07,2008 10:10
> index dir deleted:Aug 07,2008 10:10
> import complete:Aug 07,2008 10:10
> 
> 
> public void importSection(Session jrSession, String path, String section,
> int environmentId) throws IOException, RepositoryException{
>       Timestamp timestamp = null;
>       DateFormat dateFormatter = new SimpleDateFormat("MMM dd,yyyy hh:mm");
>       timestamp = new Timestamp(System.currentTimeMillis());
>       System.out.println("importing "+ section +":" +
> dateFormatter.format(timestamp)  );
>       InputStream siteIn = new FileInputStream(path + "/" + section + "-" +
> environmentId + ".xml");
>       jrSession.importXML("/", siteIn,
> ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING);
>       timestamp = new Timestamp(System.currentTimeMillis());
>       System.out.println("saving " + section + ":" +
> dateFormatter.format(timestamp)  );
>       jrSession.save();
>       jrSession.logout();
>       timestamp = new Timestamp(System.currentTimeMillis());
>       System.out.println(section + " imported:" +
> dateFormatter.format(timestamp)  );
>    }
> 
>    public void importRepository(String path, int environmentId, String
> repositoryXMLPath, String repositoryPath, String username, String password)
> throws RepositoryException, IOException, InterruptedException,
> DeleteRmRfException {
>     Timestamp timestamp = null;
>     DateFormat dateFormatter = new SimpleDateFormat("MMM dd,yyyy hh:mm");
> 
>     timestamp = new Timestamp(System.currentTimeMillis());
>     System.out.println("start import=" + dateFormatter.format(timestamp)  );
>     Session jrSession = null;
>     Repository repository = null;
>     try {
>       repository = new TransientRepository(repositoryXMLPath,
> repositoryPath);
>       SimpleCredentials creds = new SimpleCredentials(username,
> password.toCharArray());
>       jrSession = repository.login(creds);
> 
>       //register the name space
>       NamespaceRegistry nsReg =
> jrSession.getWorkspace().getNamespaceRegistry();
> 
>       nsReg.registerNamespace("test", "http://www.test.com/test");
> 
>       JackrabbitNodeTypeManager manager = (JackrabbitNodeTypeManager)
> jrSession.getWorkspace().getNodeTypeManager();
>       manager.registerNodeTypes(new FileInputStream(nodeTypeConfig),
> JackrabbitNodeTypeManager.TEXT_X_JCR_CND);
>       jrSession.save();
>       jrSession.logout();
>       shutdownRepository(repository);
>       repository  = null;
> 
>       timestamp = new Timestamp(System.currentTimeMillis());
>       System.out.println("custom node types registered:" +
> dateFormatter.format(timestamp)  );
> 
>       repository = new TransientRepository(repositoryXMLPath,
> repositoryPath);
>       jrSession = repository.login(creds);
>       importSection(jrSession, path, "site", environmentId);
>       shutdownRepository(repository);
>       repository  = null;
> 
>       repository = new TransientRepository(repositoryXMLPath,
> repositoryPath);
>       jrSession = repository.login(creds);
>       importSection(jrSession, path, "foo", environmentId);
>       shutdownRepository(repository);
>       repository  = null;
> 
>       repository = new TransientRepository(repositoryXMLPath,
> repositoryPath);
>       jrSession = repository.login(creds);
>       importSection(jrSession, path, "bar", environmentId);
>       shutdownRepository(repository);
> 
> 
>       repository = null;
>       jrSession = null;
>       
>       
>         deleteDir(repositoryPath + "/workspaces/default/index");
>         timestamp = new Timestamp(System.currentTimeMillis());
>         System.out.println("index dir deleted:" +
> dateFormatter.format(timestamp)  );
>       
>     } finally {
>       if (jrSession != null){
>         jrSession.logout();
>       }
>       if (repository != null){
>         shutdownRepository(repository);
>       }
>       repository = null;
> 
>     }
>     timestamp = new Timestamp(System.currentTimeMillis());
>     System.out.println("import complete:" + dateFormatter.format(timestamp) 
> );
>    }

Re: Issues while importing.

Posted by saraheg <sa...@gmail.com>.
I also notice that if I try to delete the index directory manually in windows 
after I have finished the import (but still stepping through the program) I
get this error in windows:

Cannot delete lucene-3a0c731f3a5cp4d7286e....-n-write.lock: It is being used
by another person on program.

Close any programs that might be using the file and try again.

I see this even though there is no .lock file in the main repository
directory.
-- 
View this message in context: http://www.nabble.com/Issues-while-importing.-tp18874536p18930526.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Re: Issues while importing.

Posted by Thomas Müller <th...@day.com>.
Hi,

> (it would not attempt to auto-delete the .lock file from what we
> were experiencing).

Maybe that was using an old version of Jackrabbit (not sure), but in
1.3 and 1.4 you should not delete the .lock file, it is deleted
automatically. If it is not deleted automatically, this is an
indication that the repository is still open (in another process, or
within the same process in another classloader).

Regards,
Thomas

Re: Issues while importing.

Posted by saraheg <sa...@gmail.com>.
I will have to get back to the developer who wrote that awhile back to be
sure..but I think the problem was when an error shut down resin, it would
leave the .lock file, and then the site would not come up on restart due to
the .lock (it would not attempt to auto-delete the .lock file from what we
were experiencing).  



-- 
View this message in context: http://www.nabble.com/Issues-while-importing.-tp18874536p18953569.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Re: Issues while importing.

Posted by Thomas Müller <th...@day.com>.
Hi,

Sorry, it should read: "it is never required to delete the file manually.".

Some more details: if the file exists while you start up the
repository (because the process was killed previously), Jackrabbit
will try to delete it automatically. That's why it is never required
to delete it manually. Actually, deleting the file is dangerous.

Regards,
Thomas

Re: Issues while importing.

Posted by Thomas Müller <th...@day.com>.
Hi,

>            File lockFile = new File(repoDir+".lock");
>            if (lockFile.exists()) {
>                lockFile.delete();

So you delete the .lock file in your code? Could you explain why you
do that? As far as I know, it is never not required to delete the file
manually.

Regards,
Thomas

Re: Issues while importing.

Posted by saraheg <sa...@gmail.com>.


public void shutdownRepository(Repository repository){
     if (repository instanceof RepositoryImpl) {
         RepositoryImpl repo = (RepositoryImpl) repository;
         repo.shutdown();
    } else {
        // note unbindrepository is supposed to work, but seems to get and
locking error so here is the workaround
        if (BaseManager.getRepositoryHomeDir()!=null) {
            String repoDir = BaseManager.getRepositoryHomeDir();
            if (!repoDir.endsWith("/")) {
                repoDir += "/";
            }
            File lockFile = new File(repoDir+".lock");
            if (lockFile.exists()) {
                lockFile.delete();
                System.out.println("Deleted "+lockFile.getAbsolutePath()+"
lockfile for restart.");
            }

        }
    }
  }
-- 
View this message in context: http://www.nabble.com/Issues-while-importing.-tp18874536p18929475.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Re: Issues while importing.

Posted by Marcel Reutegger <ma...@gmx.net>.
Hi,

can you please also post the shutdownRepository() method? Thanks

regards
  marcel

saraheg wrote:
> Hello.  I am getting an intermittent error while doing an import.  I export 3
> base nodes site, foo, and bar.
> *Sometimes I can do the import with NO errors at all.
> 
> 
> The whole error stacktrace is sometimes shown, sometimes not. The error is
> never thrown (it appears to be a lucene error).  My temp fix for this is to
> delete the index dir after the import, it will rebuild itself when the site
> that uses this starts up, and works correctly, otherwise a search of the
> repo has missing data (i can see the missing data if i do an export of the
> new repo).
> 
> Any idea what is causing this error?
> 
> Do the import/export times look right? They seem extremly long to me.
> 
> total time to export is 14 mins (also very long)! using exportSystemView
> with NO binaray data all data is very nested..no nodes have more than 300
> children
> 
> I am exporting using the
> org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager
> PersistenceManager, and importing using
> org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager
> 
> Jackrabbit version 1.4
> jdk 1.5
> 
> The exported xmls are: 
> 
> 
> 
> site-1.xml : 5.8M
> foo-1.xml : 7.6M
> bar-1.xml :  is 8M
> 
> 
> 
> 
> 
> start import=Aug 07,2008 09:58
> custom node types registered:Aug 07,2008 09:58
> importing site:Aug 07,2008 09:58
> saving site:Aug 07,2008 09:58
> [2008-08-07 10:02:12,103] ERROR [IndexMerger]
> [org.apache.jackrabbit.core.query.lucene.IndexMerger] Error while merging
> indexes: java.io.IOException: Directory was previously created with a
> different LockFactory instance; please pass null as the lockFactory instance
> and use setLockFactory to change it
> site imported:Aug 07,2008 10:02
> importing foo:Aug 07,2008 10:02
> saving foo:Aug 07,2008 10:02
> [2008-08-07 10:06:24,343] ERROR [resin-tcp-connection-127.0.0.4:6800-9]
> [org.apache.jackrabbit.core.SearchManager] Error indexing node.
> java.io.IOException: Directory was previously created with a different
> LockFactory instance; please pass null as the lockFactory instance and use
> setLockFactory to change it
>         at
> org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:192)
>         at
> org.apache.jackrabbit.core.query.lucene.PersistentIndex.<init>(PersistentIndex.java:63)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.getOrCreateIndex(MultiIndex.java:581)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex$CreateIndex.execute(MultiIndex.java:1631)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:936)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(MultiIndex.java:983)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.flush(MultiIndex.java:868)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.update(MultiIndex.java:429)
>         at
> org.apache.jackrabbit.core.query.lucene.SearchIndex.updateNodes(SearchIndex.java:496)
>         at
> org.apache.jackrabbit.core.SearchManager.onEvent(SearchManager.java:495)
>         at
> org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(EventConsumer.java:231)
>         at
> org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatchEvents(ObservationDispatcher.java:201)
>         at
> org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:425)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:721)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:857)
>         at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:324)
>         at
> org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
>         at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:300)
>         at
> org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
>         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1244)
>         at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:896)
>         at
> com.metrowerks.mdp2.channels.ChannelManagerSingleton.importSection(ChannelManagerSingleton.java:1316)
>         at
> com.metrowerks.mdp2.channels.ChannelManagerSingleton.importRepository(ChannelManagerSingleton.java:1358)
>         at
> com.metrowerks.kpimdp.deploy.BundledDeployer.deploy(BundledDeployer.java:111)
>         at
> com.metrowerks.kpimdp.deploy.action.DeploySaveAction.doActionAfterPermissionCheck(DeploySaveAction.java:38)
>         at
> com.metrowerks.kpimdp.permissions.action.CheckPermissionsAction.doAction(CheckPermissionsAction.java:32)
>         at
> com.metrowerks.mdp2.action.LoginReqAction.execute(LoginReqAction.java:50)
>         at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
>         at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
>         at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
>         at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
>         at
> com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
>         at
> com.metrowerks.mdp2.logging.PageViewFilter.doFilter(PageViewFilter.java:132)
>         at
> com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
>         at
> com.metrowerks.mdp2.web.cms.JackrabbitSessionRequestFilter.doFilter(JackrabbitSessionRequestFilter.java:57)
>         at
> com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
>         at
> com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
>         at
> com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
>         at
> com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:424)
>         at com.caucho.server.port.TcpConnection.run(TcpConnection.java:481)
>         at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:685)
>         at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:607)
>         at java.lang.Thread.run(Thread.java:619)
> foo imported:Aug 07,2008 10:06
> importing bar:Aug 07,2008 10:06
> saving bar:Aug 07,2008 10:07
> [2008-08-07 10:10:53,160] ERROR [resin-tcp-connection-127.0.0.4:6800-9]
> [org.apache.jackrabbit.core.SearchManager] Error indexing node.
> java.io.IOException: Directory was previously created with a different
> LockFactory instance; please pass null as the lockFactory instance and use
> setLockFactory to change it
>         at
> org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:192)
>         at
> org.apache.jackrabbit.core.query.lucene.PersistentIndex.<init>(PersistentIndex.java:63)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.getOrCreateIndex(MultiIndex.java:581)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex$CreateIndex.execute(MultiIndex.java:1631)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.executeAndLog(MultiIndex.java:936)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.commitVolatileIndex(MultiIndex.java:983)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.checkVolatileCommit(MultiIndex.java:961)
>         at
> org.apache.jackrabbit.core.query.lucene.MultiIndex.update(MultiIndex.java:422)
>         at
> org.apache.jackrabbit.core.query.lucene.SearchIndex.updateNodes(SearchIndex.java:496)
>         at
> org.apache.jackrabbit.core.SearchManager.onEvent(SearchManager.java:495)
>         at
> org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(EventConsumer.java:231)
>         at
> org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatchEvents(ObservationDispatcher.java:201)
>         at
> org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:425)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:721)
>         at
> org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:857)
>         at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:324)
>         at
> org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
>         at
> org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:300)
>         at
> org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
>         at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1244)
>         at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:896)
>         at
> com.metrowerks.mdp2.channels.ChannelManagerSingleton.importSection(ChannelManagerSingleton.java:1316)
>         at
> com.metrowerks.mdp2.channels.ChannelManagerSingleton.importRepository(ChannelManagerSingleton.java:1364)
>         at
> com.metrowerks.kpimdp.deploy.BundledDeployer.deploy(BundledDeployer.java:111)
>         at
> com.metrowerks.kpimdp.deploy.action.DeploySaveAction.doActionAfterPermissionCheck(DeploySaveAction.java:38)
>         at
> com.metrowerks.kpimdp.permissions.action.CheckPermissionsAction.doAction(CheckPermissionsAction.java:32)
>         at
> com.metrowerks.mdp2.action.LoginReqAction.execute(LoginReqAction.java:50)
>         at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
>         at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
>         at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
>         at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:153)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
>         at
> com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
>         at
> com.metrowerks.mdp2.logging.PageViewFilter.doFilter(PageViewFilter.java:132)
>         at
> com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
>         at
> com.metrowerks.mdp2.web.cms.JackrabbitSessionRequestFilter.doFilter(JackrabbitSessionRequestFilter.java:57)
>         at
> com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:73)
>         at
> com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
>         at
> com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:240)
>         at
> com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:424)
>         at com.caucho.server.port.TcpConnection.run(TcpConnection.java:481)
>         at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:685)
>         at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:607)
>         at java.lang.Thread.run(Thread.java:619)
> bar imported:Aug 07,2008 10:10
> index dir deleted:Aug 07,2008 10:10
> import complete:Aug 07,2008 10:10
> 
> 
> public void importSection(Session jrSession, String path, String section,
> int environmentId) throws IOException, RepositoryException{
>       Timestamp timestamp = null;
>       DateFormat dateFormatter = new SimpleDateFormat("MMM dd,yyyy hh:mm");
>       timestamp = new Timestamp(System.currentTimeMillis());
>       System.out.println("importing "+ section +":" +
> dateFormatter.format(timestamp)  );
>       InputStream siteIn = new FileInputStream(path + "/" + section + "-" +
> environmentId + ".xml");
>       jrSession.importXML("/", siteIn,
> ImportUUIDBehavior.IMPORT_UUID_COLLISION_REPLACE_EXISTING);
>       timestamp = new Timestamp(System.currentTimeMillis());
>       System.out.println("saving " + section + ":" +
> dateFormatter.format(timestamp)  );
>       jrSession.save();
>       jrSession.logout();
>       timestamp = new Timestamp(System.currentTimeMillis());
>       System.out.println(section + " imported:" +
> dateFormatter.format(timestamp)  );
>    }
> 
>    public void importRepository(String path, int environmentId, String
> repositoryXMLPath, String repositoryPath, String username, String password)
> throws RepositoryException, IOException, InterruptedException,
> DeleteRmRfException {
>     Timestamp timestamp = null;
>     DateFormat dateFormatter = new SimpleDateFormat("MMM dd,yyyy hh:mm");
> 
>     timestamp = new Timestamp(System.currentTimeMillis());
>     System.out.println("start import=" + dateFormatter.format(timestamp)  );
>     Session jrSession = null;
>     Repository repository = null;
>     try {
>       repository = new TransientRepository(repositoryXMLPath,
> repositoryPath);
>       SimpleCredentials creds = new SimpleCredentials(username,
> password.toCharArray());
>       jrSession = repository.login(creds);
> 
>       //register the name space
>       NamespaceRegistry nsReg =
> jrSession.getWorkspace().getNamespaceRegistry();
> 
>       nsReg.registerNamespace("test", "http://www.test.com/test");
> 
>       JackrabbitNodeTypeManager manager = (JackrabbitNodeTypeManager)
> jrSession.getWorkspace().getNodeTypeManager();
>       manager.registerNodeTypes(new FileInputStream(nodeTypeConfig),
> JackrabbitNodeTypeManager.TEXT_X_JCR_CND);
>       jrSession.save();
>       jrSession.logout();
>       shutdownRepository(repository);
>       repository  = null;
> 
>       timestamp = new Timestamp(System.currentTimeMillis());
>       System.out.println("custom node types registered:" +
> dateFormatter.format(timestamp)  );
> 
>       repository = new TransientRepository(repositoryXMLPath,
> repositoryPath);
>       jrSession = repository.login(creds);
>       importSection(jrSession, path, "site", environmentId);
>       shutdownRepository(repository);
>       repository  = null;
> 
>       repository = new TransientRepository(repositoryXMLPath,
> repositoryPath);
>       jrSession = repository.login(creds);
>       importSection(jrSession, path, "foo", environmentId);
>       shutdownRepository(repository);
>       repository  = null;
> 
>       repository = new TransientRepository(repositoryXMLPath,
> repositoryPath);
>       jrSession = repository.login(creds);
>       importSection(jrSession, path, "bar", environmentId);
>       shutdownRepository(repository);
> 
> 
>       repository = null;
>       jrSession = null;
>       
>       
>         deleteDir(repositoryPath + "/workspaces/default/index");
>         timestamp = new Timestamp(System.currentTimeMillis());
>         System.out.println("index dir deleted:" +
> dateFormatter.format(timestamp)  );
>       
>     } finally {
>       if (jrSession != null){
>         jrSession.logout();
>       }
>       if (repository != null){
>         shutdownRepository(repository);
>       }
>       repository = null;
> 
>     }
>     timestamp = new Timestamp(System.currentTimeMillis());
>     System.out.println("import complete:" + dateFormatter.format(timestamp) 
> );
>    }