[appengine-java] Re: Problem deploying app after adding threadsafetrue/threadsafe in appengine-web.xml file.

2011-10-27 Thread Dick Larsson
Hm, appengine-java-sdk-1.3.8? I think ThreadSafe was introduced with
App Engine 1.4.3

Can you test with a newer version of the SDK?

Best regards
/Dick Larsson

On 24 Okt, 08:59, Zde Sam zde...@gmail.com wrote:
 Hi,

 I am getting the following error after adding threadsafetrue/threadsafe
 in appengine-web.xml file during deployment.

 com.google.apphosting.utils.config.AppEngineConfigException: XML error 
 validating 
 E:\Projects\SpringSource\GoogleApps\WebsiteBuilder\war\WEB-INF\appengine-we­b.xml
  against 
 E:\Services\Google\AppEngine\appengine-java-sdk-1.3.8\docs\appengine-web.xs­d
         at 
 com.google.appengine.tools.admin.Application.validateXml(Application.java:3­60)
         at 
 com.google.appengine.tools.admin.Application.init(Application.java:101)
         at 
 com.google.appengine.tools.admin.Application.readApplication(Application.ja­va:151)
         at com.google.appengine.tools.admin.AppCfg.init(AppCfg.java:115)
         at com.google.appengine.tools.admin.AppCfg.init(AppCfg.java:61)
         at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:57)
 Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid 
 content was found starting with element 'threadsafe'. One of 
 '{http://appengine.google.com/ns/1.0:static-files, 
 http://appengine.google.com/ns/1.0:resource-files, 
 http://appengine.google.com/ns/1.0:env-variables, 
 http://appengine.google.com/ns/1.0:ssl-enabled, 
 http://appengine.google.com/ns/1.0:user-permissions, 
 http://appengine.google.com/ns/1.0:public-root, 
 http://appengine.google.com/ns/1.0:inbound-services, 
 http://appengine.google.com/ns/1.0:precompilation-enabled, 
 http://appengine.google.com/ns/1.0:admin-console, 
 http://appengine.google.com/ns/1.0:static-error-handlers}' is expected.
         at 
 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseE­xception(Unknown
  Source)
         at 
 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown 
 Source)
         at 
 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknow­n 
 Source)
         at 
 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknow­n 
 Source)
         at 
 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorRepor­ter.reportError(Unknown
  Source)
         at 
 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaE­rror(Unknown
  Source)
         at 
 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartEl­ement(Unknown
  Source)
         at 
 com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(­Unknown
  Source)
         at 
 com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartE­lement(Unknown
  Source)
         at 
 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$Frag­mentContentDriver.next(Unknown
  Source)
         at 
 com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown 
 Source)
         at 
 com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unkno­wn
  Source)
         at 
 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scan­Document(Unknown
  Source)
         at 
 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
 Source)
         at 
 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
 Source)
         at 
 com.sun.org.apache.xerces.internal.jaxp.validation.StreamValidatorHelper.va­lidate(Unknown
  Source)
         at 
 com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(U­nknown
  Source)
         at javax.xml.validation.Validator.validate(Unknown Source)
         at 
 com.google.appengine.tools.admin.Application.validateXml(Application.java:3­57)
         ... 5 more

 Deployment goes fine successfully when threadsafetrue/threadsafe is
 removed or commented from the appengine-web.xml file.
 Below is the content of my appengine-web.xml file.
 ?xml version=1.0 encoding=utf-8?
 appengine-web-app xmlns=http://appengine.google.com/ns/1.0;
 applicationebildr/application
 versionv2/version
 !--threadsafetrue/threadsafe--
 !-- Configure java.util.logging --
 system-properties
 property name=java.util.logging.config.file
 value=WEB-INF/logging.properties/
 /system-properties
 sessions-enabledtrue/sessions-enabled
 precompilation-enabledtrue/precompilation-enabled
 /appengine-web-app

 Am I missing anything, any help will be greatly appreciated.
 Thanks

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



Re: [appengine-java] Optimizations with Datastore + JDO

