[appengine-java] Any changes to access levels in com.google.appengine.api.datastore recently?

2010-10-14 Thread Darren Clarke
Has anything changed with class access levels (public vs. private) in
the production datastore code in the last day or so?

I've had a Clojure app running for several weeks and starting last
night, whenever I try to access the datastore, I get the error below.
It could be a bug in the library I'm using (appengine-clj) or even in
Clojure's dispatch code, but I just want to understand if anything has
changed server-side that might have triggered it. The application still
works on the dev appserver v1.3.7.





java.lang.IllegalArgumentException: Can't call public method of
non-public class: public com.google.appengine.api.datastore.Transaction
com.google.appengine.api.datastore.BaseDatastoreService.getCurrentTransaction(com.google.appengine.api.datastore.Transaction)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:85) at
clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) at
appengine.datastore.service$current_transaction.invoke(service.clj:72)
at appengine.datastore.service$put_entity.invoke(service.clj:131) at
appengine.datastore.service$fn__176.invoke(service.clj:149) at
appengine.datastore.service$fn__136$G__116__141.invoke(service.clj:10)
at
com.redaranj.ledes.service.servlet$fn__1902$fn__1903.invoke(servlet.clj:17)
at compojure.core$routes$fn__1706$fn__1707.invoke(core.clj:72) at
clojure.core$some.invokeStatic(core.clj:2297) at
compojure.core$routes$fn__1706.invoke(core.clj:71) at
ring.middleware.params$wrap_params$fn__1468.invoke(params.clj:77) at
ring.middleware.cookies$wrap_cookies$fn__1559.invoke(cookies.clj:123)
at
ring.util.servlet$make_service_method$fn__1881.invoke(servlet.clj:117)
at com.redaranj.ledes.service.servlet$_service.invoke(servlet.clj:19)
at com.redaranj.ledes.service.servlet.service(Unknown Source) at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at
com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326) at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at
com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135)
at
com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:261)
at
com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8483)
at
com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8481)
at
com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
at
com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:418)
at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:572)
at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:448)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:688)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:326)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:318)
at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:446)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)

-- 
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-j...@googlegroups.com.
To unsubscribe from this grou

Re: [appengine-java] Any changes to access levels in com.google.appengine.api.datastore recently?

2010-10-15 Thread Max Ross (Google)
We refactored the internals of the DatastoreService implementation pretty
heavily in the release we just pushed out but there shouldn't have been any
backwards incompatible changes to the public API.  I'm not familiar with
appengine-clj.  Does it use reflection to access non-public
classes/methods/fields?  If so that's not safe, since we only guarantee
backwards compatibility for the public API.  If not then I'll need more
info.

Thanks,
Max

On Thu, Oct 14, 2010 at 12:14 PM, Darren Clarke  wrote:

> Has anything changed with class access levels (public vs. private) in the 
> production datastore code in the last day or so?
>
> I've had a Clojure app running for several weeks and starting last night, 
> whenever I try to access the datastore, I get the error below. It could be a 
> bug in the library I'm using (appengine-clj) or even in Clojure's dispatch 
> code, but I just want to understand if anything has changed server-side that 
> might have triggered it. The application still works on the dev appserver 
> v1.3.7.
>
>
> java.lang.IllegalArgumentException: Can't call public method of non-public 
> class: public com.google.appengine.api.datastore.Transaction 
> com.google.appengine.api.datastore.BaseDatastoreService.getCurrentTransaction(com.google.appengine.api.datastore.Transaction)
>   at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:85)
>   at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28)
>   at 
> appengine.datastore.service$current_transaction.invoke(service.clj:72)
>   at appengine.datastore.service$put_entity.invoke(service.clj:131)
>   at appengine.datastore.service$fn__176.invoke(service.clj:149)
>   at 
> appengine.datastore.service$fn__136$G__116__141.invoke(service.clj:10)
>   at 
> com.redaranj.ledes.service.servlet$fn__1902$fn__1903.invoke(servlet.clj:17)
>   at compojure.core$routes$fn__1706$fn__1707.invoke(core.clj:72)
>   at clojure.core$some.invokeStatic(core.clj:2297)
>   at compojure.core$routes$fn__1706.invoke(core.clj:71)
>   at ring.middleware.params$wrap_params$fn__1468.invoke(params.clj:77)
>   at ring.middleware.cookies$wrap_cookies$fn__1559.invoke(cookies.clj:123)
>   at 
> ring.util.servlet$make_service_method$fn__1881.invoke(servlet.clj:117)
>   at com.redaranj.ledes.service.servlet$_service.invoke(servlet.clj:19)
>   at com.redaranj.ledes.service.servlet.service(Unknown Source)
>   at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
>   at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
>   at 
> com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:97)
>   at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>   at 
> com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
>   at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>   at 
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
>   at 
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>   at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
>   at 
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>   at 
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
>   at 
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>   at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
>   at 
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238)
>   at 
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>   at org.mortbay.jetty.Server.handle(Server.java:326)
>   at 
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
>   at 
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
>   at 
> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
>   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>   at 
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135)
>   at 
> com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:261)
>   at 
> com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8483)
>   at 
> com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8481)
>   at 
> com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
>   at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:418)
>   at com.google.net