It looks like compass is reading the System property, java.io.tmpdir and
eventually it gets passed into a File constructor call. App Engine doesn't
have a temp directory (we don't allow the writing of any files to disk), so
this system property is set to null. If you need to set this system property
for compass, you can configure it in your appengine-web.xml. For example,

<system-properties>
  <property name="java.io.tmpdir" value="."/>
</system-properties>

On Mon, Aug 31, 2009 at 4:05 AM, barak <barak.ya...@gmail.com> wrote:

>
> Hello all,
>
> I'm trying to upload an application that using Lucene and compass. The
> Lucene files are stored under the war directory and should be open to
> read access only. When booting the application, the files are opened
> by the lucene (wrapped with compass). All works ok in the developmemt
> server, when deployed in GAE, the following exception raised:
>
> java.lang.NullPointerException
>        at java.io.File.<init>(File.java:276)
>        at
> org.apache.lucene.store.FSDirectory.getDirectory(FSDirectory.java:
> 139)
>        at org.compass.core.lucene.engine.store.FSDirectoryStore.configure
> (FSDirectoryStore.java:55)
>        at
> org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore.<init>
> (DefaultLuceneSearchEngineStore.java:144)
>        at org.compass.core.lucene.engine.LuceneSearchEngineFactory.<init>
> (LuceneSearchEngineFactory.java:122)
>        at org.compass.core.impl.DefaultCompass.<init>(DefaultCompass.java:
> 123)
>        at org.compass.core.impl.DefaultCompass.<init>(DefaultCompass.java:
> 116)
>        at org.compass.core.config.CompassConfiguration.buildCompass
> (CompassConfiguration.java:288)
>        at com.me.store.DataAccessObject.<init>(DataAccessObject.java:76)
>        at com.me.store.DataAccessObject.getInstance(DataAccessObject.java:
> 53)
>        at com.me.jsf.LargeDataModelBeanSample$Model.fetchPage
> (LargeDataModelBeanSample.java:192)
>        at com.me.jsf.PagedListDataModel.fetchPageInternal
> (PagedListDataModel.java:178)
>        at
> com.me.jsf.PagedListDataModel.getPage(PagedListDataModel.java:107)
>        at com.me.jsf.PagedListDataModel.isRowAvailable
> (PagedListDataModel.java:201)
>        at
> org.apache.myfaces.component.html.ext.HtmlDataTableHack.isRowAvailable
> (HtmlDataTableHack.java:88)
>        at
> org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex
> (HtmlDataTableHack.java:297)
>        at
> org.apache.myfaces.component.html.ext.AbstractHtmlDataTable.setRowIndex
> (AbstractHtmlDataTable.java:276)
>        at javax.faces.component.UIData.processColumnChildren(UIData.java:
> 725)
>        at javax.faces.component.UIData.processDecodes(UIData.java:613)
>        at
> org.apache.myfaces.component.html.ext.AbstractHtmlDataTable.processDecodes
> (AbstractHtmlDataTable.java:306)
>        at javax.faces.component.UIForm.processDecodes(UIForm.java:61)
>        at javax.faces.component.UIComponentBase.processDecodes
> (UIComponentBase.java:844)
>        at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:
> 158)
>        at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute
> (ApplyRequestValuesExecutor.java:32)
>        at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase
> (LifecycleImpl.java:105)
>        at org.apache.myfaces.lifecycle.LifecycleImpl.execute
> (LifecycleImpl.java:80)
>        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:143)
>        at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> 487)
>        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1093)
>        at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter
> (SaveSessionFilter.java:35)
>        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
>        at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
> (TransactionCleanupFilter.java:43)
>        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1084)
>        at org.mortbay.jetty.servlet.ServletHandler.handle
> (ServletHandler.java:360)
>        at org.mortbay.jetty.security.SecurityHandler.handle
> (SecurityHandler.java:216)
>        at org.mortbay.jetty.servlet.SessionHandler.handle
> (SessionHandler.java:181)
>        at org.mortbay.jetty.handler.ContextHandler.handle
> (ContextHandler.java:712)
>        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> 405)
>        at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
> (AppVersionHandlerMap.java:237)
>        at org.mortbay.jetty.handler.HandlerWrapper.handle
> (HandlerWrapper.java:139)
>        at org.mortbay.jetty.Server.handle(Server.java:313)
>        at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> 506)
>        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
> (HttpConnection.java:830)
>        at
> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable
> (RpcRequestParser.java:76)
>        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
>        at
>
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest
> (JettyServletEngineAdapter.java:139)
>        at com.google.apphosting.runtime.JavaRuntime.handleRequest
> (JavaRuntime.java:235)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:4823)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:4821)
>        at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
> (BlockingApplicationHandler.java:24)
>        at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
> 359)
>        at com.google.net.rpc.impl.Server$2.run(Server.java:820)
>        at com.google.tracing.LocalTraceSpanRunnable.run
> (LocalTraceSpanRunnable.java:56)
>        at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
> (LocalTraceSpanBuilder.java:516)
>        at com.google.net.rpc.impl.Server.startRpc(Server.java:775)
>        at com.google.net.rpc.impl.Server.processRequest(Server.java:348)
>        at com.google.net.rpc.impl.ServerConnection.messageReceived
> (ServerConnection.java:436)
>        at com.google.net.rpc.impl.RpcConnection.parseMessages
> (RpcConnection.java:319)
>        at com.google.net.rpc.impl.RpcConnection.dataReceived
> (RpcConnection.java:290)
>        at com.google.net.async.Connection.handleReadEvent(Connection.java:
> 428)
>        at com.google.net.async.EventDispatcher.processNetworkEvents
> (EventDispatcher.java:762)
>        at com.google.net.async.EventDispatcher.internalLoop
> (EventDispatcher.java:207)
>        at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
> 101)
>        at com.google.net.rpc.RpcService.runUntilServerShutdown
> (RpcService.java:251)
>        at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run
> (JavaRuntime.java:374)
>        at java.lang.Thread.run(Unknown Source)
>
> This app used to work before on GAE, and I'm not sure why it fails
> now. Can someone assist please?
>
> Thanks.
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to