2011-10-27 Thread Matthew Jaggard
I'm afraid I can't answer your questions directly, but I would
sincerely suggest you look at Objectify. It offers a tidy way to
migrate to using the low level datastore - and is much easier to code.
JDO feels like a square SQL peg for the round hole of NoSQL.

On 25 October 2011 03:18, Sheado chad...@gmail.com wrote:
 Hi All,
 My app uses JDO with the DataStore. When writing an Entity with ~100
 children a request could take somewhere between 3-10 seconds realtime and
 ~80331cpu_ms ~78231api_cpu_ms.
 Can these numbers be improved for writes of this size? Is there a good
 chance my requests will deadline?
 After reading the docs and watching the IO sessions, I got the following
 ideas for improving performance:
 * Using the low level api with setMulti() should clump all the writes into a
 single RPC. I'm guessing PersistenceManager isn't doing that for us with
 ArrayList child objects?
 * Try using the Async API
 * I couldn't find any obvious way of improving JDO write speeds
 I'd really appreciate some direction so I don't waste my time trying a
 thousand solutions. Any advice would be awesome!
 Thanks,
 Chad
 P.S. My data structure is as follows (abbreviated code):
 Parent{
 String key; // String key
 ArrayListGameData gameData;
 ArrayListUserData userData;
 }
 GameData{
 private Key key; private int itemType;
 private int item;
 private float ...;
 private float ...;
 private int ...
 private int ...;
 private int ...;
 private long ...;
 private int ...;
 }
 UserData{
 @PrimaryKey
 @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
 private Key key;
 private int ...;
 private String ...;
 private long ...; private boolean ...;
 }

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-appengine-java/-/dXJiA5r7OfYJ.
 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.


-- 
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: Object does not persist [JDO, HR]

2011-10-27 Thread datanucleus
Since that version of GAE uses an ancient version of DataNucleus, you
could simply put your update code within a transaction.

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



Re: [appengine-java] Is threadsafe setting ignored for java applications?

2011-10-27 Thread Matthew Jaggard
Were all the requests sent at the same time (can you check using
wireshark or similar) or did your browser queue them - most browsers
have a connections per server limit as well as a total connection
limit and some will do their best to re-use a single connection where
possible.

On 26 October 2011 21:46, cryb cbuti...@gmail.com wrote:
 Hello.
 In order to test if threadsafe setting is working as expected, I wrote a
 small application that increments a static counter variable, sleeps for a
 couple of seconds and returns the counter's value in a web page. After that
 I've issued 15 requests in parallel from my browser (using different tabs).
 During the test, the same server instance served all my requests (as shown
 in admin console / instances)... this was also in agreement with the
 returned web pages where the counter increased from 1 to 15 (i.e. all
 requests were processed by the same server instance sharing the same static
 counter variable).
 So far, so good... the only problem was that all requests were serialized,
 as if no threadsafe setting was in place (I mention here that I've
 included  threadsafetrue/threadsafe in appengine-web.xml file)... The
 sleep time I used was 3 seconds and I had to wait about 15*3 = 45 seconds
 for the last tab to complete and to display the generated web page.
 So my question is: why does threadsafe setting seems to be ignored for
 java applications? Is there a bug in appengine system?
 Thank you.

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-appengine-java/-/1wPUkvSu3o8J.
 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.


-- 
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: No bytes available in doPost

2011-10-27 Thread Dick Larsson
In method uploadAvatarImage you call for the inputStream before you
have sent your bytes to the server.
Please try this instead
os.flush();
os.close();
InputStream is = servletConnection.getInputStream();

Next thing, in your servlet.
You should use InputStream instead of Reader since you are dealing
with bytes

InputStream reader = request.getInputStream();
byte[] imageBytes =
org.apache.commons.io.IOUtils.toByteArray(reader);

Hope it helps
Best regards
/Dick Larsson

