[appengine-java] Re: Unable to load several versions of AppEngine Project and Seeing HardDeadLineExceeded Exceptions
I'm also seeing those problems since the latest maitainance on MS. My app is with a high error rate because of this, and since multithreaded is enabled, the error is multiplied. Please, if your issue is similar to thoes ones, star this production issue: http://code.google.com/p/googleappengine/issues/detail?id=7108 Em quinta-feira, 8 de março de 2012 09h42min25s UTC-3, Luke escreveu: i also have similar error. anyone figured out why this happen? -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/zgjyGf_R3C0J. 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.
[appengine-java] Re: Handling ISO-8559-1 encoded parameter values in request
Hello, You may find something usefull here: http://stackoverflow.com/questions/3278900/httpservletrequest-setcharacterencoding-seems-to-do-nothing. I suggest you to try setting the encoding of the request prior to processing any information, it may works for the query string too. If that wont works, It seem's that this is configured in the servlet container. Maybe you can try reading the whole QueryString (req.getQueryString()) and see if you can convert it using one of those methods: http://stackoverflow.com/questions/655891/converting-utf-8-to-iso-8859-1-in-java-how-to-keep-it-as-single-byte (just change the from/to encodings to match your case ISO - UTF8). Please post here if it works. Hope this helps, -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/4Rq2qMopHrEJ. 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.
[appengine-java] 200 was logged when, apparently, an error happened
Dear App Engine developers and googlers, Sorry for the long post, but I got something weird on my logs. A response status 200 was logged when, apparently, an error happened. Does it makes any sense, or I'm just misreading the messages from the logs? This happened a few times, and some requests are failing properly (500 status). Is this due the static 500 error handler configured in my appengie-web.xml? In this case, I guess that this is not a sucessfull request either, so a 500 error is more applicable and I'll get this warning on my error chart in the dashboard (which I'm not sure now that is providing the right information ...). Thanks in advance. Sample stack trace follows: 1. 2012-02-02 10:45:15.646 /guarulhos/promocao-e-desconto/lanche-natural--suco-de-400ml-no-shopping-boulevard-dvitta---10216104?categoria=gastronomiaid=1 200 59686ms 67kb Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7 189.34.9.239 - - [02/Feb/2012:04:45:15 -0800] GET /guarulhos/promocao-e-desconto/lanche-natural--suco-de-400ml-no-shopping-boulevard-dvitta---10216104?categoria=gastronomiaid=1 HTTP/1.1 200 67809 http://www.ofertaunica.com/guarulhos/promocao-e-desconto/cheese-salada--batata-frita-no-emporio-parque-na-vila-augusta---12707408?categoria=gastronomiaid=1cheese-salada--batata-frita-no-emporio-parque-na-vila-augusta---12707408?categoria=gastronomiaid=1; Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7 www.ofertaunica.com ms=59687 cpu_ms=1733 api_cpu_ms=1057 cpm_usd=0.056004 exit_code=104 instance=00c61b117c7a9b197087ae4f18973656059d29 2. W 2012-02-02 10:45:15.607 A serious problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. If you see this message frequently, you may be throwing exceptions during the initialization of your application. (Error code 104) -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/tgwoITxKVFUJ. 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.
[appengine-java] Re: 200 was logged when, apparently, an error happened
Just another strange log: deadline exception, and 200 status code for response: 1. 2012-02-02 10:45:15.116 /pelotas/promocao-e-desconto/manicure--pedicure--design-de-sobrancelhas-no-centro---8201538 200 60338ms 0kb 187.45.240.38 - - [02/Feb/2012:04:45:15 -0800] GET /pelotas/promocao-e-desconto/manicure--pedicure--design-de-sobrancelhas-no-centro---8201538 HTTP/1.1 200 128 - - www.ofertaunica.com ms=60338 cpu_ms=1210 api_cpu_ms=953 cpm_usd=0.033660 exit_code=104 instance=00c61b117c5e9499e0c235b467612a49de5c 2. E 2012-02-02 10:45:14.377 org.apache.jasper.runtime.JspFactoryImpl internalGetPageContext: Exception initializing page context com.google.apphosting.api.DeadlineExceededException: This request (a9c3fade15c22ddf) started at 2012/02/02 12:44:14.904 UTC and was still executing at 2012/02/02 12:45:14.375 UTC. at sun.misc.Unsafe.park(Native Method) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1037) at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1326) at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:258) at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:91) at com.google.appengine.tools.development.TimedFuture.get(TimedFuture.java:41) at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:90) at com.google.appengine.api.datastore.FutureHelper$CumulativeAggregateFuture.get(FutureHelper.java:144) at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:90) at com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:72) at com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:33) at com.google.appengine.api.datastore.DatastoreServiceImpl$2.runInternal(DatastoreServiceImpl.java:113) at com.google.appengine.api.datastore.DatastoreServiceImpl$2.runInternal(DatastoreServiceImpl.java:110) at com.google.appengine.api.datastore.TransactionRunner.runInTransaction(TransactionRunner.java:31) at com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java:110) at com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java:94) at com.google.apphosting.runtime.jetty.DatastoreSessionStore.saveSession(DatastoreSessionStore.java:93) at com.google.apphosting.runtime.jetty.SessionManager.createSession(SessionManager.java:357) at com.google.apphosting.runtime.jetty.SessionManager$AppEngineSession.init(SessionManager.java:130) at com.google.apphosting.runtime.jetty.SessionManager.newSession(SessionManager.java:288) at com.google.apphosting.runtime.jetty.SessionManager.newSession(SessionManager.java:43) at org.mortbay.jetty.servlet.AbstractSessionManager.newHttpSession(AbstractSessionManager.java:413) at org.mortbay.jetty.Request.getSession(Request.java:1242) at org.mortbay.jetty.Request.getSession(Request.java:1214) at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:224) at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:224) at org.apache.jasper.runtime.PageContextImpl._initialize(PageContextImpl.java:146) at org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:124) at org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:107) at org.apache.jasper.runtime.JspFactoryImpl.access$000(JspFactoryImpl.java:40) at org.apache.jasper.runtime.JspFactoryImpl$PrivilegedGetPageContext.run(JspFactoryImpl.java:149) at com.google.apphosting.runtime.security.shared.intercept.java.security.AccessController_.doPrivileged(AccessController_.java:34) at org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:61) at org.apache.jsp.WEB_002dINF.jsp.site.oferta_jsp._jspService(oferta_jsp.java:114) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) 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
Re: [appengine-java] Re: 200 was logged when, apparently, an error happened
Thaks for your answers Mat. I guess you may be right. The log for the serious problem is before the sucesfull request. I'll double check our initialization code, but on local server all our developers are running and debugging the app properly, so it may be a singular initialization problem that may be happening only in production. I'll try starting the devserver and, immediately after the app is initialized, access the erroring servlet to see if I find something diferent. When testing, we usually access the index.jsp url at first run of the local instance, so there may be something wrong in the servlet/jsp that is erroring. I'll post back soon. Thanks for your help, -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/UruVDdFFUu0J. 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.
[appengine-java] Re: A simple imap email connector doesn't work
Hi Kesava, Yes, I guess that due to the sandbox restrictions, you can't do that this way. Not sure, but isn't there any HTTP compatible Gmail API to do that? All I found is the Gmail Feed that can let you see some of the email fields, but not sure if this is what you needhttp://code.google.com/intl/en/apis/gmail/docs/inbox_feed.html#inbox . Best Regards, -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/sDGZ9sLR_KYJ. 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.
[appengine-java] Re: DataNucleus App Engine Plugin v2.0.0-RC1 available for testing
Sounds Great! Just curious: how does the unowned relationships works? Does it enable lazy loading the related part as a separated datastore get? Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/Un7uMcWiiGcJ. 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.
[appengine-java] Re: Is it suggested to use DatastoreMutationPool
Hi Miguel, The MutationPool is managed by the MapReduceServlet, and thus, if you don't use it inside a MapReduce job it won't be flushed to the datastore automaticaly. You can, however, use the pool and manage it by your own. You can also grab the code and build a custom version of it, too. Hope this helps, -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/ZgkGGlpGoBAJ. 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.
[appengine-java] Re: Change from String to Integer , now can't rid of Zombie instances... what is the right procedure to do so?
Daniel, To convert old session data I started to persist just the user Id in session. Sadly, unlike memcache, you can't control how the session is deserialized. In my case, any request with has the old user data in session was throwing 500 erros and I couldn't control this behavior (it was a filter from the gae...). What I did was something like this: public MyUser getCurrentUser(HttpServletRequest req) { Object userOrId = req.getSession().getAttribute(user); if (userOrId instanceof Long) { return loadUserFromDsOrMemcache((Long) userOrId); } else { // Remove user from session and start storing ID for next change to User class dont raise exceptoins ... User user = (User) userOrId; req.getSession().setAttribute(user, user.getId()); return user; } } This way I could get rid of storing this in session and of the app being unacessible when I changed my model (wich was happening heavly by the way...). Note that at the time I deployed this code, the User object hasn't changed. After running this for a while (you can expire sessions or delete them in bulk from the datastore so you can force them to expire, I deployed the new version. To store json data, you may use some json library that can map/convert to/from Java - Json, like Google Gson: String userJson = new Gson().toJson(user); req.getSession().setAttribute(user, userJson); (...) String userJson = (String) req.getSession().getAttribute(user); if (userJson != null) { User user = new Gson().fromJson(User.class, userJson); } This way you can add/remove fields to you model, and old session data will be restored as expected. Note that is a good practice to set defaults for the new fields, so your session data won't create unusable objects. In your original post, the change from string to integer may be solved by overriding the Gson de-serializer to handle the id field as number and not as string. I guess that you can change the way Java will de-serialize your classes too, but I'm not sure if this will solve your particular issue mentioned. Not sure if this is the best way to handle, but this is how I solved on our live app. More on Gson: http://code.google.com/p/google-gson/. Hope this helps (sorry for some typos or misspelled words) Best Regards, -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/kReedxuxpgEJ. 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.
[appengine-java] Re: Change from String to Integer , now can't rid of Zombie instances... what is the right procedure to do so?
Sine you are talking about _ah_SESSION stuff I suppose you are serializing ToBuyBeans to the sessions. On AppEngine, sessions are implemented using a combination of datastore and memecache. When you deleted your old session data from the datastore, the memcache was still there, and only when they got flushed your problem was automatic solved. Sadly, I was having this trouble too previously, and the only way to get rid of it was to deploy a versions that was trying to fetch data from session and convert to new format or invalidate the session. This is very odd, tought, so I started to store only unchanged data, like a JSON representation of you objects, that will never stop your app when you change your code and redeploy. Gson and flex-json are good start points, apart from the fact that they add some small conversion overhead before store data in session. Hope this helps (sorry for typos ... I'm sleepy) -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/81WIdNaX5HoJ. 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.
[appengine-java] Re: Infinite loop of redirection related to 404
I'm experiencing the same behavior in my app. I got the 404 infinite redirect loop when my app has a jsp-config in web.xml. This only happens on production, so I guess is this a production bug? The only thing that seem to fix this issue is by removing any jsp-config you have in web.xml. This is very odd because you may want to use it to some useful settings, like: el-ignoredfalse/el-ignored include-prelude/WEB-INF/prelude.jspf/include-prelude trim-directive-whitespacestrue/trim-directive-whitespaces Sadly, you have to add all that stuff in your jsps manually. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/ZiFf0JSUQYoJ. 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.
[appengine-java] Re: Quick way to delete datastore entities?
If you have multiple logins enabled, or if you are not the app owner, I guess that the datastore admin page won't open. Try accessing the url of the built-in directly: http://ah-builtin-python-bundle-dot-latest-dot-YOUR APP ID HERE.appspot.com/_ah/datastore_admin/ Hope this helps, - Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/m3QGNShX6cIJ. 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.
[appengine-java] Re: Quick way to delete datastore entities?
I guess that you still is billed by the CPU hours consumed by the datastore operations. That means that you have unlimited datastore operations, but they will bi billed as cpu_hours. Best Regards, -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/dxydEWZE8PcJ. 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.
[appengine-java] What is the best buffer size when using a BufferedWriter with the BlobStore WriteChannel?
When writing to the WriteChannel, what is a reasonable ammount for the buffer size? I'm planning to use this buffered writer with Apache Velocity, to let Velocity write directly to the Channel and generate a large report (~10MB). FileWriteChannel writeChannel = FileServiceFactory.getFileService().openWriteChannel(new AppEngineFile(fullpath), true); BufferedWriter out = new BufferedWriter(writeChannel, ???); -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/kdGZ4iHqjSgJ. 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.
[appengine-java] Re: Automatically increment version number
I use Mercurial as SCM, and the command hg id -i and hg id -n give's me the current revision id and hash. To be able to have full control on what version is running on the server side, we use the following ant tasks: This one filter an appengine-web.xml.in file, that is under version control, and that has the appid and appversion as ant filter properties: target name=update-app-version description=Update the appengine-web.xml with the current mercurial revision as app version exec executable=hg outputproperty=mercurial.changeset arg value=id / arg value=-i / /exec exec executable=hg outputproperty=mercurial.revision arg value=id / arg value=-n / /exec property name=appversion value=${version}-${release}-${mercurial.revision}-${mercurial.changeset}-${stability} / filter token=appid value=${appid} / filter token=appversion value=${appversion} / copy file=war/WEB-INF/appengine-web.xml.in tofile=war/WEB-INF/appengine-web.xml filtering=true overwrite=true / echo message=App version set to ${appversion} / /target And this is a modified version of the one that comes with the SDK who lets you set a system property as your password, giving you an automated deployment, if needed (like let's your CI sistem deploy new versions periodicaly): target name=deploy depends=update-app-version description=Uploads the application to App Engine. java classname=com.google.appengine.tools.admin.AppCfg fork=true inputstring=${deploy.password} failonerror=true classpath path location=${appengine.tools.classpath} / path refid=project.classpath / /classpath arg value=--email=${deploy.email} / arg value=--passin / arg value=update / arg value=war / /java /target Just set the deploy.email and deploy.password properties either on a file at your home directory or as a command line argument. In our build file, we set the appid and base versions as properties too, giving you full control when deploying while keeping the defaults to make things easier. Hope this helps. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/7ASGVakqlZMJ. 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.
Re: [appengine-java] Re: Automatically increment version number
Since you are using a shell script, you may want to try something smaller that don't require you to add Ant to your deploy proccess (i.e., if your app is in Python): sed -e s/@version/$(hg id -i)/g appengine-web.xml.in appengine-web.xml This is just a in-mind-one-liner script, not sure about this particular sed syntax ;) Best Regards, -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/5yRAOP_0VJ4J. 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.
[appengine-java] java.lang.IllegalArgumentException: The requested query has expired. Please restart it with the last cursor to read more results.
Is there any simple way to workaround this? -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/c0JUpR-P5IUJ. 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.
[appengine-java] Re: Threads
You may want to try out the AppEngine Pipeline API, which handles most of the problems of distributing your computational workflow, and allows some sort of synchronization. Please, take a look at it: http://code.google.com/p/appengine-pipeline/. We use it in production and it works like a charm on both Java and Python runtimes. Hope this helps -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/PvmWBpPcXgIJ. 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.
Re: [appengine-java] New free Datastore backup tool announcement
Here? http://www.datastorebackup.com/_static/files/DatastoreBackup-FREE-3.1.zip -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/nEQwaowDfsYJ. 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.
[appengine-java] Re: Query issue
Hi vikceo, Googling your error message descriptionhttp://www.google.com/search?q=Unexpected+expression+type+while+parsing+query%3A+org.datanucleus.query.expression.ParameterExpression, I guess that your JDOQL syntax is incorrect. Can you check this threadhttp://markmail.org/message/vjsoejb3xyl2kr6q#query:Unexpected%20expression%20type%20while%20parsing%20query%3A%20org.datanucleus.query.expression.ParameterExpression+page:1+mid:323fnzez3fup7akn+state:results ? Best Regards, -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/7GDJ6bGlvUsJ. 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.
[appengine-java] Re: Connection Timeout for URL fetch??
When using the java.net.URLConnection, you cant set the timeout over the 10s. You must use the Low Leve URLFetchService and URLRequest classes to be able to set higher timeouts. Hope this helps. -Ronoaldo -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/BcHvZFL3UiUJ. 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.
[appengine-java] Re: how to turn off high replication simulation in SDK / development environment
Oh, sorry :) So, I guess you already know ... -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/JLuRD5ZvGi4J. 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.
[appengine-java] Re: how to turn off high replication simulation in SDK / development environment
Check this thread: https://groups.google.com/forum/#!topic/objectify-appengine/ECNbSVgEcSQ -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/L87yzcGSfOQJ. 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.
[appengine-java] Re: req.getparamater non-latin character problem.
I guess you have to do the following in order to have the proper encoding when retrieving the request: if (request.getCharacterEncoding() == null) try { request.setCharacterEncoding(ISO-8859-1); } catch (UnsupportedEncodingException e) { } Then, further calls to request.getParameter(kimeisim) will be properly converted and available as the respective UTF-8 strings. Hope this helps -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/xfW2zNzXPwQJ. 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.
[appengine-java] Re: Application Title available?
It would also be nice to add non-ascii characters to the Application's title, since it is usually used to display the application name for Google Accounts and OAuth. This is just a nice feature for non-English apps. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/dHdLNWkzZ0FhMzBK. 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.
Re: [appengine-java] Can't create application - SMS says account already verified
As the message suggests, it seems that you can't confirm two accounts with the same phone number. When I got those messages, using another phone number did the trick. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/alNCUlFkaWdjdTRK. 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.
Re: [appengine-java] Can't create application - SMS says account already verified
Sorry Joe, I don't know if you can unregister your phone number. I didn't found this kind of option. Ikai, any tips? -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/VjFiMy1VRmFiYmNK. 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.
[appengine-java] Re: Why do I get - The datastore operation timed out, or the data was temporarily unavailable.
Sorry if I'm wrong, but I guess that this is the same problem I was facing a few days ago. I solved my problem using a *batch size*, and iterating until the batch size limit. The JDO iterator is using the same datastore operation, and thus have a time limit to perform your query. Your loop is issuing other operations (the delete() method) that is making your it.next() fails event if there are small datasets. I've read from other threads that the deletes are even expensive than the writes. Try this one: fetch all keys first, then loop over them. If you call size() from the returned List, it will fetch all keys. Be carefull to set a reasonable resultset limit: I guess that a 10k betch size is good for your query, at least on my results. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/T1lzQ2tveUoya3NK. 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.
[appengine-java] Re: startup errors while using RemoteApiInstaller
You can't put the remote api jar in your web app classpath. The Remote API is intended to use on a normal Java Application. All you need on your web app is to map a servlet that comes with the sdk on your web apphttp://code.google.com/intl/en/appengine/docs/java/tools/remoteapi.html#Configuring_Remote_API_on_the_Server, and then create a separete client application to use the Remote API. One option (that I'm using on a project) is to create a separate source folder in your Eclipse project, and then configure the build path to make the compiled classes go out of your web-app classpath, and to put the required libraries for your remote-api application on a separate lib folder, something like this: src/ - Your web-app source folder remote/ - Your remote-api source folder lib/ - The libraries you don't want to be on the web-app classpath. The test libraries and remote-api libraries, for example. war/WEB-INF/lib - The libraries that your app needs for runtime only (make sure they all are appengine-safe) You can put your jars on those folders, and then add them to the build path. Hope this helps! Best regards, -- 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.
[appengine-java] Re: ${SDK_ROOT} .classpath eclipse
Hi Kervin, Not sure if you already solved the previous problem, but I answered something similar about the Remote Api herehttps://groups.google.com/d/topic/google-appengine-java/QW4INNwdQo0/discussion. Plese, take a look, it may help you too. Best Regards, -- 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.
[appengine-java] Re: Can only reference properties of a sub-object if the sub-object is embedded
Hello kidowell, It looks like you are trying to do som kind of *join like* sintax here, since you are trying to fetch parent Entities based on a property on the child ones (or vice-versa). In your case, the mapping is telling to the AppEngine underlying datastore to store the Key of the Annotation under the key of the AnnotationType. The AppEngine datastore is not a regular Relational datastore, and JDO/JPA don't work as you expect it to work if you are not familiar with this kind of datastore. I suggest you to read a bit more on the first chapters of the current documentation that explain how the datastore works, and then you may understand better how you will model your data to archive your queries. Also, i suggest you to consider using another persistence layer on your app so you can make better usage of the datastore resources. Currently, we are changing our live web app to Objectify, leaving all headheches that comes with JPA on AppEngine... Best Regards, -- 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.
Re: [appengine-java] Re: JPA/JDO vs low level API
As Jeff and others already posted, JPA on AppEngine just don't work as you expect (from the JPA point of view), and others just work as you don't. I'm the team leader of a running GAE/J application and we are, like Jeff says, * screaming* because of my decision to use JPA. We were about to consider using JDO, due to it's non-RDBMS options, but looks like the best choice is another tool like Objectify or Twig-persist. We are now trying out those tools to do come poof-of-concept in our codebase. A good choice is to encapsulate your datastore using a DAO or Repository pattern (or even both!), since they may help you to change your mind in the future. We did it and now we can try out some other tools on top of the Low Level API. In regards of the Objectify library, +1 for the helpers on schema migration. This is very (very!) hard to acomplish on a real-world web app when using JDO/JPA, and is a very usefull feature. In any case, now the RemoteApi is also available in Java (as per 1.4.4) and this is very useful to do some data export, local fixture loading and others. So, it is nice to at least know how the datastore works, it may help you in the future. -- 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.
[appengine-java] Re: Bundling app with jsp into a jar (to be reused insied another app)
Hi GervalsB, I'm not sure about jsps, but I do know that you can build a jar with your classes, servlets and other java resources, and you can map them on web.xml even if they aren't in your source folder. The jar only need to be under war/WEB-INF/lib. In this case, I'll suggest you to put the jar bundled in a zip, alongside with any static resource, and use a configurable property on your servlet config, to allow you to reuse your code on a new project by droping the jar + unpacking the zip and then setting up your servlet urls. If you plan to build something packaged inside the jar, I'll suggest a template engine like Velocity, that will allow you to embed the templates in the jar, but if you have any css or other stuff that need to be public, you still need to put them under the public war directory to allow appengine to recognize them as static resources. Best Regards, -- 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.
[appengine-java] Embeded + Related list raises IllegalArgumentException: out of field index: -1
Sorry if it is a duplicate, but I coudn't find any solutions for this problem. I'm not sure if someone else solved this, and any help would be very helpfull. This seems like those rare corner cases, but it happened: Using this data models: @Entity public class Parent { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String key; @Extension(vendorName = datanucleus, key = gae.pk-id, value = true) private Long id; @ManyToMany(mappedBy = parent, cascade = CascadeType.ALL) private ListChild relatedChilds = new ArrayListChild(); @Embedded private InlineChild inlineChild; public ListChild getRelatedChilds() { return relatedChilds; } public void setRelatedChilds(ListChild relatedChilds) { this.relatedChilds = relatedChilds; } public InlineChild getInlineChild() { return inlineChild; } public void setInlineChild(InlineChild inlineChild) { this.inlineChild = inlineChild; } public String getKey() { return key; } public Long getId() { return id; } } @Entity public class Child { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String key; @Extension(vendorName = datanucleus, key = gae.pk-id, value = true) private Long id; private String name; @SuppressWarnings(unused) @OneToMany private Parent parent; public Child(Parent parent) { this.parent = parent; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getKey() { return key; } public Long getId() { return id; } } @Embeddable public class InlineChild { private String name; private Date creationDate; private ListString urls; public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getCreationDate() { return creationDate; } public void setCreationDate(Date creationDate) { this.creationDate = creationDate; } public ListString getUrls() { return urls; } public void setUrls(ListString urls) { this.urls = urls; } } And this JUnit test case fails for the test #3: public class OutOfIndexTest { LocalServiceTestHelper helper = new LocalServiceTestHelper( new LocalDatastoreServiceTestConfig()); @Before public void setUp() throws Exception { helper.setUp(); } @After public void tearDown() throws Exception { helper.tearDown(); } @Test public void testPersistParentOnly() { EntityManager em = EMF.get().createEntityManager(); Parent p = new Parent(); em.persist(p); em.close(); } @Test public void testPersistParentWithRelatedChild() { EntityManager em = EMF.get().createEntityManager(); Parent p = new Parent(); p.getRelatedChilds().add(new Child(p)); em.persist(p); em.close(); } @Test public void testPersistParentWithAllChilds() { // This test fails, but only if the embeded has a list. EntityManager em = EMF.get().createEntityManager(); Parent p = new Parent(); p.getRelatedChilds().add(new Child(p)); p.setInlineChild(new InlineChild()); em.persist(p); em.close(); } @Test public void testAddEmbededAfterPersistAllChilds() { EntityManager em = EMF.get().createEntityManager(); Parent p = new Parent(); p.getRelatedChilds().add(new Child(p)); em.persist(p); em.close(); em = EMF.get().createEntityManager(); p.setInlineChild(new InlineChild()); em.merge(p); } } Whith this StackTrace: java.lang.IllegalArgumentException: out of field index :-1 at org.example.fieldindex.InlineChild.jdoProvideField(InlineChild.java) at org.datanucleus.state.JDOStateManagerImpl.provideField(JDOStateManagerImpl.java:2585) at org.datanucleus.state.JDOStateManagerImpl.provideField(JDOStateManagerImpl.java:2555) at org.datanucleus.store.mapped.mapping.CollectionMapping.postInsert(CollectionMapping.java:91) at org.datanucleus.store.mapped.mapping.EmbeddedPCMapping.postInsert(EmbeddedPCMapping.java:104) at org.datanucleus.store.appengine.DatastoreRelationFieldManager.runPostInsertMappingCallbacks(DatastoreRelationFieldManager.java:217) at org.datanucleus.store.appengine.DatastoreRelationFieldManager.access$200(DatastoreRelationFieldManager.java:48) at org.datanucleus.store.appengine.DatastoreRelationFieldManager$1.apply(DatastoreRelationFieldManager.java:116) at
Re: [appengine-java] Server error when deleting a version
I'm facing the same issue with my app, when deleting a specific version. Any updates? -- 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.
[appengine-java] Re: JSP compiling fails after upgrade from 1.3.8 to 1.4.0
I had the same issues with two projects after upgrade. If you are using the Eclipse Plugin, this steps may work for you: 1. Right click on Project - Build Path - Configure Build Path. 2. Go to Order and Export tab 3. Move your src folder to top, then put JRE, App Engine SDK, GWT SDK (if applicable) and Junit 4 (if applicable) above, and all other libs above them. After this, your local devserver may work as usual. Best Regards, On 16 dez, 02:57, Chris Keller xyl...@gmail.com wrote: Note that the previous post only applies to my local development environment. I just tried using the new version of the SDK on the production server, and it has no problems. -- 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 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.