[appengine-java] problem in updating to 1.2.5 in eclipse
hie getting error An error occurred while collecting items to be installed No repository found containing: com.google.appengine.eclipse.sdkbundle/osgi.bundle/1.2.5.v200909021031 No repository found containing: com.google.appengine.eclipse.sdkbundle.e34.feature/org.eclipse.update.feature/1.2.5.v200909021031 While trying to upgrade to 1.2.5 in eclipse. Thankx and Regards Vik Founder www.sakshum.com www.sakshum.blogspot.com --~--~-~--~~~---~--~~ 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] how to handle multipart data in struts 2 ?
I am unable to get the multipart data (file etc.) from jsp/request (post). appengine sdk has been updated to 1.2.5. whereas the same can be achieved through servlets as described in How do I handle multipart form data? or How do I handle file uploads to my app? in faq section. http://code.google.com/appengine/kb/java.html#fileforms how to achieve the above said through struts 2 action ? when I try to get the file through the struts 2 action the following exception is thrown : java.security.AccessControlException: access denied (java.io.FilePermission C:\DOCUME~1\SRK~1.001\LOCALS~1\Temp \Jetty_127_0_0_1_8180_war-aref0x \upload_7ecc51fe_12383ed82aa__8000_.tmp write) at java.security.AccessControlContext.checkPermission (AccessControlContext.java:323) at java.security.AccessController.checkPermission (AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java: 532) at com.google.appengine.tools.development.DevAppServerFactory $CustomSecurityManager.checkPermission(DevAppServerFactory.java:139) at java.lang.SecurityManager.checkWrite(SecurityManager.java:962) at java.io.FileOutputStream.(FileOutputStream.java:169) at java.io.FileOutputStream.(FileOutputStream.java:131) at org.apache.commons.io.output.DeferredFileOutputStream.thresholdReached (DeferredFileOutputStream.java:123) at org.apache.commons.io.output.ThresholdingOutputStream.checkThreshold (ThresholdingOutputStream.java:220) at org.apache.commons.io.output.ThresholdingOutputStream.write (ThresholdingOutputStream.java:127) at org.apache.commons.fileupload.util.Streams.copy(Streams.java:101) at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64) at org.apache.commons.fileupload.FileUploadBase.parseRequest (FileUploadBase.java:362) at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parse (JakartaMultiPartRequest.java:90) at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper. (MultiPartRequestWrapper.java:73) at org.apache.struts2.dispatcher.Dispatcher.wrapRequest (Dispatcher.java:698) at org.apache.struts2.dispatcher.FilterDispatcher.prepareDispatcherAndWrapRequest (FilterDispatcher.java:330) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter (FilterDispatcher.java:390) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at com.google.appengine.tools.development.StaticFileFilter.doFilter (StaticFileFilter.java:121) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService $ApiProxyHandler.handle(JettyContainerService.java:313) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection$RequestHandler.content (HttpConnection.java:844) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run (BoundedThreadPool.java:442) --~--~-~--~~~---~--~~ 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: JasperReports on GAE
Do you know if JasperReports developers are aware of this problem? Is there any bug reported to them? I haven't found any on myself. Logically, JasperReports (nor iText) shouldn't depend on AWT classes, so this dependency is a bit strange, and perhaps can be fixed by them. On Sep 4, 12:16 am, bgood ben.mcgee.g...@gmail.com wrote: We had the same problem but ended up hosting the report generator on a separate server. If you figure it out, please post here about how to do it! Its really the only critical piece of our code that we can't move into this particular cloud. Its the only reason we are considering alternative hosting services right now. --~--~-~--~~~---~--~~ 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: JDO queries on owned/unowned one-to-many relationships
You can run queries on keys: http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html#Queries_on_Keys The first part of child key (ContactInfo.class) contains parent (Employee) key. Employee e; query = pm.newQuery(ContactInfo.class); query.setFilter(key == keyParam); query.declareParameters(com.google.appengine.api.datastore.Key keyParam); Key key = KeyFactory.createKey(Employee.class.getSimpleName(),e.getId ()); list = (ListContactInfo) query.execute(key); But it returns empty list because the second part of child key contains child key itself, so it is never equal. Maybe something like that will work (assuming that your goal is to find all child belonging to single parent). query = pm.newQuery(ContactInfo.class); query.setFilter(key keyParam and key keyParam1); query.declareParameters(com.google.appengine.api.datastore.Key keyParam); query.declareParameters(com.google.appengine.api.datastore.Key keyParam1); Key key = KeyFactory.createKey(Employee.class.getSimpleName(),e.getId ()); Key key1 = KeyFactory.createKey(Employee.class.getSimpleName(),e.getId () + 1); list = (ListContactInfo) query.execute(key,key1); --~--~-~--~~~---~--~~ 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: JDO queries on owned/unowned one-to-many relationships
query.setFilter(key keyParam and key keyParam1); --~--~-~--~~~---~--~~ 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] JDO BUG !?
Hello! I have some objects in the database that have a String property called version. Some of them have version = '0.2', the others have '0.0' I have an application written in java. When i query for an object with version 0.2 with the low level api it works (it finds 62 obejcts) DatastoreService ds = DatastoreServiceFactory.getDatastoreService (); Query q1 = new Query(DbRawContact); q1.addFilter(version, FilterOperator.EQUAL, 0.2); PreparedQuery pq = ds.prepare(q1); log.info(remainging: + pq.countEntities()); When i query with JDO the query doesn't fetch anything! I won't post the JDO query here, because i actually use a wrapper around it (too many lines to post here); but i'm 99.99% sure that code is correct because it works for a version = '0.0' query with no problems! (and for all other queries that i'm doing with it) I even tried to fetch one of those version 0.2 objects using a different property; was succesful, so then i tried a consecutive query with version = fetchedObject.getVersion(). No results! What gives? :( --~--~-~--~~~---~--~~ 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] How to make a query using low level API using the 'key' property?
Hello, How can i make a Query using the lowlevel API, similar to this: select * from Entity where key certain_key ? In JDO i would do something like this: select * from Entity where encodedKey a_key_string where encodedKey is my objects' primary key: @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName=datanucleus, key=gae.encoded-pk, value=true) private String encodedKey; --~--~-~--~~~---~--~~ 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: How to make a query using low level API using the 'key' property?
I noticed that i can make a query like this: DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); Query query = new Query(DbContact); query.addFilter(__key__, FilterOperator.GREATER_THAN, KeyFactory.stringToKey(a_key_string)); And it works. It fetches the correct results. Then i also noticed i can do this (locally on my computer; i haven't tested this on app-engine yet): entity.put(__key__, some value); ds.put(entity); Using the datastore viewer i can see the object with this property (__key__) and the corresponding value i've set. Then if try a query like this: q1.addFilter(__key__, FilterOperator.EQUAL, some value); it doesnt' fetch any results! So can someone explain the mechanism of what is happening over here? :) One last thing i've noticed: If i try the following line in DataViewer -- Query (using GQL): SELECT * FROM DbCategory where __key__ 'a' I get: server error(500) Server Error A server error has occurred. And also, are there any other reserved properties like __key__ i should be aware of, or which are useful for special kinds of queries.? On Fri, Sep 4, 2009 at 2:17 PM, Cornel corneliu.lupu...@gmail.com wrote: Hello, How can i make a Query using the lowlevel API, similar to this: select * from Entity where key certain_key ? In JDO i would do something like this: select * from Entity where encodedKey a_key_string where encodedKey is my objects' primary key: @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName=datanucleus, key=gae.encoded-pk, value=true) private String encodedKey; -- Corneliu Paul Lupulet --~--~-~--~~~---~--~~ 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] Cache-Controle Expiration on static files
hello, I test the new sdk, and I see that we now add a expiration attribut in the include tag in appengine-web.xml to set the expiration cache time. But it's not seems to work . My appengine-web.xml : static-files include path=/ressource/css/*.css expiration=10d/ include include path=/ressource/css/img/*.* expiration=10d/ include exclude path=**/*.gwt.rpc/ /static-files When I deploy on internet, the header of all css and img file is : Cache-Control: max-age=0 Has anybody try to do works it ? --~--~-~--~~~---~--~~ 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: problem in updating to 1.2.5 in eclipse
Was this a temporary problem? Are you sure that you are using the right update site for your version of eclipse? On Fri, Sep 4, 2009 at 3:13 AM, Vik vik@gmail.com wrote: hie getting error An error occurred while collecting items to be installed No repository found containing: com.google.appengine.eclipse.sdkbundle/osgi.bundle/1.2.5.v200909021031 No repository found containing: com.google.appengine.eclipse.sdkbundle.e34.feature/org.eclipse.update.feature/1.2.5.v200909021031 While trying to upgrade to 1.2.5 in eclipse. Thankx and Regards Vik Founder www.sakshum.com www.sakshum.blogspot.com -- Miguel --~--~-~--~~~---~--~~ 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] Problem with encoding on production environment
Hello. I'm trying to do following: 1. I have a GWT-application with a form uploading text files in utf8 character encoding 2. Uploaded file content I save in the entity Blob field in datastore 3. I have a JavaFX client application getting this file content and displaying it Everything works just fine on dev environment but on production I have problems with encoding - I get question marks on my javafx appet form. More details. 1. On Form submit we go to public class Upload extends HttpServlet which creates a jdo transfer object (dictionaryTO) with byte[] field where we need to store a content of the file: dictionaryTO.setFile(inputStreamToBytes(item.openStream())); where (notice, I'm setting utf8 there): private byte[] inputStreamToBytes(InputStream stream) throws IOException, IllegalArgumentException, IllegalStateException { BufferedReader inputStream = null; inputStream = new BufferedReader(new InputStreamReader (stream, utf8)); String str; ByteArrayOutputStream out = new ByteArrayOutputStream (); StringBuffer buffer = new StringBuffer(); while ((str = inputStream.readLine()) != null) { buffer.append(str); buffer.append(\n); } out.write(buffer.toString().getBytes()); out.close(); return out.toByteArray(); } 2. After that I need to transfer this object to next servlet (dictionaryService) which will save this object as an entity in datastore. Doing it this way: PrintWriter out = null; response.setCharacterEncoding(utf8); response.setContentType(text/plain); out = response.getWriter(); ... request.getSession().setAttribute(dictionary, dictionaryTO); response.sendRedirect(dictionaryService); 3. dictionaryService is: public class DictionaryServiceImpl extends RemoteServiceServlet implements DictionaryService which gets a transfer object from session, converts it in jdo entity object - dictionary. A field with file content is being converted from byte[] into Blob in this way - new Blob(dictionaryTO).getFile()). And then the object is saved in a standard way: pm.makePersistent (dictionary). 4. After that we need to process a request from client javafx application. All I need is two methods: import java.net.HttpURLConnection; import java.net.URL; /** * Common method that performs http request to the servlet in order to * retrieve required data * * @param urlString servlet name to send request * @param xml xml-body of request * @return xml-response from servlet * @throws java.lang.Exception */ static private String performHttpPostRequest(String urlString, String xml) throws Exception { URL url; HttpURLConnection connection; String response = false; url = new URL(urlString); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(POST); connection.setUseCaches(false); connection.setDoOutput(true); connection.setDoInput(true); connection.setAllowUserInteraction(true); connection.setRequestProperty(Content-Type, application/x- www-form-urlencoded;charset=utf8); //connection.setRequestProperty(Content-Type, text/ xml;charset=utf8); connection.setRequestProperty(Accept-Charset, utf8); connection.getOutputStream().write(xml.getBytes()); InputStream inpStr; inpStr = connection.getInputStream(); //System.out.println(+++ + connection.getRequestProperty (Content-Type)); response = convertStreamToString(inpStr); inpStr.close(); return response; } /** * Converts input stream received from servlet into string. * * @param is input stream * @return input stream as a string */ static private String convertStreamToString(InputStream is) / *throws UnsupportedEncodingException*/ { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { sb.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } 5. On the server side this request receives public class GetDictionary extends HttpServlet protected void doPost(HttpServletRequest request, HttpServletResponse response)
[appengine-java] Re: GAE down? Response Error 500
Still unable to do datastore gets. Well, for about 3 hours yesterday, it worked, and then it stopped. And it is still stopped as of this morning. Any chance that I'll be able to use my datastore code sometime in the near future? My app really kinda relies on the datastore to, well, work. On Thu, Sep 3, 2009 at 5:34 AM, Traveler1980 jshar...@gmail.com wrote: Datastore GET error rate is still 100%. Any ETA on when this will be resolved? Regards, JS On Sep 3, 3:41 am, Hani Naguib haninag...@gmail.com wrote: I am also getting many error 500 pages. This is happening since the issue I mentioned here: http://groups.google.com/group/google-appengine-java/browse_thread/th... -- I'm not responcabel fer my computer's spleling errnors - Xlorep DarkHelm Website: http://darkhelm.org --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
I played with my application today and there was no any problems with datastore. On Fri, Sep 4, 2009 at 6:21 PM, Cliff Hillch...@darkhelm.org wrote: Still unable to do datastore gets. Well, for about 3 hours yesterday, it worked, and then it stopped. And it is still stopped as of this morning. Any chance that I'll be able to use my datastore code sometime in the near future? My app really kinda relies on the datastore to, well, work. On Thu, Sep 3, 2009 at 5:34 AM, Traveler1980 jshar...@gmail.com wrote: Datastore GET error rate is still 100%. Any ETA on when this will be resolved? Regards, JS On Sep 3, 3:41 am, Hani Naguib haninag...@gmail.com wrote: I am also getting many error 500 pages. This is happening since the issue I mentioned here:http://groups.google.com/group/google-appengine-java/browse_thread/th... -- I'm not responcabel fer my computer's spleling errnors - Xlorep DarkHelm Website: http://darkhelm.org --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
Well, my primary servlet that loads data from the datastore still breaks, and spits out a 500 Server Error when I run it manually: http://showsort.appspot.com/showsort/list If it works, it shouldn't show anything at all, because it is a GWT- RPC driven servlet. http://showsort.appspot.com There are 2 things which have async calls run. First is a graphic update which draws a black line (IE still doesn't work for this... other browsers do though). Second is a list of sorting algorithms, retrieved from the datastore, which appears above the Start button on the screen. This never happens, because I'm getting a 500 Server Error consistently whenever it attempts to be run. I've re-uploaded my app on the off chance that it was a bad update or something last time, and no change. It makes my app, well, completely useless if I can't access the datastore at all... On Sep 4, 7:25 am, sandlex aspes...@gmail.com wrote: I played with my application today and there was no any problems with datastore. --~--~-~--~~~---~--~~ 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: XMPP send Chinese message garbled?
Hi Terry - There is a slight problem in the implementation of parseMessage(). It currently doesn't pay attention to the encoding of the elements in the POST, assuming they are UTF-16. In fact, the POST comes in encoded in UTF-8. If you modify the code in parseMessage to assume UTF-8, your example should work. This will be fixed in 1.2.6. Michael --~--~-~--~~~---~--~~ 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: Datastore problems!
We're unaware of any datastore problems. One thing you might try is upgrading to the latest version of the SDK (don't forget to copy all of the updated datastore libraries into your WEB-INF/lib). If that doesn't work for you, please post a full stacktrace and your application id. On Fri, Sep 4, 2009 at 9:09 AM, Andrew adys...@gmail.com wrote: Hey, Im getting java.lang.ArrayIndexOutOfBoundsException when trying to retrieve from the datastore! The status page says that things are supposed to be ok now (after the issues), but they arent for me!! Is it just a case of taking time before everything is ok or? --~--~-~--~~~---~--~~ 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: Maven
please include 1.2.5 jars to http://www.mvnsearch.org/maven2/com/google/appengine/ --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
Application ID is showsort. I can't provide stacktraces for the error, because I'm getting no stacktraces. It isn't even showing up in the logs as a problem. I'm seeing a 500 error, where there used to not be a 500 error. I've not modified the code for my list servlet in several days, but this is now not working, and hasn't been since yesterday, and it appears to be the same problem it had a couple days ago during the short window. On Sep 4, 8:31 am, Toby Reyelts to...@google.com wrote: Cliff, We're not aware of any datastore problems. As Matthew posted two days ago, there was a short window where changes were introduced that may have caused some problems for some applications, so we rolled them back in short order. If after further investigation you still believe these are App Engine problems, please provide us with more information such as stacktraces and your application id. You can always check our status sitehttp://code.google.com/status/appengine/to see if it appears that App Engine is having problems in general. On Fri, Sep 4, 2009 at 10:21 AM, Cliff Hill ch...@darkhelm.org wrote: Still unable to do datastore gets. Well, for about 3 hours yesterday, it worked, and then it stopped. And it is still stopped as of this morning. Any chance that I'll be able to use my datastore code sometime in the near future? My app really kinda relies on the datastore to, well, work. On Thu, Sep 3, 2009 at 5:34 AM, Traveler1980 jshar...@gmail.com wrote: Datastore GET error rate is still 100%. Any ETA on when this will be resolved? Regards, JS On Sep 3, 3:41 am, Hani Naguib haninag...@gmail.com wrote: I am also getting many error 500 pages. This is happening since the issue I mentioned here: http://groups.google.com/group/google-appengine-java/browse_thread/th... -- I'm not responcabel fer my computer's spleling errnors - Xlorep DarkHelm Website:http://darkhelm.org --~--~-~--~~~---~--~~ 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: JasperReports on GAE
Sure would be nice if appengine would decide to support awt - it would solve this problem and many others. (Vote for it here http://code.google.com/p/googleappengine/issues/detail?id=1423). However, my impression is that they have no intention to do so any time soon - it must cause some significant problems for their infrastructure. Someone apparently got iText to run in app-engine http://groups.google.com/group/google-appengine-java/msg/419faf63fff47ef7 and there was an issue posted to itext on sourceforge, but I can't seem to access the itext project there anymore - perhaps they moved? https://sourceforge.net/tracker/?func=detailaid=2810312group_id=152 On Sep 4, 1:33 am, Grzegorz Borkowski grzegorz...@gmail.com wrote: Do you know if JasperReports developers are aware of this problem? Is there any bug reported to them? I haven't found any on myself. Logically, JasperReports (nor iText) shouldn't depend on AWT classes, so this dependency is a bit strange, and perhaps can be fixed by them. On Sep 4, 12:16 am, bgood ben.mcgee.g...@gmail.com wrote: We had the same problem but ended up hosting the report generator on a separate server. If you figure it out, please post here about how to do it! Its really the only critical piece of our code that we can't move into this particular cloud. Its the only reason we are considering alternative hosting services right now. --~--~-~--~~~---~--~~ 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] this group is being copied on a blog
I don't know what the owners of the group think about this, but it seems wrong to me. All of the messages posted to this list are appearing on this guys blog unmodified. See http://cng1985.blogspot.com/2009/09/appengine-java-re-jasperreports-on-gae_04.html --~--~-~--~~~---~--~~ 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] Queries in 1.2.5 don't retrieve com.google.appengine.api.datastore.Text data anymore?
Hi, I have data objects stored in the datastore that have a propery of type com.google.appengine.api.datastore.Text. In 1.2.2 this was working without problems and querying the data objects would also retrieve the property with type com.google.appengine.api.datastore.Text, but moving to 1.2.5 this doesn't work anymore and the property of type com.google.appengine.api.datastore.Text is returning always as null. This problem also occurs for property of type Blob. Anybody has a clue if this is a bug or a feature? Thanks. Dominik --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
My app id is mindhackme. My app has not run for approx a week now and it died without me even updating it. I searched online about possible causes and one post I read determined that the persistenceManager bean that the Grails GAE plugin used was not a singleton and that was creating problems. So I changed my code to use the persistence the way the google docs suggest but still no luck. Here is a stack trace from this morning. The app is a blog that is built on grails. I'm using the gae plugin for grails and things were working smoothly until recent changes to gae: # 1. 09-04 09:14AM 39.601 / 500 30005ms 33600cpu_ms 0kb Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/ 3.5.2 (.NET CLR 3.5.30729),gzip(gfe) See details 65.200.50.194 - - [04/Sep/2009:09:15:09 -0700] GET / HTTP/1.1 500 0 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729),gzip(gfe) mindhackme.appspot.com 2. W 09-04 09:14AM 46.707 [mindhackme/6.336061699959790088].stderr: log4j:ERROR Error initializing log4j: java.io.FileOutputStream is a restricted class. Please see the Google App Engine developer's guide for more details. 3. I 09-04 09:14AM 46.759 javax.servlet.ServletContext log: Initializing Spring root WebApplicationContext 4. W 09-04 09:15AM 09.129 [mindhackme/6.336061699959790088].stderr: log4j:WARN No appenders could be found for logger (StackTrace). 5. W 09-04 09:15AM 09.129 [mindhackme/6.336061699959790088].stderr: log4j:WARN Please initialize the log4j system properly. 6. W 09-04 09:15AM 09.543 failed urlMapping com.google.apphosting.runtime.HardDeadlineExceededError: This request (e89c1f3832ff258e) started at 2009/09/04 16:14:40.632 UTC and was still executing at 2009/09/04 16:15:09.509 UTC. at org.springframework.beans.PropertyMatches.calculateStringDistance (PropertyMatches.java:153) at org.springframework.beans.PropertyMatches.calculateMatches (PropertyMatches.java:136) at org.springframework.beans.PropertyMatches.init (PropertyMatches.java:81) at org.springframework.beans.PropertyMatches.forProperty (PropertyMatches.java:63) at org.springframework.beans.PropertyMatches.forProperty (PropertyMatches.java:53) at org.springframework.beans.BeanWrapperImpl.setPropertyValue (BeanWrapperImpl.java:800) at org.springframework.beans.BeanWrapperImpl.setPropertyValue (BeanWrapperImpl.java:651) at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues (AbstractPropertyAccessor.java:78) at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues (AbstractPropertyAccessor.java:63) at org.springframework.web.filter.GenericFilterBean.init (GenericFilterBean.java:169) at org.springframework.web.filter.DelegatingFilterProxy.initDelegate (DelegatingFilterProxy.java:218) at org.springframework.web.filter.DelegatingFilterProxy.initFilterBean (DelegatingFilterProxy.java:145) at org.springframework.web.filter.GenericFilterBean.init (GenericFilterBean.java:179) at org.mortbay.jetty.servlet.FilterHolder.doStart (FilterHolder.java:99) at org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:40) at org.mortbay.jetty.servlet.ServletHandler.initialize (ServletHandler.java:589) at org.mortbay.jetty.servlet.Context.startContext(Context.java: 139) at org.mortbay.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1218) at org.mortbay.jetty.handler.ContextHandler.doStart (ContextHandler.java:500) at org.mortbay.jetty.webapp.WebAppContext.doStart (WebAppContext.java:448) at org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:40) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler (AppVersionHandlerMap.java:190) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler (AppVersionHandlerMap.java:167) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest (JettyServletEngineAdapter.java:127) at com.google.apphosting.runtime.JavaRuntime.handleRequest (JavaRuntime.java:235) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:4950) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:4948) at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest (BlockingApplicationHandler.java:24) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication (RpcUtil.java:359) at com.google.net.rpc.impl.Server$2.run(Server.java:823) at com.google.tracing.LocalTraceSpanRunnable.run (LocalTraceSpanRunnable.java:56) at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
[appengine-java] Re: Queries in 1.2.5 don't retrieve com.google.appengine.api.datastore.Text data anymore?
Did you change your code ? Text and Blod are not part of the default fetch group. Look at http://www.datanucleus.org/products/accessplatform/jdo/fetchgroup.html --~--~-~--~~~---~--~~ 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: Queries in 1.2.5 don't retrieve com.google.appengine.api.datastore.Text data anymore?
Hi rick, thank you very much for the fast answer, this was very helpful. I didn't change my code, as i could switch locally in eclipse from GA 1.2.2 to 1.2.5 without doing any code changes and in 1.2.2 it would retrieve the properties of type text or blob, in 1.2.5 it wouldn't. Thanks to your link the solution was then to add @Persistent(defaultFetchGroup=true) to the fields with text or blob. For me this is still a breaking change from 1.2.2 to 1.2.5, I think this should be clearly documented. Thanks again for your post. Dominik Did you change your code ? Text and Blod are not part of the default fetch group. Look at http://www.datanucleus.org/products/accessplatform/jdo/fetchgroup.html --~--~-~--~~~---~--~~ 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: Confirmation of Google Multi-Tenant app policy
Currently, registering multiple IDs for the same application is a violation of the App Engine terms of service. However, we do have an exception policy in place for developers with a multi-tenant strategy, and we handle these on a case-by-case basis. To begin, please file a new multi-instance exception request: http://code.google.com/support/bin/request.py?contact_type=AppEngineMultiInstanceExceptionRequest - Jason On Wed, Sep 2, 2009 at 5:33 AM, doc123 doc.u...@gmail.com wrote: Hi Now I am planning to start free project management service = http://www.chainofasker.com/ by using Google App Engine When I try to provide this free project management service, problem is server fee because once I release this service, I can not expect how many user come to this site and use free service. So I want to ask user to have their dedicated server if they want use stable service. Procedure is following User create User own account at Google app engine site. User nominate me as a administrator or invite me as a developer. I install server software. User remove me from administrator list. User start using my service Is this meet Google App Engine’s terms of use? I found related article which is posted by Jason but now I can not find it url so I post previous multi-tenant discussion image to here = http://www.chainofasker.com/muti-tenant-past-post I think above procedure is keeping Jason’s recommendation. --~--~-~--~~~---~--~~ 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: Inconsistence between how app-engine sorts string encoded-keys and java method String.compareTo()
Yes, encoded String keys are designed to be opaque. But it is possible to compare two Key objects directly: http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/Key.html#compareTo%28com.google.appengine.api.datastore.Key%29 - Jason On Tue, Sep 1, 2009 at 11:38 PM, Corneliu Paul Lupulet corneliu.lupu...@gmail.com wrote: I think I may have found the answer. Even though an encoded key is a string, I should use KeyFactory.stringToKey(encodedKeyString) to compare two key strings. On Tue, Sep 1, 2009 at 7:18 PM, Cornel corneliu.lupu...@gmail.com wrote: Hello! I ran over this problem. I was retrieving a DbContact data set simply ordered by encodedKey ascending, and i got this list: [(key agljb3NpbnV4NjhyIQsSCkRiQ3VzdG9tZXIYm0gMCxIJRGJDb250YWN0GJxIDA name EUROTRIM) , (key agljb3NpbnV4NjhyIQsSCkRiQ3VzdG9tZXIYnUgMCxIJRGJDb250YWN0GJ5IDA name ANCA ELECTRIC SYSTEMS) , (key agljb3NpbnV4NjhyIQsSCkRiQ3VzdG9tZXIYn0gMCxIJRGJDb250YWN0GKBIDA name TWIN TRADING) ... So, apparently agljb3NpbnV4NjhyIQsSCkRiQ3VzdG9tZXIYnUgMCxIJRGJDb250YWN0GJ5IDA agljb3NpbnV4NjhyIQsSCkRiQ3VzdG9tZXIYn0gMCxIJRGJDb250YWN0GKBIDA (the second and the third entries in the above list) But agljb3NpbnV4NjhyIQsSCkRiQ3VzdG9tZXIYnUgMCxIJRGJDb250YWN0GJ5IDA.compareTo (agljb3NpbnV4NjhyIQsSCkRiQ3VzdG9tZXIYn0gMCxIJRGJDb250YWN0GKBIDA) = 37 0, which is opposite! The encodedKey field is defined in the DbContact class as: @PersistenceCapable(identityType = IdentityType.APPLICATION) public class DbContact extends DbEntity { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName=datanucleus, key=gae.encoded-pk, value=true) private String encodedKey; @Persistent private DbCustomer customer; ... Also, i have a DbCustomer class which is the parent of a DbContact class, defined as: @PersistenceCapable(identityType = IdentityType.APPLICATION) public class DbCustomer extends DbEntity { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName=datanucleus, key=gae.encoded- pk,value=true) private String encodedKey; @Persistent(mappedBy = customer) @Order(extensions = @Extension(vendorName=datanucleus, key=list-ordering, value=customerProfile desc)) private ListDbContact contacts; .. So what's with this inconsistence? Have any ideas? -- Corneliu Paul Lupulet --~--~-~--~~~---~--~~ 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: xmpp support
XMPP support was added in the 1.2.5 release announced yesterday: http://code.google.com/appengine/docs/java/xmpp/ - Jason On Wed, Sep 2, 2009 at 1:47 AM, asianCoolz second.co...@gmail.com wrote: May i know when GAE mentioned will support XMPP for next version of GAE, does that mean, it will support all features of xmpp? can we use BOSH to replace comet feature? the reason i asking is because i'm very interested to use comet in my application but found out GAE doesn't support it. So, I am wondering should i invest my time create 'xmpp/bosh' feature on my app and anticipating for next version of GAE? what is the estimate date of the next release? --~--~-~--~~~---~--~~ 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: OpenID Consumer
I haven't used any myself, but this page has a list of relevant Java libraries: http://wiki.openid.net/Libraries Also, the OpenSocial client library for Java, which is compatible with App Engine, uses the open source OAuth library available at http://code.google.com/p/oauth for request signing and validation. - Jason On Wed, Sep 2, 2009 at 5:10 PM, anjolight anjoli...@gmail.com wrote: Hi, I'm trying to create an OpenID consumer in my appengine project. My intention to use Google for OpenID provider with OpenID+OAuth. If someone has an example code to share, I'd greatly appreciate it. thank you. --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
I just re-uploaded my app, with logging enabled for my servlet again, so I can see the progress it has when/if it runs. However I'm seeing that someone has been testing other things as well... I'm also seeing a 500 Server Error on the main app now. On Sep 4, 8:42 am, Xlorep DarkHelm ch...@darkhelm.org wrote: Application ID is showsort. I can't provide stacktraces for the error, because I'm getting no stacktraces. It isn't even showing up in the logs as a problem. I'm seeing a 500 error, where there used to not be a 500 error. I've not modified the code for my list servlet in several days, but this is now not working, and hasn't been since yesterday, and it appears to be the same problem it had a couple days ago during the short window. --~--~-~--~~~---~--~~ 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: Problem while using Gilead for Hibernate and Gwt
I'll need to see a snippet of your server-side code that's failing to get a better understanding of the error's cause. But if you're trying to use Hibernate/MySQL directly, this could be the issue since Hibernate is not supported: http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine App Engine has its own datastore for persisting objects and provides a JDO and JPA interface to this datastore: http://code.google.com/appengine/docs/java/datastore/ - Jason On Wed, Sep 2, 2009 at 12:08 AM, Rajitha rajitha.redd...@gmail.com wrote: Hi All, Im currently working on Sim Applications using Hibernate,Gwt,mysql in eclipse 3.4.im using Gilead for this. When im running my Application im getting following errors: SEVERE: [125187460050] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call java.lang.NoSuchMethodError: net.sf.beanlib.spi.BeanTransformerSpi.initCustomTransformerFactory (Lnet/sf/beanlib/spi/CustomBeanTransformerSpi$Factory;)Lnet/sf/beanlib/ spi/BeanTransformerSpi; at net.sf.gilead.core.beanlib.merge.MergeBeanPopulator.newBeanPopulator (MergeBeanPopulator.java:51) at net.sf.gilead.core.LazyKiller.populate(LazyKiller.java:249) at net.sf.gilead.core.LazyKiller.attach(LazyKiller.java:216) at net.sf.gilead.core.PersistentBeanManager.mergePojo (PersistentBeanManager.java:517) at net.sf.gilead.core.PersistentBeanManager.merge (PersistentBeanManager.java:305) at net.sf.gilead.gwt.GileadRPCHelper.parseInputParameters (GileadRPCHelper.java:95) at net.sf.gilead.gwt.PersistentRemoteService.processCall (PersistentRemoteService.java:147) at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost (RemoteServiceServlet.java:86) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1093) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter (TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter (ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle (DevAppEngineWebAppContext.java:54) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at com.google.appengine.tools.development.JettyContainerService $ApiProxyHandler.handle(JettyContainerService.java:306) at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection$RequestHandler.content (HttpConnection.java:844) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run (SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run (BoundedThreadPool.java:442) com.google.gwt.user.client.rpc.StatusCodeException: The call failed on the server; see server log for details Anyone can please help me.. Thanks in advance --~--~-~--~~~---~--~~ 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: self join in google app engine
Hi Midhat. In the thread that leszek links to, I discuss this bug in a little more detail -- it seems you can't persist objects having an owned one-to-many relationship with objects of the same kind. Owned one-to-one relationships seem to work, however. As a workaround, you can use an unowned relationship (i.e. SetKey children) or specify a new class for the child objects. - Jason On Wed, Sep 2, 2009 at 1:57 AM, leszek leszek.ptokar...@gmail.com wrote: Read this thread - could be helpfull : http://groups.google.co.uk/group/google-appengine-java/browse_frm/thread/3affdf1441f864b6/99a166946ad0ef61?lnk=gstq=self#99a166946ad0ef61 --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
I can't see that any RPCs are ever made from your client application to the server. How are you testing http://showsort.appspot.com/showsort/list ? You can't follow that directly from a browser (i.e. put it in your address bar), because GWT RPC does not support HTTP GET requests - it will give you some error code back like a 400 or a 500. Can you reproduce any of this on the local dev_appserver? If so, then you can use a debugger to track down the problem. If not, then you should add some code to your GWT client to track down why it appears the RPC is not being initiated. On Fri, Sep 4, 2009 at 11:42 AM, Xlorep DarkHelm ch...@darkhelm.org wrote: Application ID is showsort. I can't provide stacktraces for the error, because I'm getting no stacktraces. It isn't even showing up in the logs as a problem. I'm seeing a 500 error, where there used to not be a 500 error. I've not modified the code for my list servlet in several days, but this is now not working, and hasn't been since yesterday, and it appears to be the same problem it had a couple days ago during the short window. On Sep 4, 8:31 am, Toby Reyelts to...@google.com wrote: Cliff, We're not aware of any datastore problems. As Matthew posted two days ago, there was a short window where changes were introduced that may have caused some problems for some applications, so we rolled them back in short order. If after further investigation you still believe these are App Engine problems, please provide us with more information such as stacktraces and your application id. You can always check our status sitehttp://code.google.com/status/appengine/to see if it appears that App Engine is having problems in general. On Fri, Sep 4, 2009 at 10:21 AM, Cliff Hill ch...@darkhelm.org wrote: Still unable to do datastore gets. Well, for about 3 hours yesterday, it worked, and then it stopped. And it is still stopped as of this morning. Any chance that I'll be able to use my datastore code sometime in the near future? My app really kinda relies on the datastore to, well, work. On Thu, Sep 3, 2009 at 5:34 AM, Traveler1980 jshar...@gmail.com wrote: Datastore GET error rate is still 100%. Any ETA on when this will be resolved? Regards, JS On Sep 3, 3:41 am, Hani Naguib haninag...@gmail.com wrote: I am also getting many error 500 pages. This is happening since the issue I mentioned here: http://groups.google.com/group/google-appengine-java/browse_thread/th. .. -- I'm not responcabel fer my computer's spleling errnors - Xlorep DarkHelm Website:http://darkhelm.org --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
It looks like your application is being terminated due to exceeding request deadlines. If you look in your application logs, you can see warnings such as: Request was aborted after waiting too long to attempt to service your request. Most likely, this indicates that you have reached your simultaneous active request limit. This is almost always due to excessively high latency in your app. Please see http://code.google.com/appengine/docs/quotas.htmlfor more details. If you look at the duration of requests to /showsort/list, you can see that they exceed the 30 second limit on http requests. On Fri, Sep 4, 2009 at 1:48 PM, Xlorep DarkHelm ch...@darkhelm.org wrote: I can see the requests being made when I look at the logs for when the app runs. So there definitely are requests for /showsort/list being called, by my app. This is an automatic call, which has been working fine up until 2 days ago. Coincidentally about the same time that the updates previously mentioned which had to be rolled back were done. On Sep 4, 10:44 am, Toby Reyelts to...@google.com wrote: I can't see that any RPCs are ever made from your client application to the server. How are you testinghttp://showsort.appspot.com/showsort/list? You can't follow that directly from a browser (i.e. put it in your address bar), because GWT RPC does not support HTTP GET requests - it will give you some error code back like a 400 or a 500. Can you reproduce any of this on the local dev_appserver? If so, then you can use a debugger to track down the problem. If not, then you should add some code to your GWT client to track down why it appears the RPC is not being initiated. On Fri, Sep 4, 2009 at 11:42 AM, Xlorep DarkHelm ch...@darkhelm.org wrote: Application ID is showsort. I can't provide stacktraces for the error, because I'm getting no stacktraces. It isn't even showing up in the logs as a problem. I'm seeing a 500 error, where there used to not be a 500 error. I've not modified the code for my list servlet in several days, but this is now not working, and hasn't been since yesterday, and it appears to be the same problem it had a couple days ago during the short window. On Sep 4, 8:31 am, Toby Reyelts to...@google.com wrote: Cliff, We're not aware of any datastore problems. As Matthew posted two days ago, there was a short window where changes were introduced that may have caused some problems for some applications, so we rolled them back in short order. If after further investigation you still believe these are App Engine problems, please provide us with more information such as stacktraces and your application id. You can always check our status sitehttp://code.google.com/status/appengine/to see if it appears that App Engine is having problems in general. On Fri, Sep 4, 2009 at 10:21 AM, Cliff Hill ch...@darkhelm.org wrote: Still unable to do datastore gets. Well, for about 3 hours yesterday, it worked, and then it stopped. And it is still stopped as of this morning. Any chance that I'll be able to use my datastore code sometime in the near future? My app really kinda relies on the datastore to, well, work. On Thu, Sep 3, 2009 at 5:34 AM, Traveler1980 jshar...@gmail.com wrote: Datastore GET error rate is still 100%. Any ETA on when this will be resolved? Regards, JS On Sep 3, 3:41 am, Hani Naguib haninag...@gmail.com wrote: I am also getting many error 500 pages. This is happening since the issue I mentioned here: http://groups.google.com/group/google-appengine-java/browse_thread/th. .. -- I'm not responcabel fer my computer's spleling errnors - Xlorep DarkHelm Website:http://darkhelm.org --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
Ok, I added in logging directly to the servlet facade I have which wraps my Jython servlet to make it work on Google Apps Engine, and I'm not even getting that to show up in the logs. Here's what my last request produced (when I show requests only): # 1. 09-04 11:08AM 17.783 /showsort/list 500 42787ms 131cpu_ms 131api_cpu_ms 0kb Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.9.1.2) Gecko/20090729 Firefox/3.5.2,gzip(gfe) See details 207.166.99.104 - - [04/Sep/2009:11:09:00 -0700] POST /showsort/ list HTTP/1.1 500 0 http://showsort.appspot.com/showsort/ 0C52346D6CD87DD73B3C69C32B528FB5.cache.html Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2,gzip (gfe) This is from the GWT-RPC request, just before it, everything is working perfectly fine for my /showsort/display servlet: # 1. 09-04 11:08AM 17.781 /showsort/display 200 5576ms 9100cpu_ms 1kb Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/ 20090729 Firefox/3.5.2,gzip(gfe) See details 207.166.99.104 - - [04/Sep/2009:11:08:23 -0700] POST /showsort/ display HTTP/1.1 200 1346 http://showsort.appspot.com/showsort/ 0C52346D6CD87DD73B3C69C32B528FB5.cache.html Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2,gzip (gfe) showsort.appspot.com 2. D 09-04 11:08AM 20.932 DisplayServlet start: [ENTER] 3. D 09-04 11:08AM 21.264 DisplayServlet start: [LEVEL 1] Client ID = e9d1b50f-997d-11de-86aa-bb87edc68d5c 4. D 09-04 11:08AM 21.811 DisplayServlet run: [LEVEL 1] Starting step: Initialize. 5. I 09-04 11:08AM 22.263 DisplayServlet run: Time to process Initialize: 0.00799989700317 6. I 09-04 11:08AM 22.617 DisplayServlet start: Number of updates returned: 102 7. D 09-04 11:08AM 23.032 DisplayServlet start: [EXIT] And then I have the requests for the various resources the page initially requests, and the original main servlet at / shows this: # 1. 09-04 11:07AM 58.906 / 200 17476ms 29205cpu_ms 0kb Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/ 3.5.2,gzip(gfe) See details 207.166.99.104 - - [04/Sep/2009:11:08:16 -0700] GET / HTTP/1.1 200 703 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2,gzip(gfe) showsort.appspot.com 2. W 09-04 11:08AM 01.891 [showsort/1.336104640234288137].stderr: *sys-package-mgr*: The java security manager isn't allowing access to the package cache dir, 'cachedir/packages' Which is fine. Now, I've checked my web.xml file, and it seems to be correct, I've checked the Service interface in my GWT code and it is pointing to the correct path to access the servlet, and I've rechecked my code that calls the GWT-RPC servlet, and the servlet (and servlet facade), it all is fine. There just doesn't seem to be any connection going on here. Now, I *know* that going to a GWT-RPC servlet RemoteServlet doesn't work... but I'm getting 2 different kinds of responses, depending on my servlet. If I go to: http://showsort.appspot.com/showsort/display -- in Mozilla Firefox, I get a blank page. I expect this, as it doesn't have a GET or POST interface, and that's fine. If I go to: http://showsort.appspot.com/showsort/list -- in Mozilla Firefox, I get a 500 Server Error page. This is strange to me, and unexpected. The main fundamental difference between the two is that the list servlet requires datastore functionality, the display servlet only does when called upon to generate a full set of display updates for a selected sorting algorithm... only possible if I get the list of available sorting algorithms from the list servlet, which isn't happening. On Sep 4, 10:48 am, Xlorep DarkHelm ch...@darkhelm.org wrote: I can see the requests being made when I look at the logs for when the app runs. So there definitely are requests for /showsort/list being called, by my app. This is an automatic call, which has been working fine up until 2 days ago. Coincidentally about the same time that the updates previously mentioned which had to be rolled back were done. --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
Oh, I also have seen these occasionally for the past 2 days, suddenly: # 1. 09-04 10:37AM 58.844 /showsort/list 500 10129ms 0cpu_ms 0kb Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.6 Safari/532.0,gzip(gfe) See details 207.166.99.104 - - [04/Sep/2009:10:38:08 -0700] POST /showsort/ list HTTP/1.1 500 0 http://showsort.appspot.com/showsort/ 099466D0895E48EB4E5CF7AD38C5FA29.cache.html Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/ 3.0.195.6 Safari/532.0,gzip(gfe) showsort.appspot.com 2. W 09-04 10:38AM 08.974 Request was aborted after waiting too long to attempt to service your request. Most likely, this indicates that you have reached your simultaneous active request limit. This is almost always due to excessively high latency in your app. Please see http://code.google.com/appengine/docs/quotas.html for more details. But they are extremely sporadic when/if they appear. I have 2 (just 2) servlets which may be called simultaneously. The list one automatically re-sends to check for an update every 10 minutes, while the display one is called when someone presses the send button (and only if there actually is a list of radio buttons to pick from, retrieved from the list servlet). I think it is peculiar that something as simple as my little app could have overwhelmed my quota. Especially as my Quota page completely disagrees and shows I'm well under my quota in all regards. My app's latency isn't too high, I've minimized it to where it generally has about 3 - 4 seconds at most (I think the list might take 6, but I'm planning on working on that). There was a point that the display servlet was taking incredibly long, but I've made massive headway on reducing that. So I'm shocked, completely, if my quota somehow was exceeded, especially as I don't see any evidence of it. --~--~-~--~~~---~--~~ 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] JCache best practices
Hey guys, Would appreciate your help in answering a few specific questions about using the JCache API on my AppEngine project. (1) Are any of the following three operations so expensive (like JDOHelper.getPersistenceManagerFactory()) that I should try to only do them once in the application and carry around a singleton of their result from then on? (a) CacheManager.getInstance() (b) .getCacheFactory() (c) .getCache() (2) Is there a reason I shouldn't have an application-wide singleton Cache instance that I create on startup? What about CacheFactory? What about an instance of CacheManager? (3) Should I forget all this singleton business and call CacheManager.getInstance().getCache(myCache) every time I need it in a method? Does that cost me in performance at all? Thanks for the advice! Erem --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
Unfortunately, when you exceed the request deadline, you can lose your logs for that request. I would suggest paring your RPC down to the very bare minimum, so that you're not exceeding the deadline, then adding in logic and logging timings as you go. You should then be able to narrow things down to the slow operations which are causing you problems. On Fri, Sep 4, 2009 at 2:35 PM, Xlorep DarkHelm ch...@darkhelm.org wrote: Yes, I've upgraded to 1.2.5, I did yesterday in an effort to figure this out myself, and it didn't affect anything. My app is using: Google App Engine 1.2.5 Google Web Toolkit 1.7.0 GWT-Incubator for 1.7.0 (14 Jul 2009) Jython 2.5.0 I'm doing everything in Eclipse 3.5 (Galileo) with the Google Plugin for Eclipse 3.5, 1.1.0 and Pydev 1.5.0 (for my Jython stuff) On Sep 4, 11:28 am, Toby Reyelts to...@google.com wrote: Before we go any further, can you confirm that you've upgraded your application to the latest 1.2.5 version, including updating all App Engine libraries (such as appengine-api.jar and the ORM libraries) in your WEB-INF/lib? This shouldn't be strictly necessary, but it would help narrow down the problem. On Fri, Sep 4, 2009 at 2:21 PM, Xlorep DarkHelm ch...@darkhelm.org wrote: Ok, I added in logging directly to the servlet facade I have which wraps my Jython servlet to make it work on Google Apps Engine, and I'm not even getting that to show up in the logs. Here's what my last request produced (when I show requests only): # 1. 09-04 11:08AM 17.783 /showsort/list 500 42787ms 131cpu_ms 131api_cpu_ms 0kb Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.9.1.2) Gecko/20090729 Firefox/3.5.2,gzip(gfe) See details 207.166.99.104 - - [04/Sep/2009:11:09:00 -0700] POST /showsort/ list HTTP/1.1 500 0 http://showsort.appspot.com/showsort/ 0C52346D6CD87DD73B3C69C32B528FB5.cache.html Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2,gzip (gfe) This is from the GWT-RPC request, just before it, everything is working perfectly fine for my /showsort/display servlet: # 1. 09-04 11:08AM 17.781 /showsort/display 200 5576ms 9100cpu_ms 1kb Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/ 20090729 Firefox/3.5.2,gzip(gfe) See details 207.166.99.104 - - [04/Sep/2009:11:08:23 -0700] POST /showsort/ display HTTP/1.1 200 1346 http://showsort.appspot.com/showsort/ 0C52346D6CD87DD73B3C69C32B528FB5.cache.html Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2,gzip (gfe) showsort.appspot.com 2. D 09-04 11:08AM 20.932 DisplayServlet start: [ENTER] 3. D 09-04 11:08AM 21.264 DisplayServlet start: [LEVEL 1] Client ID = e9d1b50f-997d-11de-86aa-bb87edc68d5c 4. D 09-04 11:08AM 21.811 DisplayServlet run: [LEVEL 1] Starting step: Initialize. 5. I 09-04 11:08AM 22.263 DisplayServlet run: Time to process Initialize: 0.00799989700317 6. I 09-04 11:08AM 22.617 DisplayServlet start: Number of updates returned: 102 7. D 09-04 11:08AM 23.032 DisplayServlet start: [EXIT] And then I have the requests for the various resources the page initially requests, and the original main servlet at / shows this: # 1. 09-04 11:07AM 58.906 / 200 17476ms 29205cpu_ms 0kb Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/ 3.5.2,gzip(gfe) See details 207.166.99.104 - - [04/Sep/2009:11:08:16 -0700] GET / HTTP/1.1 200 703 - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2,gzip(gfe) showsort.appspot.com 2. W 09-04 11:08AM 01.891 [showsort/1.336104640234288137].stderr: *sys-package-mgr*: The java security manager isn't allowing access to the package cache dir, 'cachedir/packages' Which is fine. Now, I've checked my web.xml file, and it seems to be correct, I've checked the Service interface in my GWT code and it is pointing to the correct path to access the servlet, and I've rechecked my code that calls the GWT-RPC servlet, and the servlet (and servlet facade), it all is fine. There just doesn't seem to be any connection going on here. Now, I *know* that going to a GWT-RPC servlet RemoteServlet doesn't work... but I'm getting 2 different kinds of responses, depending on my servlet. If I go to:http://showsort.appspot.com/showsort/display-- in Mozilla Firefox, I get a blank page. I expect this, as it doesn't have a GET or POST interface, and that's fine. If I go to:http://showsort.appspot.com/showsort/list-- in Mozilla Firefox, I get a 500 Server Error page. This is strange to me, and unexpected. The main fundamental
[appengine-java] After upgrade to Java SDK 1.2.5 Key property saved but retrieved as null
Hi, I am experiencing a problem after upgrading to Java SDK 1.2.5. In a simple CMS application a page is stored as a CMSPage entity, which points to its text saved as a DetachedText entity using a Key property (i.e. an unowned relationship) as follows: @PersistenceCapable(identityType = IdentityType.APPLICATION) public class CMSPage { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key id; @Persistent private Key text; public Key getId() { return id; } public void setId(Key id) { this.id = id; } public Key getText() { return text; } public void setText(Key text) { this.text = text; } } The Key property text points to: @PersistenceCapable(identityType = IdentityType.APPLICATION) public class DetachedText { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key id; @Persistent private Text content; public DetachedText(Text content) { this.content = content; } public Key getId() { return id; } public Text getContent() { return content; } } NOTE: I have removed other properties and code that I found unrelated to the problem After saving the page I can see the text field populated in the development console. The value shows as DetachedText(5). I also verified that the DetachedText entity exists and its ID equals 5. However, after I retrieve CMSPage from the datastore using a javax.jdo.Query the text field in the retrieved object is null (both the Eclipse debugger and the application throwing NPE confirm it). What am I doing wrong? Any pointers will be appreciated. Thanks, Yegor --~--~-~--~~~---~--~~ 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] Java memcache increment with initial value
I notice that the Python memcache API supports an increment with initial value operation: http://code.google.com/appengine/docs/python/memcache/clientclass.html#Client_incr Are there any plans to support this on Java? In the Python implementation, is this simply done as three memcache calls, something like this: Long counter = memcache.increment( key, 1 ); if ( counter == null ) { memcache.put( key, (long)0, null, SetPolicy.ADD_ONLY_IF_NOT_PRESENT ); counter = memcache.increment( key, 1 ); } If that's all Python is doing, then I don't see any value of adding it to Java; but, if the Python implementation is somehow more efficient than the three memcache calls in the Java example above, then I'd like to see it added to Java. Thanks. Vince --~--~-~--~~~---~--~~ 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] new stack traces after upgrading to SDK 1.2.5
After upgrading to SDK 1.2.5, I've noticed a set of stack traces that show up in both the development environment and on the production server. These only appear if the logging level is set to INFO, and they show up as INFO logs on the production server. I'm pretty sure these are new in SDK 1.2.5 since I've been running at the INFO logging level for quite some time. They only happen for the first request after the application has been restarted. From my production server: com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue$SystemLoader loadFinalizer: Not allowed to access system class loader. com.google.appengine.repackaged.com.google.common.base.internal.Finalizer getInheritableThreadLocalsField: Couldn't access Thread.inheritableThreadLocals. Reference finalizer threads will inherit thread local values. com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue init: Failed to start reference finalizer thread. Reference cleanup will only occur when new references are created. java.lang.reflect.InvocationTargetException at com.google.appengine.runtime.Request.process-ad303eae7c610e90(Request.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Method.java:40) at com.google.appengine.repackaged.com.google.common.base.FinalizableReferenceQueue.init(FinalizableReferenceQueue.java:124) at com.google.appengine.repackaged.com.google.common.labs.misc.InterningPools$WeakInterningPool.clinit(InterningPools.java:104) at com.google.appengine.repackaged.com.google.common.labs.misc.InterningPools.newWeakInterningPool(InterningPools.java:48) at com.google.appengine.repackaged.com.google.io.protocol.ProtocolSupport.clinit(ProtocolSupport.java:55) at com.google.apphosting.api.DatastorePb$Query.init(DatastorePb.java:1072) at com.google.apphosting.api.DatastorePb$Query$1.init(DatastorePb.java:2355) at com.google.apphosting.api.DatastorePb$Query.clinit(DatastorePb.java:2355) at com.google.appengine.api.datastore.QueryTranslator.convertToPb(QueryTranslator.java:27) at com.google.appengine.api.datastore.DatastoreServiceImpl$PreparedQueryImpl.convertToPb(DatastoreServiceImpl.java:357) at com.google.appengine.api.datastore.DatastoreServiceImpl$PreparedQueryImpl.runQuery(DatastoreServiceImpl.java:339) at com.google.appengine.api.datastore.DatastoreServiceImpl$PreparedQueryImpl.access$100(DatastoreServiceImpl.java:269) at com.google.appengine.api.datastore.DatastoreServiceImpl$PreparedQueryImpl$1.iterator(DatastoreServiceImpl.java:303) at org.apache.jsp.test.listEntities_jsp._jspService(listEntities_jsp.java:49) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) ...truncated --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
I set up a doGet method on my list servlet, which should just display the list of algorithm names that is retrieved from the datastore. There are 13 items in the list, not much. http://showsort.appspot.com/showsort/list This way, you don't need to use the rest of the app to see this. I'm getting a 500 Server Error. There has been two times that I have gotten more than just the initial request line logged in the Admin Panel's logs. Both times, it halts on the step where it is trying to read from the DataStore. My code to do that worked just fine before the 1.2.5 change 2 days ago. Now it seems to be hanging and getting a hard deadline limit error produced: 09-04 01:55PM 50.733 /showsort/list com.google.apphosting.api.DeadlineExceededException: This request (8d11090a3c971760) started at 2009/09/04 20:55:22.204 UTC and was still executing at 2009/09/04 20:55:50.718 UTC. at org.python.core.PyException.tracebackHere(PyException.java:155) at org.python.core.PyException.tracebackHere(PyException.java:145) at org.python.core.PyTableCode.call(PyTableCode.java:169) at org.python.core.PyBaseCode.call(PyBaseCode.java:297) at org.python.core.PyBaseCode.call(PyBaseCode.java:191) at org.python.core.PyFunction.__call__(PyFunction.java:385) at org.python.core.PyMethod.__call__(PyMethod.java:215) at org.python.core.PyMethod.instancemethod___call__(PyMethod.java: 221) at org.python.core.PyMethod.__call__(PyMethod.java:206) at org.python.core.PyObject.__call__(PyObject.java:367) at org.python.core.PyObject._jcallexc(PyObject.java:3504) at org.python.core.PyObject._jcall(PyObject.java:3536) at org.python.proxies.os$PythonPOSIXHandler$0.error(Unknown Source) at org.python.posix.JavaLibCHelper.stat(JavaLibCHelper.java:172) at org.python.posix.JavaPOSIX.stat(JavaPOSIX.java:172) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_ $3.run(Method_.java:164) at java.security.AccessController.doPrivileged(Native Method) at com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.privilegedInvoke (Method_.java:162) at com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke_ (Method_.java:131) at com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke (Method_.java:40) at org.python.core.PyReflectedFunction.__call__ (PyReflectedFunction.java:175) at org.python.core.PyObject.__call__(PyObject.java:355) at org.python.core.PyMethod.__call__(PyMethod.java:215) at org.python.core.PyMethod.instancemethod___call__(PyMethod.java: 221) at org.python.core.PyMethod.__call__(PyMethod.java:206) at org.python.core.PyObject.__call__(PyObject.java:397) at org.python.core.PyObject.__call__(PyObject.java:401) at os$py.stat$38(/base/data/home/apps/showsort/1.336107385381934633/ WEB-INF/lib-python/Lib.zip/os.py:497) at os$py.call_function(/base/data/home/apps/showsort/ 1.336107385381934633/WEB-INF/lib-python/Lib.zip/os.py) at org.python.core.PyTableCode.call(PyTableCode.java:165) at org.python.core.PyBaseCode.call(PyBaseCode.java:131) at org.python.core.PyFunction.__call__(PyFunction.java:317) at linecache$py.updatecache$5(/base/data/home/apps/showsort/ 1.336107385381934633/WEB-INF/lib-python/Lib.zip/linecache.py:136) at linecache$py.call_function(/base/data/home/apps/showsort/ 1.336107385381934633/WEB-INF/lib-python/Lib.zip/linecache.py) at org.python.core.PyTableCode.call(PyTableCode.java:165) at org.python.core.PyBaseCode.call(PyBaseCode.java:146) at org.python.core.PyFunction.__call__(PyFunction.java:327) at linecache$py.getlines$3(/base/data/home/apps/showsort/ 1.336107385381934633/WEB-INF/lib-python/Lib.zip/linecache.py:40) at linecache$py.call_function(/base/data/home/apps/showsort/ 1.336107385381934633/WEB-INF/lib-python/Lib.zip/linecache.py) at org.python.core.PyTableCode.call(PyTableCode.java:165) at org.python.core.PyBaseCode.call(PyBaseCode.java:146) at org.python.core.PyFunction.__call__(PyFunction.java:327) at inspect$py.findsource$30(/base/data/home/apps/showsort/ 1.336107385381934633/WEB-INF/lib-python/Lib.zip/inspect.py:522) at inspect$py.call_function(/base/data/home/apps/showsort/ 1.336107385381934633/WEB-INF/lib-python/Lib.zip/inspect.py) at org.python.core.PyTableCode.call(PyTableCode.java:165) at org.python.core.PyBaseCode.call(PyBaseCode.java:131) at org.python.core.PyFunction.__call__(PyFunction.java:317) at
[appengine-java] Re: GAE down? Response Error 500
Request deadline? I've not been exceeding any request deadline. I'm getting this a lot now: # 1. 09-04 12:01PM 00.892 /showsort/list-- 500 10455ms 0cpu_ms 0kb Mozilla/5.0 (en-us) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13,gzip(gfe) See details 72.14.192.66 - - [04/Sep/2009:12:01:11 -0700] GET /showsort/ list-- HTTP/1.1 500 0 - Mozilla/5.0 (en-us) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13,gzip(gfe) showsort.appspot.com 2. W 09-04 12:01PM 11.348 Request was aborted after waiting too long to attempt to service your request. Most likely, this indicates that you have reached your simultaneous active request limit. This is almost always due to excessively high latency in your app. Please see http://code.google.com/appengine/docs/quotas.html for more details. --- the problem with this is when I check my Quota page, I'm way, WAY below my limit. There are only two things that show any sign of being used by the quotas: CPU Time4% 0.27 of 6.50 CPU hours Okay Deployments 2% 6 of 250Okay Everything else is at 0%. My requests are: Requests0% 201 of 128 Okay If I've reached my simultaneous active request limit, somehow... where would I even be able to see that? I'm thinking that's a false alarm. Especially as my app really is not that taxing, at all. The vast majority of the processing for it (the graphics/UI processing) is done through GWT on the client side. On Sep 4, 11:57 am, Toby Reyelts to...@google.com wrote: Unfortunately, when you exceed the request deadline, you can lose your logs for that request. I would suggest paring your RPC down to the very bare minimum, so that you're not exceeding the deadline, then adding in logic and logging timings as you go. You should then be able to narrow things down to the slow operations which are causing you 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-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: new stack traces after upgrading to SDK 1.2.5
Vince, If you are interested the reason for the exception is that App Engine does not support threads. Reference finalizer usually runs as a separate thread. In this case the finalizer (correctly) failed to initialize. However, it looks like finalizer is not a critical component in this context. Guice prints a similar stacktrace for its reference finalizer too, also as INFO. Cheers, Yegor On Sep 4, 1:41 pm, Vince Bonfanti vbonfa...@gmail.com wrote: After upgrading to SDK 1.2.5, I've noticed a set of stack traces that show up in both the development environment and on the production server. These only appear if the logging level is set to INFO, and they show up as INFO logs on the production server. I'm pretty sure these are new in SDK 1.2.5 since I've been running at the INFO logging level for quite some time. They only happen for the first request after the application has been restarted. From my production server: com.google.appengine.repackaged.com.google.common.base.FinalizableReference Queue$SystemLoader loadFinalizer: Not allowed to access system class loader. com.google.appengine.repackaged.com.google.common.base.internal.Finalizer getInheritableThreadLocalsField: Couldn't access Thread.inheritableThreadLocals. Reference finalizer threads will inherit thread local values. com.google.appengine.repackaged.com.google.common.base.FinalizableReference Queue init: Failed to start reference finalizer thread. Reference cleanup will only occur when new references are created. java.lang.reflect.InvocationTargetException at com.google.appengine.runtime.Request.process-ad303eae7c610e90(Request.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Method.java:40) at com.google.appengine.repackaged.com.google.common.base.FinalizableReference Queue.init(FinalizableReferenceQueue.java:124) at com.google.appengine.repackaged.com.google.common.labs.misc.InterningPools$ WeakInterningPool.clinit(InterningPools.java:104) at com.google.appengine.repackaged.com.google.common.labs.misc.InterningPools. newWeakInterningPool(InterningPools.java:48) at com.google.appengine.repackaged.com.google.io.protocol.ProtocolSupport.cli nit(ProtocolSupport.java:55) at com.google.apphosting.api.DatastorePb$Query.init(DatastorePb.java:1072) at com.google.apphosting.api.DatastorePb$Query$1.init(DatastorePb.java:2355) at com.google.apphosting.api.DatastorePb$Query.clinit(DatastorePb.java:2355) at com.google.appengine.api.datastore.QueryTranslator.convertToPb(QueryTransla tor.java:27) at com.google.appengine.api.datastore.DatastoreServiceImpl$PreparedQueryImpl.c onvertToPb(DatastoreServiceImpl.java:357) at com.google.appengine.api.datastore.DatastoreServiceImpl$PreparedQueryImpl.r unQuery(DatastoreServiceImpl.java:339) at com.google.appengine.api.datastore.DatastoreServiceImpl$PreparedQueryImpl.a ccess$100(DatastoreServiceImpl.java:269) at com.google.appengine.api.datastore.DatastoreServiceImpl$PreparedQueryImpl$1 .iterator(DatastoreServiceImpl.java:303) at org.apache.jsp.test.listEntities_jsp._jspService(listEntities_jsp.java:49) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) ...truncated --~--~-~--~~~---~--~~ 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] Discussion on will-it-play-in-app-engine
Please create a JasperReports entry. Sadly it's not compatible --~--~-~--~~~---~--~~ 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: After upgrade to Java SDK 1.2.5 Key property saved but retrieved as null
Just so you know, I think I have solved the problem by setting defaultFetchGroup=true on the Key property: @Persistent(defaultFetchGroup=true) private Key text; Might have something to do with the recently closed issue #58 Queries don't respect fetch groups: http://code.google.com/p/datanucleus-appengine/issues/detail?id=58 What's puzzling is that I have unowned relationships all over the application, however only one class - CMSPage - fails to retrieve the Key properties. I am not sure why Key is not automatically in the default fetch group. Key is not an entity class. It should be ok to fetch it non-lazily by default. Yegor On Sep 4, 1:21 pm, Yegor yegor.jba...@gmail.com wrote: Hi, I am experiencing a problem after upgrading to Java SDK 1.2.5. In a simple CMS application a page is stored as a CMSPage entity, which points to its text saved as a DetachedText entity using a Key property (i.e. an unowned relationship) as follows: @PersistenceCapable(identityType = IdentityType.APPLICATION) public class CMSPage { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key id; @Persistent private Key text; public Key getId() { return id; } public void setId(Key id) { this.id = id; } public Key getText() { return text; } public void setText(Key text) { this.text = text; } } The Key property text points to: @PersistenceCapable(identityType = IdentityType.APPLICATION) public class DetachedText { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key id; @Persistent private Text content; public DetachedText(Text content) { this.content = content; } public Key getId() { return id; } public Text getContent() { return content; } } NOTE: I have removed other properties and code that I found unrelated to the problem After saving the page I can see the text field populated in the development console. The value shows as DetachedText(5). I also verified that the DetachedText entity exists and its ID equals 5. However, after I retrieve CMSPage from the datastore using a javax.jdo.Query the text field in the retrieved object is null (both the Eclipse debugger and the application throwing NPE confirm it). What am I doing wrong? Any pointers will be appreciated. Thanks, Yegor --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
When uploading a new version, with a few more levels of debugging enabled: Compiling module org.darkhelm.showsort.ShowSort Compiling 6 permutations Permutation compile succeeded Linking into F:\Documents\Eclipse\workspace\ShowSort\war Link succeeded Compilation succeeded -- 95.312s Creating staging directory Scanning for jsp files. Compiling jsp files. Compiling java files. Scanning files on local disk. Initiating update. Cloning 31 static files. Cloning 116 application files. Cloned 100 files. Uploading 3 files. Uploaded 1 files. Uploaded 2 files. Uploaded 3 files. Deploying new version. Rolling back the update. java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/deploy?app_id=showsortversion=1; 500 Internal Server Error Server Error (500) A server error has occurred. Debugging information may be found in F:\Documents\Eclipse\temp \appengine-deploy8021509217612458213.log Contents of that file: Unable to upload: java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/deploy?app_id=showsortversion=1; 500 Internal Server Error Server Error (500) A server error has occurred. at com.google.appengine.tools.admin.ServerConnection.send (ServerConnection.java:143) at com.google.appengine.tools.admin.ServerConnection.post (ServerConnection.java:81) at com.google.appengine.tools.admin.AppVersionUpload.send (AppVersionUpload.java:429) at com.google.appengine.tools.admin.AppVersionUpload.deploy (AppVersionUpload.java:388) at com.google.appengine.tools.admin.AppVersionUpload.commit (AppVersionUpload.java:351) at com.google.appengine.tools.admin.AppVersionUpload.doUpload (AppVersionUpload.java:111) at com.google.appengine.tools.admin.AppAdminImpl.update (AppAdminImpl.java:53) at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy (AppEngineBridgeImpl.java:271) at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace (DeployProjectJob.java:148) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run (InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) --~--~-~--~~~---~--~~ 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: new stack traces after upgrading to SDK 1.2.5
That's fine. :) I just wanted to make sure someone was aware of this, since it appeared to be something new introduced with the latest SDK. On Fri, Sep 4, 2009 at 4:14 PM, Toby Reyeltsto...@google.com wrote: It's a message that you can safely ignore. There is a reason it's logged at INFO. :) --~--~-~--~~~---~--~~ 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: Discussion on will-it-play-in-app-engine
Jimbo, Would you mind seeing if this issue goes away with the latest 1.2.5? On Tue, Aug 25, 2009 at 4:03 AM, Jimbo ji...@google-app-engine.com wrote: Hi, I managed to get spring security working by amending the source as suggested at: http://www.dotnetguru2.org/bmarchesson/index.php?p=1100 If anyone would like a link to the re-compiled core jar I created please feel free to download at: http://www.google-app-engine.com/blog/post/Spring-security-fix-for-google-app-engine.aspx Jim --~--~-~--~~~---~--~~ 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: GAE down? Response Error 500
Your app: /showsort/list 500 41106ms /showsort/list 500 29590ms /showsort/list 500 40991ms /showsort/list 500 40340ms /showsort/list 500 30155ms /showsort/list 500 35481ms /showsort/list 500 40109ms /showsort/list 500 42148ms /showsort/list com.google.apphosting.api.DeadlineExceededException: This request (675bc7926055c7e2) started at 2009/09/04 21:33:38.750 UTC and was still executing at 2009/09/04 21:34:07.223 UTC You are exceeding the 30s request deadline with prejudice on every single request to /showsort/list. Your app gets terminated each time, which causes it to have to be reloaded from scratch for subsequent requests. App reloads can be expensive (and it appears that yours are), and that seems likely to be the root cause behind the warnings you're receiving about excessively high latency. In terms of quota, the warning is specifically describing your simultaneous active request limit, not long-term quota like CPU time or datastore usage. On Fri, Sep 4, 2009 at 3:56 PM, Xlorep DarkHelm ch...@darkhelm.org wrote: Request deadline? I've not been exceeding any request deadline. I'm getting this a lot now: # 1. 09-04 12:01PM 00.892 /showsort/list-- 500 10455ms 0cpu_ms 0kb Mozilla/5.0 (en-us) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13,gzip(gfe) See details 72.14.192.66 - - [04/Sep/2009:12:01:11 -0700] GET /showsort/ list-- HTTP/1.1 500 0 - Mozilla/5.0 (en-us) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13,gzip(gfe) showsort.appspot.com 2. W 09-04 12:01PM 11.348 Request was aborted after waiting too long to attempt to service your request. Most likely, this indicates that you have reached your simultaneous active request limit. This is almost always due to excessively high latency in your app. Please see http://code.google.com/appengine/docs/quotas.html for more details. --- the problem with this is when I check my Quota page, I'm way, WAY below my limit. There are only two things that show any sign of being used by the quotas: CPU Time4% 0.27 of 6.50 CPU hours Okay Deployments 2% 6 of 250Okay Everything else is at 0%. My requests are: Requests0% 201 of 128 Okay If I've reached my simultaneous active request limit, somehow... where would I even be able to see that? I'm thinking that's a false alarm. Especially as my app really is not that taxing, at all. The vast majority of the processing for it (the graphics/UI processing) is done through GWT on the client side. On Sep 4, 11:57 am, Toby Reyelts to...@google.com wrote: Unfortunately, when you exceed the request deadline, you can lose your logs for that request. I would suggest paring your RPC down to the very bare minimum, so that you're not exceeding the deadline, then adding in logic and logging timings as you go. You should then be able to narrow things down to the slow operations which are causing you 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-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] QueueFactory.getQueue( String )
My first question on task queues... I'd like to design my application to use a named (configured) queue if it exists, but to drop back to using the default queue if the named queue isn't configured. I'd like to do something like this: Queue q = QueueFactory.getQueue( myQueue ); if ( q == null ) { q = QueueFactory.getDefaultQueue(); } But, the documentation for QueueFactory.getQueue( String ) implies that this isn't how it works: Attempting to use a non-existing queue name may result in errors at the point of use of the Queue object and not when calling getQueue(String). Is there a way to simply and reliably determine whether a given queue name has been configured? Vince --~--~-~--~~~---~--~~ 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: Confirmation of Google Multi-Tenant app policy
Thank you Jason for your reply I will file On 9月5日, 午前2:53, Jason (Google) apija...@google.com wrote: Currently, registering multiple IDs for the same application is a violation of the App Engine terms of service. However, we do have an exception policy in place for developers with a multi-tenant strategy, and we handle these on a case-by-case basis. To begin, please file a new multi-instance exception request: http://code.google.com/support/bin/request.py?contact_type=AppEngineM... - Jason On Wed, Sep 2, 2009 at 5:33 AM, doc123 doc.u...@gmail.com wrote: Hi Now I am planning to start free project management service = http://www.chainofasker.com/by using Google App Engine When I try to provide this free project management service, problem is server fee because once I release this service, I can not expect how many user come to this site and use free service. So I want to ask user to have their dedicated server if they want use stable service. Procedure is following User create User own account at Google app engine site. User nominate me as a administrator or invite me as a developer. I install server software. User remove me from administrator list. User start using my service Is this meet Google App Engine’s terms of use? I found related article which is posted by Jason but now I can not find it url so I post previous multi-tenant discussion image to here =http://www.chainofasker.com/muti-tenant-past-post I think above procedure is keeping Jason’s recommendation. --~--~-~--~~~---~--~~ 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: how to query to implement auto suggest query...
There are numerous tutorials out in the wild for this. I don't know of any App Engine-specific examples, but they shouldn't be too hard to find. Since App Engine doesn't currently support full-text search, you'll only be able to match entities on their opening characters. http://www.dynamicajax.com/fr/AJAX_Suggest_Tutorial-.html http://www.google.com/search?q=ajax+suggest - Jason On Thu, Sep 3, 2009 at 3:08 AM, mar_novice mariocape1...@gmail.com wrote: Hi, I dont know how to implement a back-end for an autosuggest query. The idea is if a user type sa, the servlet will query from the datastore, for example employee names that starts with sa. Any body knows how to implement this?? Thanks... -mar_novice --~--~-~--~~~---~--~~ 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: how to query to implement auto suggest query...
By they shouldn't be too hard to find, I meant that any examples you find shouldn't be too hard to tailor for App Engine, even if they are RDBMS-based. - Jason On Fri, Sep 4, 2009 at 4:06 PM, Jason (Google) apija...@google.com wrote: There are numerous tutorials out in the wild for this. I don't know of any App Engine-specific examples, but they shouldn't be too hard to find. Since App Engine doesn't currently support full-text search, you'll only be able to match entities on their opening characters. http://www.dynamicajax.com/fr/AJAX_Suggest_Tutorial-.html http://www.google.com/search?q=ajax+suggest - Jason On Thu, Sep 3, 2009 at 3:08 AM, mar_novice mariocape1...@gmail.comwrote: Hi, I dont know how to implement a back-end for an autosuggest query. The idea is if a user type sa, the servlet will query from the datastore, for example employee names that starts with sa. Any body knows how to implement this?? Thanks... -mar_novice --~--~-~--~~~---~--~~ 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: HttpSession handling question
Hi Marton. Yes, you need to explicitly call setAttribute() when you modify any object in the session. Otherwise, the object won't be updated in App Engine's cache/datastore, which are the mechanisms it uses to back sessions - Jason On Thu, Sep 3, 2009 at 2:11 AM, Marton Papp mapr...@gmail.com wrote: Hi! I am using HttpSession to store some information as session attributes. When I am testing the application locally, it works fine. But when I upload it to production, it seems that any session attributes that I retrieve from the session and modify it are not persisted back to the session again, unless I specifically call HttpSession.setAttribute() in each request. I am not sure whether it is the expected behavior or it is bug. Here are the two test cases: Test1: public class Test_gae_sessionServlet extends HttpServlet { private static final String SESSION_ATTRIBUTE_NAME = test_session_attribute; public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { HttpSession session = req.getSession(); resp.setContentType(text/plain); SessionContext sessionContext = (SessionContext) session.getAttribute (SESSION_ATTRIBUTE_NAME); resp.getWriter().println(session retreived: + sessionContext); if (sessionContext==null) { sessionContext = new SessionContext(); resp.getWriter().println(session created: + sessionContext); // calling setAttribute only when the object is first created resp.getWriter().println(putting context into session: + sessionContext); session.setAttribute(SESSION_ATTRIBUTE_NAME, sessionContext); } sessionContext.value++; resp.getWriter().println(context at end of retquest: + sessionContext); } } Test2: public class Test_gae_sessionServlet extends HttpServlet { private static final String SESSION_ATTRIBUTE_NAME = test_session_attribute; public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { HttpSession session = req.getSession(); resp.setContentType(text/plain); SessionContext sessionContext = (SessionContext) session.getAttribute (SESSION_ATTRIBUTE_NAME); resp.getWriter().println(session retreived: + sessionContext); if (sessionContext==null) { sessionContext = new SessionContext(); resp.getWriter().println(session created: + sessionContext); } // calling setAttribute in every request resp.getWriter().println(putting context into session: + sessionContext); session.setAttribute(SESSION_ATTRIBUTE_NAME, sessionContext); sessionContext.value++; resp.getWriter().println(context at end of retquest: + sessionContext); } } The object stored in the session: public class SessionContext implements Serializable { private static final long serialVersionUID = -5151175222401820614L; public int value = 0; @Override public String toString() { return SessionContext [value= + value + ]; } } In Test1 it is always the first version of the SessionContext that is retreived in each request, no matter that I try to change its contents during each request. Test2 works as expected. Is it so that I need to call HttpSession.setAttribute() for any object that is expected to change during the request? Is it according to the servlet specification? Marton --~--~-~--~~~---~--~~ 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: Is there limitation of size of webapp uploaded to GAE?
By default, all files under war are treated as both static and resource files. You can modify your appengine-web.xml file to explicitly indicate which files are static and which are resource: http://code.google.com/appengine/docs/java/config/appconfig.html#Static_Files_and_Resource_Files - Jason On Thu, Sep 3, 2009 at 5:47 AM, barak barak.ya...@gmail.com wrote: If I understood correctly - static files are the files that kept under the war directory. What are the resources files? On Sep 2, 7:19 pm, Jason (Google) apija...@google.com wrote: Static files can be up to 10 MB each. There is no limit on the total storage size for static files. There is, however for resource files -- the combined size of all resource files can't exceed 150 MB. - Jason On Mon, Aug 31, 2009 at 12:21 AM, barak barak.ya...@gmail.com wrote: I was wondering - does GAE has some limitation regarding the size of an applicatian uploaded to GAE? I know there is limitation regarding single size upload, but can my application for example holds hundreds of files (source, static, what ever)? Thanks.- Hide quoted text - - Show quoted text - --~--~-~--~~~---~--~~ 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] Write text on an image..?
Hi, I want the user to fill some text in a textfield and then allow him to hit a 'create' button. The text will written as a title on the top of an image. The image will then be shown in the browser. What I didn't figure out was how to write the text on the image file. Can somebody help me with example code? --~--~-~--~~~---~--~~ 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: querying using ANCESTOR IS
I'm glad you got it working using the low-level API. If you ever want to return to JDO, see the last post in this thread, which describes how to perform ancestor queries: http://groups.google.com/group/google-appengine-java/browse_thread/thread/97ba3209ec6a65de - Jason On Thu, Sep 3, 2009 at 9:14 AM, Clay Lenhart c...@lenharts.net wrote: I got this working using the low-level API. Actually, I'm not sure what JDO gives you over this. I wrap the low- level Entity with my class and give it getters and setters. It doesn't feel any more or less verbose. --~--~-~--~~~---~--~~ 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: GAE takes 28 sec to read just 200 records
Based on one of your recent posts, it seems like multiple PersistenceManagerFactory instances are being created by different classloaders. Since this is an expensive operation, this could explain why you're experiencing such slow performance. Did you follow Toby's suggestion in the last post? - 1) Are you maybe loading that singleton class in different classloaders? Try logging the classloader object reference that tries to create the PersistenceManagerFactory. You can add a static initializer ABOVE pmfInstance. static { logger.log(Level.SEVERE, Loading PMF in + PMF.class.getClassLoader()); } - - Jason On Thu, Sep 3, 2009 at 10:03 AM, Vik vik@gmail.com wrote: Hie Strange to hear that if it is creating PMF again Should it do it just once when i logged in? In the logging process I do get an instance of PMF. So, why it is doing that again? Any advise what may be going wrong here? Thankx and Regards Vik Founder www.sakshum.com www.sakshum.blogspot.com On Thu, Sep 3, 2009 at 10:25 PM, datanucleus andy_jeffer...@yahoo.comwrote: 17. I09-03 09:46AM 31.994 vik.sakshum.sakshumweb.jsp.model.jdo.PMF clinit: Loading PMF in com.google.apphosting.runtime.security.userclassloa...@8fcc7b 18. I09-03 09:46AM 41.622 Don't you think it's a strange way to benchmark things by including known one-off operations like creating a PMF ? Personally that ought to be included in application startup timings, rather than time taken to read 200 records. --~--~-~--~~~---~--~~ 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: Bulk writes to datastore
Batch puts are supported, yes, and as of yesterday's release, calling makePersistentAll (JDO) and the equivalent JPA call will take advantage of this support (previously, you had to use the low-level API). Two quick notes: 1) All of the entities that you're persisting should be in separate entity groups since two entities in the same entity group can't be written to consecutively, and you will see datastore timeout exceptions if many simultaneous write requests come in for the same entity or entity group. 2) Batch puts do not operate in a transaction. This means that some writes may succeed but others may not, so if you need the ability to rollback, you'll need transactions. - Jason Let me know if you have any more questions on this. - Jason On Thu, Sep 3, 2009 at 7:24 PM, Nicholas Albion nalb...@gmail.com wrote: Is it possible to overcome the datastore's 10 writes/second limit by batching them? I've got a table containing just over one million records (in CSV format). Does a batched write (of around 1MB of data and, say 1000 records) count as one write, or 1000 writes? --~--~-~--~~~---~--~~ 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: JDO queries on owned/unowned one-to-many relationships
Owned relationships uses entity groups behind-the-scenes: http://code.google.com/appengine/docs/python/datastore/keysandentitygroups.html#Entity_Groups_Ancestors_and_Paths An entity group is basically a hierarchy of entities, with one entity as the root and all other entities below this root. Entity groups can be arbitrarily deep, so you can have entities with a parent, grandparent, great-grandparent, and so-on. Owned relationships are maintained by embedding the parent's key in the child's key -- this is why you can't change the relationship between parent and child after storing the entities. Because parent keys are embedded in the child entities, it's possible to execute an ancestor query where you retrieve all entities above a given entity in the hierarchy. This is pretty straightforward using the low-level datastore API, but you can do this in JDO as well -- see the last post in this thread: http://groups.google.com/group/google-appengine-java/browse_thread/thread/97ba3209ec6a65de - Jason On Thu, Sep 3, 2009 at 7:40 PM, Nicholas Albion nalb...@gmail.com wrote: Could somebody please provide an example of how to query for the one- to-many relationship examples in the documentation? What I want to do is something like the following: String employeeId = 1234; query = pm.newQuery(ContactInfo.class); query.setFilter(employee == employeeParam); query.declareParameters(String employeeParam); ListContactInfo employeeContacts = (ListContactInfo) query.execute ( employeeId ); Should this work? Or do I need to use an unowned one-to-many, replacing private Employee employee; with private Key employeeId; and then something like: Key employeeId = KeyFactory.createKey(Employee.class.getSimpleName(), 1234); query = pm.newQuery(ContactInfo.class); query.setFilter(employeeId == employeeParam); query.declareParameters(Key employeeParam); ListContactInfo employeeContacts = (ListContactInfo) query.execute ( employeeId ); (I'm a bit confused by the difference between owned and unowned relationships) --~--~-~--~~~---~--~~ 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: Queries in 1.2.5 don't retrieve com.google.appengine.api.datastore.Text data anymore?
Hi Dominik, I am glad that you found a solution. There is an alternative. You could annotate your class with something like @FetchGroup(name=detach_image, member...@persistent (name=image_data)}) and then you could use tx.begin(); pm.getFetchPlan().addGroup(detach_image); Query q = pm.newQuery(... ... That way they are fetched only when you need them. --~--~-~--~~~---~--~~ 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: Model to Optimize Queries
Thanks! I am thinking of doing something like this: class Article { HashSetKey reviewers; HashSetString tags; int status; // pending, approved, declined - derived from reviewers' statuses HashMapKey, Review mapping; // Reviewer key to Review mapping to prevent storing making another 1:n relationship class Review { int status; // pending, approved, declined String notes; ... // anything else } } Do you think this will work? It doesn't get me all the things I want, but is still good enough I think (its kind of sad that we can't model this common scenario effectively/efficiently). Do you recommend doing this HashMap kind of a hacky thing or just make a new Entity and a new relationship? Is it worth the saving? On Sat, Aug 29, 2009 at 12:28 AM, leszek leszek.ptokar...@gmail.com wrote: Let consider a different approach. Take into account that Article and Reviewer are rather immutable data (you need adding new article but not to change existing), why break this nice feature. Consider several classes: Article { Key , {tags} next attribuites } Reviewer { Key, mail, ... next attributes } ArticleNotReviewedYet { Key articleKey } ArticleUnderReview { Key articleKey, Key reviewerKey, int reviewResult } ArticleReviewed {Key articleKey, int totalReviewResult } This way if you want: - to know the status of the article : find article in the first table and find (by looking up the articleKey only) in what table (ArticleNotReviewed, ArticleUnderReview, ArticleReviewed) contains the articleKey - to add new article: add article to Article and entry to ArticleNotReviewed - to start review: remove article from ArticleNotReviewed and add an entry in ArticleUnderReview - to add next review result: add next entry to ArticleUnderReview - to end up review: remove all articleKey entries in ArticleUnderReview and create entry in ArticleReviewed Of course, it needs much more elaboration, but may be it is worth considering. --~--~-~--~~~---~--~~ 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: new stack traces after upgrading to SDK 1.2.5
Vince, I'm still using SDK 1.2.2 and I am getting a very similar info message. --~--~-~--~~~---~--~~ 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] Crop gives images that are not exact size
The crop function in image services takes in floats/doubles between 0 and 1.0 as positions. This is not accurate enough, because depending on where the positions are, the return image may not be in the exact size I want. Also, it throws exception if the crop size is 1 pixel by 1 pixel. Why doesn't this function take in exact sizes in pixels? And any other solutions to that with what it has now? --~--~-~--~~~---~--~~ 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] JSF 1.2 - Session-scoped managed Bean not Behaving as Expected
Hi All, I recently upgraded an app that I'm working on from MyFaces 1.1.6 to JSF (Mojarra) 1.2_13 with Facelets. I used the jars (el and jsf) from this example -- http://code.google.com/p/jsfongap/ Everything is working fine when running my app locally; however, when I deploy, session-scoped managed beans are being recreated on every page turn - almost as if they are request-scoped. To give a simple example, let 's say I have this bean defined in faces- config: managed-bean managed-bean-nameuser/managed-bean-name managed-bean-classfoo.bar.User/managed-bean-class managed-bean-scopesession/managed-bean-scope /managed-bean And the bean is used on page 1 of an application as follows: h:inputText id=firstName value=#{user.firstName} style= / And the value is then output on a second page like: h:outputText value=#{user.firstName}/ Regardless of what I type on the first page, the value is not retained and displayed on the second page. I did a simple test where I logged user.toString(). I expected the output from toString() to be the same for the entire session. My expectation was met on my development server, but when deployed I saw this: First Page submit - 09-04 08:44PM 37.206 foo.bar.actions.impl.UserAction execute: foo.bar.u...@1515d5c Second Page Submit - 09-04 08:44PM 46.579 foo.bar.actions.impl.UserAction execute: foo.bar.u...@60999e Big surprise. Different objects!! In fact, a new instance of User is created for every page turn. Has anyone else noticed this odd behavior? Is it possible that I've missed something? I will probably end up going back to MyFaces 1.1. Thanks in advance for the help. Jamie --~--~-~--~~~---~--~~ 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] URL Rewrite
Hi, I am new to Google App Engine. I need some *URL Rewrite* techniques which are used in apache httpd *mod_rewrite*. What is the options for jetty server? Do you guys recommend some tutorial or documents. Thanks Maksud --~--~-~--~~~---~--~~ 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] Seeing different (incorrect?) JDO behavior after upgrading to 1.2.5
I’ve been working with a fairly simple data model that has an Organization object which contains some String members as well as a member variable of type PrivilegedUser. And PrivilegedUser extends a User, and contains only a Key and some String members. @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable=true) public class Organization implements Serializable { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private String organizationId; @Persistent private String organizationName; @Persistent private PrivilegedUser privilegedUser; …. I have code running successfully under 1.2.2 which creates an Organization, then creates a Privileged User object, and assigns it to the Organization, and then makes the Organization persistent. Later I query by organizationId to retrieve the Organization object, and update the PrivilegedUser on the Organization object. This works fine under 1.2.2. Under 1.2.5 I began getting the following error: You have just attempted to access field privilegedUser yet this field was not detached when you detached the object. Either dont access this field, or detach it when detaching the object. However, after stepping through the debugger I believe the root cause is that the privilegedUser field is null on the Organization object returned from the query (the String members are still correct). This value is null even before I attempt to detach the Organization object from the PersistenceManager. After seeing this behavior I modified the query code I had been using to include a custom fetch plan for the query. This did not change the behavior under 1.2.5. PersistenceManager pm = PMF.get().getPersistenceManager (); FetchGroup fetchGroup = pm.getFetchGroup(Organization.class, OrganizationGroup); fetchGroup.addMember(privilegedUser); // Add this group to the fetch plan (using its name) FetchPlan fetchPlan = pm.getFetchPlan(); fetchPlan.addGroup(OrganizationGroup); Query query = pm.newQuery(Organization.class); query.setFilter(organizationId == rhsValue); query.declareParameters(String rhsValue); I don't think the following is relevant, but I’ve also noticed that under 1.2.5 the following exception occurs, which has been reported by others: INFO: Failed to start reference finalizer thread. Reference cleanup will only occur when new references are created.java.lang.reflect.InvocationTargetException Does this sound like a bug introduced under 1.2.5, or is this expected behavior that was not enforced under 1.2.2? In either case, does anyone have a suggestion on how to work around this issue? Thanks, David --~--~-~--~~~---~--~~ 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: URL Rewrite
Hi, You can use this http://tuckey.org/urlrewrite/ --Pandu On Sat, Sep 5, 2009 at 11:51 AM, maksud maksud.b...@gmail.com wrote: Hi, I am new to Google App Engine. I need some *URL Rewrite* techniques which are used in apache httpd *mod_rewrite*. What is the options for jetty server? Do you guys recommend some tutorial or documents. Thanks Maksud --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---