On 24 Okt, 16:17, Rune Nielsen runeniel...@gmail.com wrote:
 Hi,

 I'm trying to upload an image to store in the Blobstore, but I'm having
 trouble streaming it to my servlet as a byte array.

 Here's the code for the client method streaming the byte array to the
 servlet - it's using the Commons IO:

 public void uploadAvatarImage(byte[] imageBytes) {
         try {
             URL myURL = new
 URL(http://myapp.appspot.com/SetAvatar?globalId=1;);
             URLConnection servletConnection = myURL.openConnection();

             servletConnection.setRequestProperty(Content-Type,
 application/octet-stream);

             servletConnection.setDoOutput(true);
             servletConnection.setDoInput(true);

             OutputStream os = servletConnection.getOutputStream();
             InputStream is = servletConnection.getInputStream();

             IOUtils.write(imageBytes, os);

             os.flush();
             os.close();

             BufferedReader in = new BufferedReader(new
 InputStreamReader(is));
             String inputLine;

             while ((inputLine = in.readLine()) != null) {
                 System.out.println(inputLine);
             }

             in.close();
         }
         catch (Exception e) {
             System.out.println(e);
         }
     }

 Here's the code for the doPost method of my servlet:

     @Override
     public void doPost(HttpServletRequest request, HttpServletResponse
 response) throws IOException, ServletException {
         BufferedReader reader = request.getReader();
         byte[] imageBytes = IOUtils.toByteArray(reader);

         PrintWriter outputWriter = response.getWriter();

         int len = ;
         outputWriter.println(Content type is:  + request.getContentType()
 +  - length is:  + request.getContentLength());
         outputWriter.println(Bytes:  + imageBytes.length);

         outputWriter.close();
     }

 The output from the servlet is:

 Content type is: application/octet-stream - length is 0
 Bytes: 0

 Everything looks good on the client side and the size of the byte array on
 the client size is about 300kb. But for some reason there's no available
 bytes on the server side. Any ideas why? I've tried just about everything,
 but to no avail.

 Thanks in advance for any hints!

 Sincerely,
 Rune Nielsen

-- 
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 app completely down for over an hour due to com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Error setting single item

2011-10-27 Thread Jerome
Hello Simon,

This is the callstack on exception we were getting in the JSPs, which
are not using anything memcache related:

org.apache.jasper.runtime.JspFactoryImpl internalGetPageContext:
Exception initializing page context
com.google.appengine.api.memcache.MemcacheServiceException: Memcache
put: Error setting single item (_ahsSqsA9jzIMmQjzHzlJI1ozQ)
at com.google.appengine.api.memcache.AsyncMemcacheServiceImpl
$5.transform(AsyncMemcacheServiceImpl.java:380)
at com.google.appengine.api.memcache.AsyncMemcacheServiceImpl
$5.transform(AsyncMemcacheServiceImpl.java:372)
at com.google.appengine.api.memcache.MemcacheServiceApiHelper
$RpcResponseHandler.convertResponse(MemcacheServiceApiHelper.java:59)
at com.google.appengine.api.memcache.MemcacheServiceApiHelper
$1.wrap(MemcacheServiceApiHelper.java:98)
at com.google.appengine.api.memcache.MemcacheServiceApiHelper
$1.wrap(MemcacheServiceApiHelper.java:92)
at
com.google.appengine.api.utils.FutureWrapper.wrapAndCache(FutureWrapper.java:
58)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
78)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
74)
at
com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:
27)
at
com.google.appengine.api.memcache.MemcacheServiceImpl.put(MemcacheServiceImpl.java:
74)
at
com.google.apphosting.runtime.jetty.MemcacheSessionStore.saveSession(MemcacheSessionStore.java:
39)
at
com.google.apphosting.runtime.jetty.SessionManager.createSession(SessionManager.java:
342)
at com.google.apphosting.runtime.jetty.SessionManager
$AppEngineSession.init(SessionManager.java:125)
at
com.google.apphosting.runtime.jetty.SessionManager.newSession(SessionManager.java:
273)
at
com.google.apphosting.runtime.jetty.SessionManager.newSession(SessionManager.java:
43)
at
org.mortbay.jetty.servlet.AbstractSessionManager.newHttpSession(AbstractSessionManager.java:
413)
at org.mortbay.jetty.Request.getSession(Request.java:1242)
at org.mortbay.jetty.Request.getSession(Request.java:1214)
at
org.apache.jasper.runtime.PageContextImpl._initialize(PageContextImpl.java:
146)
at
org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:
124)
at
org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:
107)
at org.apache.jasper.runtime.JspFactoryImpl.access
$000(JspFactoryImpl.java:40)
at org.apache.jasper.runtime.JspFactoryImpl
$PrivilegedGetPageContext.run(JspFactoryImpl.java:149)
at
com.google.apphosting.runtime.security.shared.intercept.java.security.AccessController_.doPrivileged(AccessController_.java:
34)
at
org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:
61)
at org.apache.jsp.plans_jsp._jspService(plans_jsp.java:54)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
511)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1166)
at
com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:
97)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:
35)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
43)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
388)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
418)
at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:
249)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
542)
at org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:923)
at
com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:
76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:
135)
at com.google.apphosting.runtime.JavaRuntime
$RequestRunnable.run(JavaRuntime.java:393)
at com.google.tracing.TraceContext
$TraceContextRunnable.runInContext(TraceContext.java:449)
at com.google.tracing.TraceContext$TraceContextRunnable
$1.run(TraceContext.java:455)
at 

