[appengine-java] Re: Unable to load several versions of AppEngine Project and Seeing HardDeadLineExceeded Exceptions

2012-03-09 Thread Ronoaldo José de Lana Pereira
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

2012-02-15 Thread Ronoaldo José de Lana Pereira
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

2012-02-02 Thread Ronoaldo José de Lana Pereira
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

2012-02-02 Thread Ronoaldo José de Lana Pereira
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

2012-02-02 Thread Ronoaldo José de Lana Pereira
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

2011-11-07 Thread Ronoaldo José de Lana Pereira
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

2011-11-03 Thread Ronoaldo José de Lana Pereira
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

2011-11-03 Thread Ronoaldo José de Lana Pereira
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?

2011-11-01 Thread Ronoaldo José de Lana Pereira
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?

2011-10-29 Thread Ronoaldo José de Lana Pereira
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

2011-10-18 Thread Ronoaldo José de Lana Pereira
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?

2011-10-06 Thread Ronoaldo José de Lana Pereira
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?

2011-10-06 Thread Ronoaldo José de Lana Pereira
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?

2011-10-04 Thread Ronoaldo José de Lana Pereira
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

2011-10-04 Thread Ronoaldo José de Lana Pereira
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

2011-10-04 Thread Ronoaldo José de Lana Pereira
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.

2011-10-04 Thread Ronoaldo José de Lana Pereira
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

2011-09-26 Thread Ronoaldo José de Lana Pereira
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

2011-09-06 Thread Ronoaldo José de Lana Pereira
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

2011-08-09 Thread Ronoaldo José de Lana Pereira
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??

2011-08-03 Thread Ronoaldo José de Lana Pereira
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

2011-07-08 Thread Ronoaldo José de Lana Pereira
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

2011-07-07 Thread Ronoaldo José de Lana Pereira
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.

2011-06-28 Thread Ronoaldo José de Lana Pereira
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?

2011-06-03 Thread Ronoaldo José de Lana Pereira
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

2011-06-03 Thread Ronoaldo José de Lana Pereira
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

2011-06-03 Thread Ronoaldo José de Lana Pereira
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.

2011-06-01 Thread Ronoaldo José de Lana Pereira
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

2011-05-10 Thread Ronoaldo José de Lana Pereira
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

2011-05-10 Thread Ronoaldo José de Lana Pereira
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

2011-05-10 Thread Ronoaldo José de Lana Pereira
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

2011-04-21 Thread Ronoaldo José de Lana Pereira
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)

2011-04-12 Thread Ronoaldo José de Lana Pereira
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

2011-04-11 Thread Ronoaldo José de Lana Pereira
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

2011-03-11 Thread Ronoaldo José de Lana Pereira
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

2010-12-17 Thread Ronoaldo José de Lana Pereira
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.