[appengine-java] Re: GAE app completely down for over an hour due to com.google.appengine.api.memcache.MemcacheServiceException: Memcache put: Error setting single item

2011-10-27 Thread Simon Knott
Thanks for the update Jerome.  I had wondered whether the error had 
occurred in Session management, since you weren't calling it explicitly.

This definitely needs to fail invisibly - a failure in Memcache, when the 
datastore is still available, shouldn't cause session management to fail!

Cheers,
Simon

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



Re: [appengine-java] Is threadsafe setting ignored for java applications?

2011-10-27 Thread cryb
Thank you for your response... indeed, it was the browser that serialized 
all the requests (I used both Firefox 3.x and 7.x)... I've checked the app 
using wget and everything worked as expected. I didn't bother to check the 
browser because I configured Firefox to use separate brand new connections 
for each request (network.http.keep-alive = false, 
network.http.max-connections=256, 
network.http.max-connections-per-server=15) and I'm not behind a proxy... 
Anyway, it seems that for the same resource, Firefox still serializes 
requests and ignores all the above settings.
Now, after seeing what the problem was, I've gone even further and 
configured Firefox to use http pipelining and persistent connections 
(network.http.keep-alive = true, network.http.max-connections=256, 
network.http.max-connections-per-server=15, network.http.pipelining=true) 
with no more luck: the requests for the same resource are still being 
serialized.
Any ideas how to convince Firefox to open concurrent connections to the 
same web resource?

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



Re: [appengine-java] Is threadsafe setting ignored for java applications?

2011-10-27 Thread Matthew Jaggard
Have you tried adding a different query parameter to each request?

On 27 October 2011 13:53, cryb cbuti...@gmail.com wrote:
 Thank you for your response... indeed, it was the browser that serialized
 all the requests (I used both Firefox 3.x and 7.x)... I've checked the app
 using wget and everything worked as expected. I didn't bother to check the
 browser because I configured Firefox to use separate brand new connections
 for each request (network.http.keep-alive = false,
 network.http.max-connections=256,
 network.http.max-connections-per-server=15) and I'm not behind a proxy...
 Anyway, it seems that for the same resource, Firefox still serializes
 requests and ignores all the above settings.
 Now, after seeing what the problem was, I've gone even further and
 configured Firefox to use http pipelining and persistent connections
 (network.http.keep-alive = true, network.http.max-connections=256,
 network.http.max-connections-per-server=15, network.http.pipelining=true)
 with no more luck: the requests for the same resource are still being
 serialized.
 Any ideas how to convince Firefox to open concurrent connections to the same
 web resource?

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-appengine-java/-/M69MJh1QZm4J.
 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.


-- 
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] In an application using the High Replication Datastore, the blobstore is eventually consistent too?

2011-10-27 Thread nicanor.babula
Hi everyone,

   In an application using the High Replication Datastore, the blobstore is 
eventually consistent too or it is strongly consistent? 

or simply:

it is possible that in the servlet called after uploading a blob this line: 
Image im = ImagesServiceFactory.makeImageFromBlob(blobKey);
could try to create an Image from a blob not yet available (like when you 
try to get an entity you just put into the datastore)?

Thanks.

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



Re: [appengine-java] Is threadsafe setting ignored for java applications?

2011-10-27 Thread cryb
I've tested it and I can confirm that a dummy query parameter solves the 
problem... this is mainly because Firefox perceives the newly formed urls 
as separate resources... however, for the same resource I still could not 
find a way to get Firefox to open concurrent connections. Meanwhile, I will 
use this hack to test the app.
Thanks.

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



Re: [appengine-java] Does JDO auto remove indexes that now have unindexed properties?

2011-10-27 Thread markabrucey
Thanks for the reply Ikai, that was the information I needed.

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine-java/-/85UIicBcxZQJ.
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] Merging older queries with ancestor queries.

2011-10-27 Thread markabrucey
Hi,

I have been doing a lot of reading on Ancestor queries because we are 
currently trying to transfer from Master / Slave to the High Replication 
datastore.

We have noticed while testing on the HRDS, that sometimes when adding an 
entity and redirecting the view to show that entity (or maybe a list 
containing others as well), it can take a while for it to update because it 
is eventually consistent. (which is sometimes inconvenient)

I understand that you can not put an entity into an entity group once 
already created, the process of creating that entity so it is in a group 
has to be done the first time round.

I was just wondering that if we kept our older entities and started doing 
ancestor queries to insert new ones, can we merge the results to produce 
and output? I think if we can, it will have to be done in 2 queries, and if 
it can, will we no longer see a delay in data being updated?

Thanks,
Mark

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



Re: [appengine-java] Does JDO auto remove indexes that now have unindexed properties?

2011-10-27 Thread Jeff Schnitzer
Wild guess:

If you load an entity in JDO and set a property to be exactly what it was
before, this won't actually flag the entity as dirty.  It won't be written
when you commit the session.  I don't know how you would force a write
using JDO.

Jeff

On Thu, Oct 13, 2011 at 6:23 AM, markabrucey markabru...@gmail.com wrote:

 Basically I have gone through my datastore persist-able classes and have
 annotated properties that I never need to query on like this:

 @Extension(vendorName=datanucleus, key=gae.unindexed, value=true)
 private Long random;

 I needed to test whether or not JDO removed the index when I changed the
 POJO by annotating a property as unindexed.

 So I created a simple test to read in an existing entity, updated it (with
 properties holding the exact same values as before), then finally queried on
 it using the now unindexed property random. I woud have expected for it to
 not appear again once updated (because the property is now unindexed), which
 would have suggested that JDO was handling the index deletion correctly, but
 it appears not.

 Are there any settings that I may need to change in order to allow JDO to
 delete the now un-needed single property indexes? Is there a way I can
 remove / vacuum these single property indexes (that I don't need anymore)
 myself?

 Thanks,

 Mark

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To view this discussion on the web visit
 https://groups.google.com/d/msg/google-appengine-java/-/whSOGsiNGrUJ.
 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.


-- 
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: Strange behavior with OpenID

2011-10-27 Thread Jose Montes de Oca
Hi Miguel,

This is an expected behavior. The other way around is also true: if your 
user logout of you application, they will still be login onto their OpenID 
provider.

The OpenID Provider (Identity provider) and your application (relying 
party) do not know each others, The OpenID provider just tells your 
application that the user that is accessing your application is really who 
he says it is (Authentication), After that App Engine will manage this user 
session, differently from the user session from the Identity provider. That 
been said, the user is login to your application and App Engine retains his 
identity and any other action on his OpenID provider will not affect the 
user session from your app.

The key point to understand here is that OpenId is just a mechanism to 
identify that the person trying to login is actually what he says he is. 
Other than that, App Engine provides a Transparent API which let you hold 
on to this verification fror the life of the user session on your 
application.

Hope this helps!

Jose Montes de Oca

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine for Java group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine-java/-/z9zMeP_sPz0J.
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] Change from String to Integer , now can't rid of Zombie instances... what is the right procedure to do so?

2011-10-27 Thread Daniel
HI

I'm getting

Nested in javax.servlet.ServletException:
java.lang.ClassCastException: cannot assign instance of
java.lang.String to field dr.todo.beans.ToBuyBean.quantityToAdd of
type java.lang.Integer in instance of dr.todo.beans.ToBuyBean:

cause I had a String and now i changed it to Integer and updated my
application, and i deleted all _ah_SESSION entrys, but it still does
not work...


how can i properly get rid of all the Zombie data upon updating my
application from eclipse?

I don't want to wait for couple of hours , I want to get rid of all
the Zombies right after the upgrade...

What is the best practice for it?

Thanks ahead,



Daniel.

-- 
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: Programmatic creation of an application/app-id... is it possible?

2011-10-27 Thread Tom Fennelly

Guys anyone any ideas on this please?

On 24/10/2011 13:47, Tom Fennelly wrote:

Hi all.

I searched the archives but was unable to find an answer to my 
question.  Basically wondering if it's possible to programatically 
create an application instance.  Obviously I can update an instance 
using the AppCfg class, but I can't see an API for creating an instance.


Sorry if there's an obvious answer... I'm a noob.

Regards,

Tom.


--
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: Strange behavior with OpenID

2011-10-27 Thread Miguel
Yes, thank you very much Jose: you are very useful! You perfectly got
the point I didn't understand correctly .. ;)

But now I have to think about the solution .. I would propose this
one:
I have always to rely on the session (and not on the UserService); if
there is no session active I propose to the user the OpenID login.
When I get the User class out of that
(userService.getCurrentUser()), I save the getUserId() in the
session and in the future I can get who is logged in by looking for
the userId in the session.

Is this a good practice to deal with authentication?

Thank you very much again,
Michele


On Oct 27, 12:14 pm, Jose Montes de Oca jfmontesde...@google.com
wrote:
 Hi Miguel,

 This is an expected behavior. The other way around is also true: if your
 user logout of you application, they will still be login onto their OpenID
 provider.

 The OpenID Provider (Identity provider) and your application (relying
 party) do not know each others, The OpenID provider just tells your
 application that the user that is accessing your application is really who
 he says it is (Authentication), After that App Engine will manage this user
 session, differently from the user session from the Identity provider. That
 been said, the user is login to your application and App Engine retains his
 identity and any other action on his OpenID provider will not affect the
 user session from your app.

 The key point to understand here is that OpenId is just a mechanism to
 identify that the person trying to login is actually what he says he is.
 Other than that, App Engine provides a Transparent API which let you hold
 on to this verification fror the life of the user session on your
 application.

 Hope this helps!

 Jose Montes de Oca

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



Re: [appengine-java] Re: Programmatic creation of an application/app-id... is it possible?

2011-10-27 Thread Gal Dolber
Yes, you can, using WebDriver.
I don't remember if theres any captcha... that would be a problem.
Just emulate what you would do manually.

Regards

On Thu, Oct 27, 2011 at 6:18 PM, Tom Fennelly tom.fenne...@gmail.comwrote:

 Guys anyone any ideas on this please?


 On 24/10/2011 13:47, Tom Fennelly wrote:

 Hi all.

 I searched the archives but was unable to find an answer to my question.
  Basically wondering if it's possible to programatically create an
 application instance.  Obviously I can update an instance using the AppCfg
 class, but I can't see an API for creating an instance.

 Sorry if there's an obvious answer... I'm a noob.

 Regards,

 Tom.


 --
 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 google-appengine-java@googlegroups.com.
 To unsubscribe from this group, send email to google-appengine-java+**
 unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at http://groups.google.com/**
 group/google-appengine-java?**hl=enhttp://groups.google.com/group/google-appengine-java?hl=en
 .




-- 
Guit: Elegant, beautiful, modular and *production ready* gwt applications.

http://code.google.com/p/guit/

-- 
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.