[appengine-java] Re: UserService functionality when run via cron

2010-12-16 Thread andrew
You can find the bug reported in googleappengine Google Code Project
with Issue number 4230:

http://code.google.com/p/googleappengine/issues/detail?id=4230q=isUserAdmincolspec=ID%20Type%20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log

Votes in favor of fixing it are encourages (by me) :-)

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



[appengine-java] gae不支持事务?

2010-12-16 Thread EtuO
Caused by: java.lang.IllegalArgumentException: can't operate on
multiple entity groups in a single transaction. found both Element {
  type: CityNum
  name: 013001
}
 and Element {
  type: ScheduleProcess
  name: 013001
}

at
com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
36)
at com.google.appengine.api.datastore.DatastoreApiHelper
$1.convertException(DatastoreApiHelper.java:98)
at
com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
69)
at com.google.appengine.api.datastore.FutureHelper
$CumulativeAggregateFuture.get(FutureHelper.java:136)
at com.google.appengine.api.datastore.FutureHelper
$TxnAwareFuture.get(FutureHelper.java:213)
at
com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
67)
at
com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:
71)
at
com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:
58)
at
com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:
55)
at
org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java:
64)
... 86 more

实现类代码:
/**
 * @see
org.ertuo.taoplugin.facade.TransactionOperation#nestTrans(java.lang.Object[])
 */
public void nestTrans(Object... objects) {
String id = (String) objects[0];
CityNum cn = cityNumDao.get(id);
ScheduleProcess sp = scheduleDao.get(id);
cityNumDao.delete(cn);
scheduleDao.delete(sp);
logger.info(id[ + id + ]对应的城市和任务删除完毕);
}

接口代码:
/**
 * 事务性操作接口
 * @author mo.duanm
 * @version $Id: TransactionOperation.java, v 0.1 2010-12-16 下午
05:22:23 mo.duanm Exp $
 */
public interface TransactionOperation {

/**
 * 嵌套事务
 * @param objects
 */
@Transactional
public void nestTrans(Object... objects);

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



Re: [appengine-java] gae不支持事务?

2010-12-16 Thread Liang Ding
支持事务,但是不能在同一个事务中操作属于不同实体组的实体。

2010/12/16 EtuO nbaer...@gmail.com

 Caused by: java.lang.IllegalArgumentException:* can't operate on
 multiple entity groups in a single transaction*. found both Element {
  type: CityNum
  name: 013001
 }
  and Element {
  type: ScheduleProcess
  name: 013001
 }

at

 com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
 36)
at com.google.appengine.api.datastore.DatastoreApiHelper
 $1.convertException(DatastoreApiHelper.java:98)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 69)
at com.google.appengine.api.datastore.FutureHelper
 $CumulativeAggregateFuture.get(FutureHelper.java:136)
at com.google.appengine.api.datastore.FutureHelper
 $TxnAwareFuture.get(FutureHelper.java:213)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 67)
at

 com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:
 71)
at
 com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:
 58)
at

 com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:
 55)
at

 org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java:
 64)
... 86 more

 实现类代码:
 /**
 * @see

 org.ertuo.taoplugin.facade.TransactionOperation#nestTrans(java.lang.Object[])
 */
public void nestTrans(Object... objects) {
String id = (String) objects[0];
CityNum cn = cityNumDao.get(id);
ScheduleProcess sp = scheduleDao.get(id);
cityNumDao.delete(cn);
scheduleDao.delete(sp);
logger.info(id[ + id + ]对应的城市和任务删除完毕);
}

 接口代码:
 /**
  * 事务性操作接口
  * @author mo.duanm
  * @version $Id: TransactionOperation.java, v 0.1 2010-12-16 下午
 05:22:23 mo.duanm Exp $
  */
 public interface TransactionOperation {

/**
 * 嵌套事务
 * @param objects
 */
@Transactional
public void nestTrans(Object... objects);

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




-- 
My Blog: http://blog.csdn.net/DL88250

Open Source, Open Mind, Open Sight, Open Future!

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



Re: [appengine-java] gae不支持事务?

2010-12-16 Thread kartik kudada
You can not operate on two entities in single transaction unless both are
entity groups.
First delete CityNum  in one transaction and then delete ScheduleProcess  in
different transaction,








2010/12/16 EtuO nbaer...@gmail.com

 Caused by: java.lang.IllegalArgumentException: can't operate on
 multiple entity groups in a single transaction. found both Element {
  type: CityNum
  name: 013001
 }
  and Element {
  type: ScheduleProcess
  name: 013001
 }

at

 com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
 36)
at com.google.appengine.api.datastore.DatastoreApiHelper
 $1.convertException(DatastoreApiHelper.java:98)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 69)
at com.google.appengine.api.datastore.FutureHelper
 $CumulativeAggregateFuture.get(FutureHelper.java:136)
at com.google.appengine.api.datastore.FutureHelper
 $TxnAwareFuture.get(FutureHelper.java:213)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 67)
at

 com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:
 71)
at
 com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:
 58)
at

 com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:
 55)
at

 org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java:
 64)
... 86 more

 实现类代码:
 /**
 * @see

 org.ertuo.taoplugin.facade.TransactionOperation#nestTrans(java.lang.Object[])
 */
public void nestTrans(Object... objects) {
String id = (String) objects[0];
CityNum cn = cityNumDao.get(id);
ScheduleProcess sp = scheduleDao.get(id);
cityNumDao.delete(cn);
scheduleDao.delete(sp);
logger.info(id[ + id + ]对应的城市和任务删除完毕);
}

 接口代码:
 /**
  * 事务性操作接口
  * @author mo.duanm
  * @version $Id: TransactionOperation.java, v 0.1 2010-12-16 下午
 05:22:23 mo.duanm Exp $
  */
 public interface TransactionOperation {

/**
 * 嵌套事务
 * @param objects
 */
@Transactional
public void nestTrans(Object... objects);

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] gae不支持事务?

2010-12-16 Thread Liang Ding
Hi, kartik.
It works, but how can I rollback the 'first transaction' if the following
operations throws an exception?

2010/12/16 kartik kudada kartik.kud...@gmail.com

 You can not operate on two entities in single transaction unless both are
 entity groups.
 First delete CityNum  in one transaction and then delete ScheduleProcess
  in different transaction,








 2010/12/16 EtuO nbaer...@gmail.com

 Caused by: java.lang.IllegalArgumentException: can't operate on

 multiple entity groups in a single transaction. found both Element {
  type: CityNum
  name: 013001
 }
  and Element {
  type: ScheduleProcess
  name: 013001
 }

at

 com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
 36)
at com.google.appengine.api.datastore.DatastoreApiHelper
 $1.convertException(DatastoreApiHelper.java:98)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 69)
at com.google.appengine.api.datastore.FutureHelper
 $CumulativeAggregateFuture.get(FutureHelper.java:136)
at com.google.appengine.api.datastore.FutureHelper
 $TxnAwareFuture.get(FutureHelper.java:213)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 67)
at

 com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:
 71)
at

 com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:
 58)
at

 com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:
 55)
at

 org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java:
 64)
... 86 more

 实现类代码:
 /**
 * @see

 org.ertuo.taoplugin.facade.TransactionOperation#nestTrans(java.lang.Object[])
 */
public void nestTrans(Object... objects) {
String id = (String) objects[0];
CityNum cn = cityNumDao.get(id);
ScheduleProcess sp = scheduleDao.get(id);
cityNumDao.delete(cn);
scheduleDao.delete(sp);
logger.info(id[ + id + ]对应的城市和任务删除完毕);
}

 接口代码:
 /**
  * 事务性操作接口
  * @author mo.duanm
  * @version $Id: TransactionOperation.java, v 0.1 2010-12-16 下午
 05:22:23 mo.duanm Exp $
  */
 public interface TransactionOperation {

/**
 * 嵌套事务
 * @param objects
 */
@Transactional
public void nestTrans(Object... objects);

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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=en.




-- 
My Blog: http://blog.csdn.net/DL88250

Open Source, Open Mind, Open Sight, Open Future!

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



Re: [appengine-java] Re: GWT Designer for NetBeans

2010-12-16 Thread Cesar Ruiz
True. Moved already.

Cheers.

Kido.

On 16 December 2010 04:03, Didier Durand durand.did...@gmail.com wrote:

 Hi,

 A more appropriate place to post this question is
 http://groups.google.com/group/google-web-toolkit
 regards
 didier

 On Dec 15, 8:03 pm, kidowell crui...@gmail.com wrote:
  Hey, is there any gwt designer for NetBeans out there?.
 
  It would be nice to place all the design and receive automatically the
 code
  for it.
 
  I have read theres a plugin for Eclipse but I can't find anything for
  NetBeans.
 
  Any sugestion?.
 
  Cheers.
 
  Kido.

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




-- 
Cesar Ruiz.

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



Re: [appengine-java] gae不支持事务?

2010-12-16 Thread kartik kudada
If following operation throws an exception,we can not rollback the first
transaction, because it is already committed. What I can think of right now
is, you can manually delete it. but it is not the genuine solution.

Why don't you create owned relation between these two table?
Tell me about your thoughts?

Regards,
Kartik

2010/12/16 Liang Ding dl88...@gmail.com

 Hi, kartik.
 It works, but how can I rollback the 'first transaction' if the following
 operations throws an exception?

 2010/12/16 kartik kudada kartik.kud...@gmail.com

 You can not operate on two entities in single transaction unless both are
 entity groups.
 First delete CityNum  in one transaction and then delete ScheduleProcess
  in different transaction,








 2010/12/16 EtuO nbaer...@gmail.com

 Caused by: java.lang.IllegalArgumentException: can't operate on

 multiple entity groups in a single transaction. found both Element {
  type: CityNum
  name: 013001
 }
  and Element {
  type: ScheduleProcess
  name: 013001
 }

at

 com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
 36)
at com.google.appengine.api.datastore.DatastoreApiHelper
 $1.convertException(DatastoreApiHelper.java:98)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 69)
at com.google.appengine.api.datastore.FutureHelper
 $CumulativeAggregateFuture.get(FutureHelper.java:136)
at com.google.appengine.api.datastore.FutureHelper
 $TxnAwareFuture.get(FutureHelper.java:213)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 67)
at

 com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:
 71)
at

 com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:
 58)
at

 com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:
 55)
at

 org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java:
 64)
... 86 more

 实现类代码:
 /**
 * @see

 org.ertuo.taoplugin.facade.TransactionOperation#nestTrans(java.lang.Object[])
 */
public void nestTrans(Object... objects) {
String id = (String) objects[0];
CityNum cn = cityNumDao.get(id);
ScheduleProcess sp = scheduleDao.get(id);
cityNumDao.delete(cn);
scheduleDao.delete(sp);
logger.info(id[ + id + ]对应的城市和任务删除完毕);
}

 接口代码:
 /**
  * 事务性操作接口
  * @author mo.duanm
  * @version $Id: TransactionOperation.java, v 0.1 2010-12-16 下午
 05:22:23 mo.duanm Exp $
  */
 public interface TransactionOperation {

/**
 * 嵌套事务
 * @param objects
 */
@Transactional
public void nestTrans(Object... objects);

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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=en.




 --
 My Blog: http://blog.csdn.net/DL88250
 
 Open Source, Open Mind, Open Sight, Open Future!

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



Re: [appengine-java] gae不支持事务?

2010-12-16 Thread EtuO
谢谢大家,只能开启两个事务来解决啦。

在 2010年12月16日 下午6:11,kartik kudada kartik.kud...@gmail.com写道:

 If following operation throws an exception,we can not rollback the first
 transaction, because it is already committed. What I can think of right now
 is, you can manually delete it. but it is not the genuine solution.

 Why don't you create owned relation between these two table?
 Tell me about your thoughts?

 Regards,
 Kartik

 2010/12/16 Liang Ding dl88...@gmail.com

 Hi, kartik.
 It works, but how can I rollback the 'first transaction' if the following
 operations throws an exception?

 2010/12/16 kartik kudada kartik.kud...@gmail.com

 You can not operate on two entities in single transaction unless both are
 entity groups.
 First delete CityNum  in one transaction and then delete ScheduleProcess
  in different transaction,








 2010/12/16 EtuO nbaer...@gmail.com

 Caused by: java.lang.IllegalArgumentException: can't operate on

 multiple entity groups in a single transaction. found both Element {
  type: CityNum
  name: 013001
 }
  and Element {
  type: ScheduleProcess
  name: 013001
 }

at

 com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
 36)
at com.google.appengine.api.datastore.DatastoreApiHelper
 $1.convertException(DatastoreApiHelper.java:98)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 69)
at com.google.appengine.api.datastore.FutureHelper
 $CumulativeAggregateFuture.get(FutureHelper.java:136)
at com.google.appengine.api.datastore.FutureHelper
 $TxnAwareFuture.get(FutureHelper.java:213)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 67)
at

 com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:
 71)
at

 com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:
 58)
at

 com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:
 55)
at

 org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java:
 64)
... 86 more

 实现类代码:
 /**
 * @see

 org.ertuo.taoplugin.facade.TransactionOperation#nestTrans(java.lang.Object[])
 */
public void nestTrans(Object... objects) {
String id = (String) objects[0];
CityNum cn = cityNumDao.get(id);
ScheduleProcess sp = scheduleDao.get(id);
cityNumDao.delete(cn);
scheduleDao.delete(sp);
logger.info(id[ + id + ]对应的城市和任务删除完毕);
}

 接口代码:
 /**
  * 事务性操作接口
  * @author mo.duanm
  * @version $Id: TransactionOperation.java, v 0.1 2010-12-16 下午
 05:22:23 mo.duanm Exp $
  */
 public interface TransactionOperation {

/**
 * 嵌套事务
 * @param objects
 */
@Transactional
public void nestTrans(Object... objects);

 --
 You received this message because you are subscribed to the Google
 Groups Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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=en.




 --
 My Blog: http://blog.csdn.net/DL88250
 
 Open Source, Open Mind, Open Sight, Open Future!

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@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=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-j...@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=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 

Re: [appengine-java] gae不支持事务?

2010-12-16 Thread 风笑雪
不能rollback,但可以roll forward。
这篇可能对你有帮助:
http://www.keakon.net/article/1843

--
keakon

My blog(Chinese): www.keakon.net
Blog source code: https://bitbucket.org/keakon/doodle/



2010/12/16 EtuO nbaer...@gmail.com

 谢谢大家,只能开启两个事务来解决啦。

 在 2010年12月16日 下午6:11,kartik kudada kartik.kud...@gmail.com写道:

 If following operation throws an exception,we can not rollback the first
 transaction, because it is already committed. What I can think of right now
 is, you can manually delete it. but it is not the genuine solution.

 Why don't you create owned relation between these two table?
 Tell me about your thoughts?

 Regards,
 Kartik

 2010/12/16 Liang Ding dl88...@gmail.com

 Hi, kartik.
 It works, but how can I rollback the 'first transaction' if the following
 operations throws an exception?

 2010/12/16 kartik kudada kartik.kud...@gmail.com

 You can not operate on two entities in single transaction unless both
 are entity groups.
 First delete CityNum  in one transaction and then delete ScheduleProcess
  in different transaction,








 2010/12/16 EtuO nbaer...@gmail.com

 Caused by: java.lang.IllegalArgumentException: can't operate on

 multiple entity groups in a single transaction. found both Element {
  type: CityNum
  name: 013001
 }
  and Element {
  type: ScheduleProcess
  name: 013001
 }

at

 com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
 36)
at com.google.appengine.api.datastore.DatastoreApiHelper
 $1.convertException(DatastoreApiHelper.java:98)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 69)
at com.google.appengine.api.datastore.FutureHelper
 $CumulativeAggregateFuture.get(FutureHelper.java:136)
at com.google.appengine.api.datastore.FutureHelper
 $TxnAwareFuture.get(FutureHelper.java:213)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 67)
at

 com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:
 71)
at

 com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:
 58)
at

 com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:
 55)
at

 org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java:
 64)
... 86 more

 实现类代码:
 /**
 * @see

 org.ertuo.taoplugin.facade.TransactionOperation#nestTrans(java.lang.Object[])
 */
public void nestTrans(Object... objects) {
String id = (String) objects[0];
CityNum cn = cityNumDao.get(id);
ScheduleProcess sp = scheduleDao.get(id);
cityNumDao.delete(cn);
scheduleDao.delete(sp);
logger.info(id[ + id + ]对应的城市和任务删除完毕);
}

 接口代码:
 /**
  * 事务性操作接口
  * @author mo.duanm
  * @version $Id: TransactionOperation.java, v 0.1 2010-12-16 下午
 05:22:23 mo.duanm Exp $
  */
 public interface TransactionOperation {

/**
 * 嵌套事务
 * @param objects
 */
@Transactional
public void nestTrans(Object... objects);

 --
 You received this message because you are subscribed to the Google
 Groups Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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=en.




 --
 My Blog: http://blog.csdn.net/DL88250
 
 Open Source, Open Mind, Open Sight, Open Future!

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@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=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-j...@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
 

Re: [appengine-java] gae不支持事务?

2010-12-16 Thread kartik kudada
As article on http://www.keakon.net/article/1843 suggests , you can create
task queue on successful completion of 1st transaction , same can be done
when exception  occurred  in 1st transaction.
I did not try this solution but it seems like good option.

By this way we can achieve atomicity like in banking example .



2010/12/16 风笑雪 kea...@gmail.com

 不能rollback,但可以roll forward。
 这篇可能对你有帮助:
 http://www.keakon.net/article/1843

 --
 keakon

 My blog(Chinese): www.keakon.net
 Blog source code: https://bitbucket.org/keakon/doodle/



 2010/12/16 EtuO nbaer...@gmail.com

 谢谢大家,只能开启两个事务来解决啦。

 在 2010年12月16日 下午6:11,kartik kudada kartik.kud...@gmail.com写道:

 If following operation throws an exception,we can not rollback the first
 transaction, because it is already committed. What I can think of right now
 is, you can manually delete it. but it is not the genuine solution.

 Why don't you create owned relation between these two table?
 Tell me about your thoughts?

 Regards,
 Kartik

 2010/12/16 Liang Ding dl88...@gmail.com

 Hi, kartik.
 It works, but how can I rollback the 'first transaction' if the
 following operations throws an exception?

 2010/12/16 kartik kudada kartik.kud...@gmail.com

 You can not operate on two entities in single transaction unless both
 are entity groups.
 First delete CityNum  in one transaction and then
 delete ScheduleProcess  in different transaction,








 2010/12/16 EtuO nbaer...@gmail.com

 Caused by: java.lang.IllegalArgumentException: can't operate on

 multiple entity groups in a single transaction. found both Element {
  type: CityNum
  name: 013001
 }
  and Element {
  type: ScheduleProcess
  name: 013001
 }

at

 com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
 36)
at com.google.appengine.api.datastore.DatastoreApiHelper
 $1.convertException(DatastoreApiHelper.java:98)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 69)
at com.google.appengine.api.datastore.FutureHelper
 $CumulativeAggregateFuture.get(FutureHelper.java:136)
at com.google.appengine.api.datastore.FutureHelper
 $TxnAwareFuture.get(FutureHelper.java:213)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 67)
at

 com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:
 71)
at

 com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:
 58)
at

 com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:
 55)
at

 org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java:
 64)
... 86 more

 实现类代码:
 /**
 * @see

 org.ertuo.taoplugin.facade.TransactionOperation#nestTrans(java.lang.Object[])
 */
public void nestTrans(Object... objects) {
String id = (String) objects[0];
CityNum cn = cityNumDao.get(id);
ScheduleProcess sp = scheduleDao.get(id);
cityNumDao.delete(cn);
scheduleDao.delete(sp);
logger.info(id[ + id + ]对应的城市和任务删除完毕);
}

 接口代码:
 /**
  * 事务性操作接口
  * @author mo.duanm
  * @version $Id: TransactionOperation.java, v 0.1 2010-12-16 下午
 05:22:23 mo.duanm Exp $
  */
 public interface TransactionOperation {

/**
 * 嵌套事务
 * @param objects
 */
@Transactional
public void nestTrans(Object... objects);

 --
 You received this message because you are subscribed to the Google
 Groups Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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=en.




 --
 My Blog: http://blog.csdn.net/DL88250
 
 Open Source, Open Mind, Open Sight, Open Future!

 --
 You received this message because you are subscribed to the Google
 Groups Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@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=en.


  --
 You received this message 

[appengine-java] Cannot resize a .tif image using the ImagesService on the dev app server

2010-12-16 Thread Ian Marshall
I refer to the related post entitled WARNING: No image reader found
for format ico. An ImageIO plugin must be installed to use this
format with the DevAppServer. dated 7th June 2009 at:

http://groups.google.com/group/google-appengine-java/browse_thread/thread/7a44035eea5b1f4d/5fcd8b0a21f41db3?lnk=gstq=WARNING%3A+No+image+reader+found+for+format+%22ico%22.+An+ImageIO+plugin+must+be+installed+to+use+this+format+with+the+DevAppServer#5fcd8b0a21f41db3


where a query about the dev app server warnings below was raised, but
after Jason of Google asked a supplementary question he received no
response from the original poster.

My web app uploads an image file from a web browser user and then, if
the file is larger than around 900kB I use the GAE/J ImagesService to
reduce the image data size to this level. An extract of my relevant
code is:

byte[] baImageSource = [...];// Data from an uploaded image file
int nNewWidth  = [...];  // Calculate correct shrinkage
int nNewHeight = [...];  // Calculate correct shrinkage

Image imgSource = ImagesServiceFactory.makeImage(baImageSource);
ImagesService isService = ImagesServiceFactory.getImagesService();
Transform tfrm = ImagesServiceFactory.makeResize(nNewWidth,
nNewHeight);
Image imgNew = isService.applyTransform(tfrm, imgSource);
byte[] baResult = imgNew.getImageData();// The shrunken image
data


When I run my ImagesService code on my GAE/J development server
((latest) version 1.4.0) I get the two warnings:

16-Dec-2010 10:40:18
com.google.appengine.api.images.dev.LocalImagesService init
WARNING: No image reader found for format ico. An ImageIO plugin
must be installed to use this format with the DevAppServer.

16-Dec-2010 10:40:18
com.google.appengine.api.images.dev.LocalImagesService init
WARNING: No image reader found for format tif. An ImageIO plugin
must be installed to use this format with the DevAppServer.


My code runs well for shrinking .jpg files, but when I try this for
a .tif file of size 6.11 MB I get an IllegalArgumentException on my
call to ImagesService.applyTransform(...). (I set out a stack trace at
the foot of this post.)

I have a few questions for those interested:

  ·  How do I get a tif ImageIO plug-in for the ImagesService ()?
  ·  Should this plug-in be supplied with the GAE/J SDK in future
releases?
  ·  Does this issue apply to the dev app server only (I have not yet
deployed this to production)?

Cheers,

Ian Marshall



STACK TRACE WHEN TRANSFORMING A .TIF FILE
-
java.lang.IllegalArgumentException: Failed to read image
at
com.google.appengine.api.images.ImagesServiceImpl.convertApplicationException(ImagesServiceImpl.java:
301)
at
com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
73)
at
com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
50)
at
com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
39)
at [my package
path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java:
311)
at [my package
path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java:
236)
at [my package path].wicket.stuff.MyPage$5.onSubmit(MyPage.java:1348)
at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:
1561)
at org.apache.wicket.markup.html.form.Form.process(Form.java:958)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:
920)
at java.lang.reflect.Method.invoke(Unknown Source)
at
com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:
100)
at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:
182)
at
org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:
73)
at
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:
92)
at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:
1250)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:
486)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:
319)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
at
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
58)
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

Re: [appengine-java] gae不支持事务?

2010-12-16 Thread Liang Ding
The important thing is can't rollback while error occurred.

2010/12/16 EtuO nbaer...@gmail.com

 谢谢大家,只能开启两个事务来解决啦。

 在 2010年12月16日 下午6:11,kartik kudada kartik.kud...@gmail.com写道:

 If following operation throws an exception,we can not rollback the first
 transaction, because it is already committed. What I can think of right now
 is, you can manually delete it. but it is not the genuine solution.

 Why don't you create owned relation between these two table?
 Tell me about your thoughts?

 Regards,
 Kartik

 2010/12/16 Liang Ding dl88...@gmail.com

 Hi, kartik.
 It works, but how can I rollback the 'first transaction' if the following
 operations throws an exception?

 2010/12/16 kartik kudada kartik.kud...@gmail.com

 You can not operate on two entities in single transaction unless both
 are entity groups.
 First delete CityNum  in one transaction and then delete ScheduleProcess
  in different transaction,








 2010/12/16 EtuO nbaer...@gmail.com

 Caused by: java.lang.IllegalArgumentException: can't operate on

 multiple entity groups in a single transaction. found both Element {
  type: CityNum
  name: 013001
 }
  and Element {
  type: ScheduleProcess
  name: 013001
 }

at

 com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:
 36)
at com.google.appengine.api.datastore.DatastoreApiHelper
 $1.convertException(DatastoreApiHelper.java:98)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 69)
at com.google.appengine.api.datastore.FutureHelper
 $CumulativeAggregateFuture.get(FutureHelper.java:136)
at com.google.appengine.api.datastore.FutureHelper
 $TxnAwareFuture.get(FutureHelper.java:213)
at
 com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:
 67)
at

 com.google.appengine.api.datastore.FutureHelper.getInternal(FutureHelper.java:
 71)
at

 com.google.appengine.api.datastore.FutureHelper.quietGet(FutureHelper.java:
 58)
at

 com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:
 55)
at

 org.datanucleus.store.appengine.RuntimeExceptionWrappingDatastoreService.get(RuntimeExceptionWrappingDatastoreService.java:
 64)
... 86 more

 实现类代码:
 /**
 * @see

 org.ertuo.taoplugin.facade.TransactionOperation#nestTrans(java.lang.Object[])
 */
public void nestTrans(Object... objects) {
String id = (String) objects[0];
CityNum cn = cityNumDao.get(id);
ScheduleProcess sp = scheduleDao.get(id);
cityNumDao.delete(cn);
scheduleDao.delete(sp);
logger.info(id[ + id + ]对应的城市和任务删除完毕);
}

 接口代码:
 /**
  * 事务性操作接口
  * @author mo.duanm
  * @version $Id: TransactionOperation.java, v 0.1 2010-12-16 下午
 05:22:23 mo.duanm Exp $
  */
 public interface TransactionOperation {

/**
 * 嵌套事务
 * @param objects
 */
@Transactional
public void nestTrans(Object... objects);

 --
 You received this message because you are subscribed to the Google
 Groups Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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=en.




 --
 My Blog: http://blog.csdn.net/DL88250
 
 Open Source, Open Mind, Open Sight, Open Future!

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@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=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-j...@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=en.


  --
 You received this message because you are subscribed to the 

[appengine-java] Re: storing unowned objects(one to many) in datastore

2010-12-16 Thread WillSpecht
Why do you want to store both in the same transaction? To me, it seems
transactions are used to guarantee two things happen.  eg.  you don't
want to delete one record without making sure the a log of deleted
records is updated.  Transactions are also used to prevent collisions,
eg. I don't want two users adding to a counter at the same time and
one of their adds is lost.

It seems neither of these is likely.  It is unlikely that a new Person
will be created and before the system can save their mobile, some
other user will try and edit it.  It is also unlikely that either of
these will fail and not fail gracefully.  If you try and add a user in
one transaction then try to add a mobile in a second transaction
either both will succeed or fail.  Same outcome as a single
transaction.  Or one of the two fails and you simply try it again or
delete the one that didn't fail and inform the user.

If you really need a single transaction you can put both items in the
same entity group using a key builder.

You can see an example here under Creating Entities With Entity Groups
http://code.google.com/appengine/docs/java/datastore/transactions.html

 Dec 15, 10:16 pm, Didier Durand durand.did...@gmail.com wrote:
 Hi,

 If they don't belong to the same entity group, you will raise an
 exception by trying to store 2 objects in a single transaction.

 2 ways to handle that:

    a) you make Mobile belong to same entity group as Person so you'll
 be able to store both in a single transaction. I understand in your
 question that you can't go this way.
    b) you store one let's say Person in first transaction and during
 this transaction, you start a task as part of the transaction: You
 can enqueue a task as part of a datastore transaction, such that the
 task is only enqueued—and guaranteed to be enqueued—if the transaction
 is committed successfully. Tasks added within a transaction are
 considered to be a part of it and have the same level of isolation and
 consistency. as said 
 inhttp://code.google.com/appengine/docs/java/taskqueue/overview.html#Ta...

 Hope it helps

 didier

 On Dec 15, 8:26 am, kartik kudada kartik.kud...@gmail.com wrote:

  Can we store two unowned objects(one to many) in datastore in a single
  transaction.
  For example -  We have

  public class Person {
  @PrimaryKey
  �...@persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  private Long id;

  @Persistent
  private String name;

          @Persistent
   private ListKey mobileIds =  new ArrayListKey();

     //
    //.
    }

  public class Mobile {

          �...@primarykey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
   private Key mobileId;

    // ...
   //

  }

  I want to store these two objects in datastore in single transaction so that
  relation  can be made in between both objects.
  Tell me if any other solution is there ?

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



[appengine-java] Re: Files Limitation 3000

2010-12-16 Thread Francois Masurel
Hi Ravi,

I'm putting all the generated GWT files in a zip file and I'm serving
them with a specific servlet.

It works fine and even allows me to do some GWT versioning : /gwt
module = servlet/version/path to gwt file

Remember that, if you change the default GWT module path (like adding
a version number in it), you need to override the
RemoteServiceServlet#doGetSerializationPolicy method.

Francois

On 12 déc, 22:55, Ravi ravisan...@gmail.com wrote:
 Hello,

 After adding ExtJS GWT, the files count went to about 3500 after
 compilation.
 I am unable to deploy the project as GAE has a limit of 3000.
 I can put the java classes in JAR file, but the what can I do about
 the static files ?
 How can I overcome this problem ?

 Thanks,
 Ravi

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



[appengine-java] Re: datanucleus-appengine

2010-12-16 Thread George Moschovitis


 started a new app. For me, Objectify made Java persistence coding fun 
 again, and words like persistence manager lifecycle and detached 
 instance are blissfully draining out of my vocabulary :-) 


you may have a point here ;-)

-g. 

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



[appengine-java] Channel API problem

2010-12-16 Thread Tarun
I have been trying to use the newly launched Channel API on SDK 1.4 in
my project. I try to push a message to client which actually pops up a
notification but I am getting the ChannelFailureException.
Here is the code:
TestServlet Where the token is created:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
resp.setContentType(text/html);
// Creating the userID on the basis of the session id
String userId = req.getSession().getId();
// Starting the ChannelService of the channel API
ChannelService channelService = ChannelServiceFactory
.getChannelService();
// Creating the client token
String token = channelService.createChannel(userId);
req.getSession().setAttribute(token, token);

out.println(html);
out.println(head);
out.println(titleThis is a servlet which will be used to try 
the
new Channel API/title);
out.println(/head);
out.println(body);
out.println(a href=\/ChannelAPI.jsp\Click Here/a to 
recieve a
notification on the next page using channel API);
out.println(/body);
}
}

Channel API.jsp
script
channel = new goog.appengine.Channel('%= userId%');
socket = channel.open();
//socket.onopen = onOpened;
socket.onmessage = onMessage;
socket.onerror = onError;
socket.onclose = onClose;
onMessage = function (message){
$.pnotify({
pnotify_title: 'Regular Notice',
pnotify_text: message.data
});
};

onError = function (description,code){
$.pnotify({
pnotify_title: 'Uh Oh!',
pnotify_text: 'something went wrong',
pnotify_type: 'error',
pnotify_hide: false
});
};
 /script

Send Message servlet:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

String userId = (String) req.getSession().getAttribute(token);
ChannelService channelService =
ChannelServiceFactory.getChannelService();
channelService.sendMessage(new ChannelMessage(userId,
This is the message that has been sent));

}

}

The stack trace I got
Uncaught exception from servlet
com.google.appengine.api.channel.ChannelFailureException: An
unexpected error occurred.
at
com.google.appengine.api.channel.ChannelServiceImpl.sendMessage(ChannelServiceImpl.java:
59)

Can you tell me if there is something wrong with the code or with the
Channel API?

Thanks in advance,
Tarun

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



Re: [appengine-java] Mapper Blobstore bytes read limit

2010-12-16 Thread xiu
i know the 1.4.0 version was released, the limit was raised to 32mb.
http://googleappengine.blogspot.com/2010/12/happy-holidays-from-app-engine-team-140.html
so i wanna upload my dem data .
the data dem.bil is under the /war/dem.bil directory.and these are my
codes to fetch the data dem.bil that is 3M:
 try{ URLConnection a = url.openConnection();
 InputStream b = a.getInputStream();
 int len = a.getContentLength();
if (len  0) { return null; } //System.out.println(Total: +len);
 byte[] c = new byte[len];
 b.read(c,0,len);
 return c;
}catch (Exception e)
{ e.printStackTrace();
 return null;
 }
 }
but when it goes to InputStream b = a.getInputStream(); it's debug is
com.google.appengine.api.urlfetch.ResponseTooLargeException: The
response from url localhost:/dem.bil was too large. .so can you
can tell me why?or some wrong with my codes?
thanks.
xiu

Cyrille Vincey wrote:
 I've been testing Ikai's bulkload mapper (see url below) with a pretty big
 csv file (200 Mb).
 It works great, and I encourage most of you to consider implementing this
 for entity uploads.

 Yet, I do face one last issue with an unexpected quota : blobstore bytes
 read.
 This quota cannot be tuned via the billing settings, and it's not clear
 whether it limits the speed of my process or not when it's reached.


 See ? Yep, it's a lot of bytes readŠ
 Could someone confirm that the blob csv file is *NOT* fully fetched each
 time the mapper iterates on a new line ?

 (ikai's post)
 http://ikaisays.com/2010/08/11/using-the-app-engine-mapper-for-bulk-data-imp
 ort/

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



[appengine-java] Re: Synchronized reads/writes on a memcache variable

2010-12-16 Thread Erwin Streur
I agree. You should seriously consider the method that you are using.
The MemCacheService is a component designed to increase (mostly read)
access to the Datastore. Users of this service should not rely upon
the presence of data in the MemCache, but should use the Datastore and
its transaction support.

If you really want to use the MemCache you can apply an optimistic
locking approach by using with versioned data
- use a counter for version
- get current version
- get List using Key derived from current Version
- modify the List
- increment counter for Version and get value (atomic operation)
- verify that new version is 1 higher then originally retrieved one
- in case it is, store modified list under key derived form new
version
- in case it isn't, get the list for the real previous version and
store it under the latest version key. The system should now be in
consistent state again

You can apply different strategies for recovery, either just report
ConcurrentModificationException or retry the whole operation

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



Re: [appengine-java] Re: DEPLOYMENT FAILING AGAIN

2010-12-16 Thread Ikai Lan (Google)
We've been experiencing issues with the precompilation service that we're
trying to resolve. It's been causing some deployment failures, which
generally result in a 503 response code when you push your application.

--
Ikai Lan
Developer Programs Engineer, Google App Engine
Blogger: http://googleappengine.blogspot.com
Reddit: http://www.reddit.com/r/appengine
Twitter: http://twitter.com/app_engine



On Wed, Dec 15, 2010 at 3:31 AM, Simon qila...@gmail.com wrote:

 Hi,

 I don't know why the pre-compilation has to be turned off - as far as
 I understand it, this activity occurs on the Google servers and it's
 there that the problem occurs.  In one of the other deployment issue
 threads, Ikai mentioned that you can get around this issue by turning
 the pre-compilation off, so I'm just repeating that information!

 On Dec 14, 10:25 pm, J Handal jhand...@gmail.com wrote:
  Simon
 
  I have exactly the same problem.I upgraded de JRE and JDK to version 6
 build
  23(Last one)
 
  Why the jsp file don't compile?
 
  If you get the solution please let me know.

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Multiple Async get vs one Sync batch get?

2010-12-16 Thread Ikai Lan (Google)
You're talking about the datastore API? Underneath the hood, synchronous
gets just make asynchronous calls and block on Future.get() anyway. Making a
single synchronous batch get would translate to a single asynchronous RPC
with multiple keys vs. multiple asynchronous get RPCs. I suspect the single
batch call will perform better from a CPU cost/quota perspective, but I'd
defer to AppStats benchmarks as the authoritative answer.

--
Ikai Lan
Developer Programs Engineer, Google App Engine
Blogger: http://googleappengine.blogspot.com
Reddit: http://www.reddit.com/r/appengine
Twitter: http://twitter.com/app_engine



On Wed, Dec 15, 2010 at 3:38 AM, Gal Dolber gal.dol...@gmail.com wrote:

 Should I expect the similar performance? or the batch will always be
 better?

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] com.google.appengine.api.datastore.Text does not preserve formatting

2010-12-16 Thread Ojasvi
Hi I am using Java + Jdo to store data. I am able to store Text. The text I 
get loses all its formatting ( new lines spaces are all converted to single 
space )
is their any way to prevent the same ? I have read both the community and 
official FAQ and searched this group.
Please help

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



Re: [appengine-java] Multiple Async get vs one Sync batch get?

2010-12-16 Thread Gal Dolber
Yes, I am talking about datastore api.

I made some isolated tests and the batch always wins (no by so much).

But in my app, when I break the batch into multiple async gets, I can start
processing each async get result (and doing another api calls) before... and
it seems to be perform better.

I'll keep doing tests and post if find anything interesting.
Thanks!

On Thu, Dec 16, 2010 at 2:42 PM, Ikai Lan (Google)
ikai.l+gro...@google.comikai.l%2bgro...@google.com
 wrote:

 You're talking about the datastore API? Underneath the hood, synchronous
 gets just make asynchronous calls and block on Future.get() anyway. Making a
 single synchronous batch get would translate to a single asynchronous RPC
 with multiple keys vs. multiple asynchronous get RPCs. I suspect the single
 batch call will perform better from a CPU cost/quota perspective, but I'd
 defer to AppStats benchmarks as the authoritative answer.

 --
 Ikai Lan
 Developer Programs Engineer, Google App Engine
 Blogger: http://googleappengine.blogspot.com
 Reddit: http://www.reddit.com/r/appengine
 Twitter: http://twitter.com/app_engine



 On Wed, Dec 15, 2010 at 3:38 AM, Gal Dolber gal.dol...@gmail.com wrote:

  Should I expect the similar performance? or the batch will always be
 better?

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@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=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-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Newly deployed app doesn’t se em always reflected on the server.

2010-12-16 Thread nnhobbit

I think for sure there's some sort of delay of deployment sometimes.
It does not always happen.

You don't have to deploy your app again, just have to wait long enough
(time frame unpredictable) for your new deployment instance get going.
Even though in the console says the app is deployed and running, it is
not.

This unpredictability of deployment is really some serious issue.

p.s. the version number is changed, it is set to default, and it's
definitely no cache.


On Oct 30, 10:58 am, dilbert dilbert.elbo...@gmail.com wrote:
 It is not about a change of version and it is not just about hitting
 F5.

 On Oct 30, 9:59 am, andrew aute...@gmail.com wrote:

  As mentioned, IF you are changing version number you will need to set
  latest as default. Check versions page in dashboard.

  I have seen some slight delays after default is changed for switchover
  to new version to occur. A minute maybe.

  Also, on browser, while on your app page, hit Control F5 to force
  refresh.

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



[appengine-java] 500 Internal Server Error:Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/clonefiles?

2010-12-16 Thread Sumi
I am getting deployed error gaian...this is happening every other day and as
big productivity sink...anyone knows what is going on and when this will be
resolved?

Unable to update app: Error posting to URL:
https://appengine.google.com/api/appversion/clonefiles?app_id=Xversion=5;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=
http://code.google.com/appengine/community.html;report/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html


See the deployment console for more details
Unable to update app: Error posting to URL:
https://appengine.google.com/api/appversion/clonefiles?app_id=Xversion=5;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=
http://code.google.com/appengine/community.html;report/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/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-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: Newly deployed app doesn’ t seem always reflected on the server.

2010-12-16 Thread Sumi
Unable to update app: Error posting to URL:
https://appengine.google.com/api/appversion/clonefiles?app_id=Xversion=5;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=
http://code.google.com/appengine/community.html;report/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html

you are right deployment has become very unpredictable..I started getting
this error below now..
==

See the deployment console for more details
Unable to update app: Error posting to URL:
https://appengine.google.com/api/appversion/clonefiles?app_id=Xversion=5;
500 Internal Server Error

htmlhead
meta http-equiv=content-type content=text/html;charset=utf-8
title500 Server Error/title
/head
body text=#00 bgcolor=#ff
h1Error: Server Error/h1
h2The server encountered an error and could not complete your
request.pIf the problem persists, please A HREF=
http://code.google.com/appengine/community.html;report/A your problem and
mention this error message and the query that caused it./h2
h2/h2
/body/html


On Thu, Dec 16, 2010 at 5:21 PM, nnhobbit nnclou...@gmail.com wrote:


 I think for sure there's some sort of delay of deployment sometimes.
 It does not always happen.

 You don't have to deploy your app again, just have to wait long enough
 (time frame unpredictable) for your new deployment instance get going.
 Even though in the console says the app is deployed and running, it is
 not.

 This unpredictability of deployment is really some serious issue.

 p.s. the version number is changed, it is set to default, and it's
 definitely no cache.


 On Oct 30, 10:58 am, dilbert dilbert.elbo...@gmail.com wrote:
  It is not about a change of version and it is not just about hitting
  F5.
 
  On Oct 30, 9:59 am, andrew aute...@gmail.com wrote:
 
   As mentioned, IF you are changing version number you will need to set
   latest as default. Check versions page in dashboard.
 
   I have seen some slight delays after default is changed for switchover
   to new version to occur. A minute maybe.
 
   Also, on browser, while on your app page, hit Control F5 to force
   refresh.

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Not sending email with Javamail and no error

2010-12-16 Thread Moretto
I've changed the code to initialize the Session object passing
properties as a parameter. Nothing changed. Still does not send emails
and doesnt throws any exception. Ideias??

  Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);


UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(user.getEmail()));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress(email, destinatario));
msg.setSubject(titulo);
msg.setText(texto);
Transport.send(msg);

} catch (AddressException e) {
e.printStackTrace();
return false;
} catch (MessagingException e) {
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;

On Dec 14, 12:11 pm, Amit Pandey amit.s...@gmail.com wrote:
 Just try creating session object using property object. May be it can
 help(Not sure).

 Properties props = new Properties();
         Session session = Session.getDefaultInstance(props, null);



 On Tue, Dec 14, 2010 at 9:21 AM, Moretto mala...@gmail.com wrote:
  Hi,

  I'm using JAVAMAIL to send mail from my GAE app located at
 http://k-share.appspot.com/.

  I can't send email and no error occurs. The first time i've deployed
  my app, it send 2 email then no more.

  Take a look at the source code below:

  /*
   * To change this template, choose Tools | Templates
   * and open the template in the editor.
   */
  package com.appspot.kshare.control;

  import com.google.appengine.api.users.User;
  import com.google.appengine.api.users.UserService;
  import com.google.appengine.api.users.UserServiceFactory;
  import java.io.UnsupportedEncodingException;
  import javax.mail.Message;
  import javax.mail.MessagingException;
  import javax.mail.Session;
  import javax.mail.Transport;
  import javax.mail.internet.AddressException;
  import javax.mail.internet.InternetAddress;
  import javax.mail.internet.MimeMessage;

  /**
   *
   * @author malacma
   */
  public class EmailControlUtil {

     public static boolean sendMail(String email, String destinatario,
  String titulo, String texto, Object anexo) throws
  UnsupportedEncodingException {
         Session session = Session.getDefaultInstance(null);

         UserService userService = UserServiceFactory.getUserService();
         User user = userService.getCurrentUser();
         try {
             Message msg = new MimeMessage(session);
             msg.setFrom(new InternetAddress(user.getEmail()));
             msg.addRecipient(Message.RecipientType.TO,
                     new InternetAddress(email, destinatario));
             msg.setSubject(titulo);
             msg.setText(texto);
             Transport.send(msg);

         } catch (AddressException e) {
             e.printStackTrace();
             return false;
         } catch (MessagingException e) {
             e.printStackTrace();
             return false;
         } catch (Exception e) {
             e.printStackTrace();
             return false;
         }
         return true;
     }
  }

  Any ideia? Need help hurry :(

  --
  You received this message because you are subscribed to the Google Groups
  Google App Engine for Java group.
  To post to this group, send email to
  google-appengine-j...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2B 
  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-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



Re: [appengine-java] Re: Not sending email with Javamail and no error

2010-12-16 Thread A. Stevko
Does the email address used in your From have administrator privileges for
your app?

   msg.setFrom(new InternetAddress(user.getEmail()));

I read somewhere that system could only send email from registered email
addresses.


On Thu, Dec 16, 2010 at 7:13 PM, Moretto mala...@gmail.com wrote:

 I've changed the code to initialize the Session object passing
 properties as a parameter. Nothing changed. Still does not send emails
 and doesnt throws any exception. Ideias??

  Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);


 UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(user.getEmail()));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress(email, destinatario));
msg.setSubject(titulo);
msg.setText(texto);
Transport.send(msg);

} catch (AddressException e) {
e.printStackTrace();
return false;
} catch (MessagingException e) {
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;

 On Dec 14, 12:11 pm, Amit Pandey amit.s...@gmail.com wrote:
  Just try creating session object using property object. May be it can
  help(Not sure).
 
  Properties props = new Properties();
  Session session = Session.getDefaultInstance(props, null);
 
 
 
  On Tue, Dec 14, 2010 at 9:21 AM, Moretto mala...@gmail.com wrote:
   Hi,
 
   I'm using JAVAMAIL to send mail from my GAE app located at
  http://k-share.appspot.com/.
 
   I can't send email and no error occurs. The first time i've deployed
   my app, it send 2 email then no more.
 
   Take a look at the source code below:
 
   /*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
   package com.appspot.kshare.control;
 
   import com.google.appengine.api.users.User;
   import com.google.appengine.api.users.UserService;
   import com.google.appengine.api.users.UserServiceFactory;
   import java.io.UnsupportedEncodingException;
   import javax.mail.Message;
   import javax.mail.MessagingException;
   import javax.mail.Session;
   import javax.mail.Transport;
   import javax.mail.internet.AddressException;
   import javax.mail.internet.InternetAddress;
   import javax.mail.internet.MimeMessage;
 
   /**
*
* @author malacma
*/
   public class EmailControlUtil {
 
  public static boolean sendMail(String email, String destinatario,
   String titulo, String texto, Object anexo) throws
   UnsupportedEncodingException {
  Session session = Session.getDefaultInstance(null);
 
  UserService userService = UserServiceFactory.getUserService();
  User user = userService.getCurrentUser();
  try {
  Message msg = new MimeMessage(session);
  msg.setFrom(new InternetAddress(user.getEmail()));
  msg.addRecipient(Message.RecipientType.TO,
  new InternetAddress(email, destinatario));
  msg.setSubject(titulo);
  msg.setText(texto);
  Transport.send(msg);
 
  } catch (AddressException e) {
  e.printStackTrace();
  return false;
  } catch (MessagingException e) {
  e.printStackTrace();
  return false;
  } catch (Exception e) {
  e.printStackTrace();
  return false;
  }
  return true;
  }
   }
 
   Any ideia? Need help hurry :(
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Google App Engine for Java group.
   To post to this group, send email to
   google-appengine-j...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%2B
 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-j...@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=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-j...@googlegroups.com.
To unsubscribe from this group, 

Re: [appengine-java] Re: Not sending email with Javamail and no error

2010-12-16 Thread A. Stevko
I now recall the conditions...
http://code.google.com/appengine/docs/java/mail/overview.html

 App Engine applications can send email messages on behalf of the app's
 administrators, and on behalf of users with Google Accounts.



On Thu, Dec 16, 2010 at 7:49 PM, A. Stevko andy.ste...@gmail.com wrote:

 Does the email address used in your From have administrator privileges for
 your app?


msg.setFrom(new InternetAddress(user.getEmail()));

 I read somewhere that system could only send email from registered email
 addresses.


 On Thu, Dec 16, 2010 at 7:13 PM, Moretto mala...@gmail.com wrote:

 I've changed the code to initialize the Session object passing
 properties as a parameter. Nothing changed. Still does not send emails
 and doesnt throws any exception. Ideias??

  Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);


 UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(user.getEmail()));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress(email, destinatario));
msg.setSubject(titulo);
msg.setText(texto);
Transport.send(msg);

} catch (AddressException e) {
e.printStackTrace();
return false;
} catch (MessagingException e) {
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;

 On Dec 14, 12:11 pm, Amit Pandey amit.s...@gmail.com wrote:
  Just try creating session object using property object. May be it can
  help(Not sure).
 
  Properties props = new Properties();
  Session session = Session.getDefaultInstance(props, null);
 
 
 
  On Tue, Dec 14, 2010 at 9:21 AM, Moretto mala...@gmail.com wrote:
   Hi,
 
   I'm using JAVAMAIL to send mail from my GAE app located at
  http://k-share.appspot.com/.
 
   I can't send email and no error occurs. The first time i've deployed
   my app, it send 2 email then no more.
 
   Take a look at the source code below:
 
   /*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
   package com.appspot.kshare.control;
 
   import com.google.appengine.api.users.User;
   import com.google.appengine.api.users.UserService;
   import com.google.appengine.api.users.UserServiceFactory;
   import java.io.UnsupportedEncodingException;
   import javax.mail.Message;
   import javax.mail.MessagingException;
   import javax.mail.Session;
   import javax.mail.Transport;
   import javax.mail.internet.AddressException;
   import javax.mail.internet.InternetAddress;
   import javax.mail.internet.MimeMessage;
 
   /**
*
* @author malacma
*/
   public class EmailControlUtil {
 
  public static boolean sendMail(String email, String destinatario,
   String titulo, String texto, Object anexo) throws
   UnsupportedEncodingException {
  Session session = Session.getDefaultInstance(null);
 
  UserService userService = UserServiceFactory.getUserService();
  User user = userService.getCurrentUser();
  try {
  Message msg = new MimeMessage(session);
  msg.setFrom(new InternetAddress(user.getEmail()));
  msg.addRecipient(Message.RecipientType.TO,
  new InternetAddress(email, destinatario));
  msg.setSubject(titulo);
  msg.setText(texto);
  Transport.send(msg);
 
  } catch (AddressException e) {
  e.printStackTrace();
  return false;
  } catch (MessagingException e) {
  e.printStackTrace();
  return false;
  } catch (Exception e) {
  e.printStackTrace();
  return false;
  }
  return true;
  }
   }
 
   Any ideia? Need help hurry :(
 
   --
   You received this message because you are subscribed to the Google
 Groups
   Google App Engine for Java group.
   To post to this group, send email to
   google-appengine-j...@googlegroups.com.
   To unsubscribe from this group, send email to
   google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.comgoogle-appengine-java%2B
 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-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@googlegroups.com
 .
 For more 

[appengine-java] Re: Not sending email with Javamail and no error

2010-12-16 Thread Moretto
Still no messagesand no errors

 Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);


  //  UserService userService =
UserServiceFactory.getUserService();
//User user = userService.getCurrentUser();
try {
Message msg = new MimeMessage(session);
//msg.setFrom(new InternetAddress(user.getEmail()));
msg.setFrom(new InternetAddress(mala...@gmail.com, [k-
share]));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress(email, destinatario));
msg.setSubject(titulo);
msg.setText(texto);
Transport.send(msg);

} catch (AddressException e) {
e.printStackTrace();
return false;
} catch (MessagingException e) {
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;

On Dec 17, 2:03 am, Moretto mala...@gmail.com wrote:
 can send email messages on behalf of the app's administrators, and on
 behalf of users with Google Accounts.

 UserService userService = UserServiceFactory.getUserService();
         User user = userService.getCurrentUser();

 These two lines of code retrieve the current google user logged in.
 i'll change it and test.

 On Dec 17, 1:52 am, A. Stevko andy.ste...@gmail.com wrote:



  I now recall the 
  conditions...http://code.google.com/appengine/docs/java/mail/overview.html

   App Engine applications can send email messages on behalf of the app's
   administrators, and on behalf of users with Google Accounts.
  On Thu, Dec 16, 2010 at 7:49 PM, A. Stevko andy.ste...@gmail.com wrote:
   Does the email address used in your From have administrator privileges for
   your app?

              msg.setFrom(new InternetAddress(user.getEmail()));

   I read somewhere that system could only send email from registered email
   addresses.

   On Thu, Dec 16, 2010 at 7:13 PM, Moretto mala...@gmail.com wrote:

   I've changed the code to initialize the Session object passing
   properties as a parameter. Nothing changed. Still does not send emails
   and doesnt throws any exception. Ideias??

        Properties props = new Properties();
          Session session = Session.getDefaultInstance(props, null);

           UserService userService = UserServiceFactory.getUserService();
          User user = userService.getCurrentUser();
          try {
              Message msg = new MimeMessage(session);
              msg.setFrom(new InternetAddress(user.getEmail()));
              msg.addRecipient(Message.RecipientType.TO,
                      new InternetAddress(email, destinatario));
              msg.setSubject(titulo);
              msg.setText(texto);
              Transport.send(msg);

          } catch (AddressException e) {
              e.printStackTrace();
              return false;
          } catch (MessagingException e) {
              e.printStackTrace();
              return false;
          } catch (Exception e) {
              e.printStackTrace();
              return false;
          }
          return true;

   On Dec 14, 12:11 pm, Amit Pandey amit.s...@gmail.com wrote:
Just try creating session object using property object. May be it can
help(Not sure).

Properties props = new Properties();
        Session session = Session.getDefaultInstance(props, null);

On Tue, Dec 14, 2010 at 9:21 AM, Moretto mala...@gmail.com wrote:
 Hi,

 I'm using JAVAMAIL to send mail from my GAE app located at
http://k-share.appspot.com/.

 I can't send email and no error occurs. The first time i've deployed
 my app, it send 2 email then no more.

 Take a look at the source code below:

 /*
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
 package com.appspot.kshare.control;

 import com.google.appengine.api.users.User;
 import com.google.appengine.api.users.UserService;
 import com.google.appengine.api.users.UserServiceFactory;
 import java.io.UnsupportedEncodingException;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.Session;
 import javax.mail.Transport;
 import javax.mail.internet.AddressException;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;

 /**
  *
  * @author malacma
  */
 public class EmailControlUtil {

    public static boolean sendMail(String email, String destinatario,
 String titulo, String texto, Object anexo) throws
 UnsupportedEncodingException {
        Session session = Session.getDefaultInstance(null);

        UserService userService = UserServiceFactory.getUserService();
        User user = userService.getCurrentUser();
        try {
            Message msg = new 

Re: [appengine-java] Re: Not sending email with Javamail and no error

2010-12-16 Thread A. Stevko
I have much the same code although I set more headers.
How about adding yourself as a BCC and/or CC?
Also, do you see any utilization  in your Quota details - Mail API Calls
and Recipients Emailed ?



On Thu, Dec 16, 2010 at 8:12 PM, Moretto mala...@gmail.com wrote:

 Still no messagesand no errors

  Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);


  //  UserService userService =
 UserServiceFactory.getUserService();
//User user = userService.getCurrentUser();
try {
Message msg = new MimeMessage(session);
//msg.setFrom(new InternetAddress(user.getEmail()));
 msg.setFrom(new InternetAddress(mala...@gmail.com, [k-
 share]));
 msg.addRecipient(Message.RecipientType.TO,
new InternetAddress(email, destinatario));
msg.setSubject(titulo);
msg.setText(texto);
Transport.send(msg);

} catch (AddressException e) {
e.printStackTrace();
return false;
} catch (MessagingException e) {
e.printStackTrace();
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;

 On Dec 17, 2:03 am, Moretto mala...@gmail.com wrote:
  can send email messages on behalf of the app's administrators, and on
  behalf of users with Google Accounts.
 
  UserService userService = UserServiceFactory.getUserService();
  User user = userService.getCurrentUser();
 
  These two lines of code retrieve the current google user logged in.
  i'll change it and test.
 
  On Dec 17, 1:52 am, A. Stevko andy.ste...@gmail.com wrote:
 
 
 
   I now recall the conditions...
 http://code.google.com/appengine/docs/java/mail/overview.html
 
App Engine applications can send email messages on behalf of the
 app's
administrators, and on behalf of users with Google Accounts.
   On Thu, Dec 16, 2010 at 7:49 PM, A. Stevko andy.ste...@gmail.com
 wrote:
Does the email address used in your From have administrator
 privileges for
your app?
 
   msg.setFrom(new InternetAddress(user.getEmail()));
 
I read somewhere that system could only send email from registered
 email
addresses.
 
On Thu, Dec 16, 2010 at 7:13 PM, Moretto mala...@gmail.com wrote:
 
I've changed the code to initialize the Session object passing
properties as a parameter. Nothing changed. Still does not send
 emails
and doesnt throws any exception. Ideias??
 
 Properties props = new Properties();
   Session session = Session.getDefaultInstance(props, null);
 
UserService userService =
 UserServiceFactory.getUserService();
   User user = userService.getCurrentUser();
   try {
   Message msg = new MimeMessage(session);
   msg.setFrom(new InternetAddress(user.getEmail()));
   msg.addRecipient(Message.RecipientType.TO,
   new InternetAddress(email, destinatario));
   msg.setSubject(titulo);
   msg.setText(texto);
   Transport.send(msg);
 
   } catch (AddressException e) {
   e.printStackTrace();
   return false;
   } catch (MessagingException e) {
   e.printStackTrace();
   return false;
   } catch (Exception e) {
   e.printStackTrace();
   return false;
   }
   return true;
 
On Dec 14, 12:11 pm, Amit Pandey amit.s...@gmail.com wrote:
 Just try creating session object using property object. May be it
 can
 help(Not sure).
 
 Properties props = new Properties();
 Session session = Session.getDefaultInstance(props, null);
 
 On Tue, Dec 14, 2010 at 9:21 AM, Moretto mala...@gmail.com
 wrote:
  Hi,
 
  I'm using JAVAMAIL to send mail from my GAE app located at
 http://k-share.appspot.com/.
 
  I can't send email and no error occurs. The first time i've
 deployed
  my app, it send 2 email then no more.
 
  Take a look at the source code below:
 
  /*
   * To change this template, choose Tools | Templates
   * and open the template in the editor.
   */
  package com.appspot.kshare.control;
 
  import com.google.appengine.api.users.User;
  import com.google.appengine.api.users.UserService;
  import com.google.appengine.api.users.UserServiceFactory;
  import java.io.UnsupportedEncodingException;
  import javax.mail.Message;
  import javax.mail.MessagingException;
  import javax.mail.Session;
  import javax.mail.Transport;
  import javax.mail.internet.AddressException;
  import javax.mail.internet.InternetAddress;
  import javax.mail.internet.MimeMessage;
 
  /**
   *
   * @author malacma
   */
  public class EmailControlUtil {
 
 public static 

Re: [appengine-java] Re: storing unowned objects(one to many) in datastore

2010-12-16 Thread kartik kudada
Hi,
I can not create entity group because both are both classes can
exists independently, It can be unowned relation  between them.
I want both should be stored  in datastore or none of
these(Atomic behavior ) . If one entity is not stored other entity must not
store in datastore .

Didier's suggestion looks good , but i did not try .
*
*




On Thu, Dec 16, 2010 at 8:35 PM, WillSpecht willspe...@gmail.com wrote:

 Why do you want to store both in the same transaction? To me, it seems
 transactions are used to guarantee two things happen.  eg.  you don't
 want to delete one record without making sure the a log of deleted
 records is updated.  Transactions are also used to prevent collisions,
 eg. I don't want two users adding to a counter at the same time and
 one of their adds is lost.

 It seems neither of these is likely.  It is unlikely that a new Person
 will be created and before the system can save their mobile, some
 other user will try and edit it.  It is also unlikely that either of
 these will fail and not fail gracefully.  If you try and add a user in
 one transaction then try to add a mobile in a second transaction
 either both will succeed or fail.  Same outcome as a single
 transaction.  Or one of the two fails and you simply try it again or
 delete the one that didn't fail and inform the user.

 If you really need a single transaction you can put both items in the
 same entity group using a key builder.

 You can see an example here under Creating Entities With Entity Groups
 http://code.google.com/appengine/docs/java/datastore/transactions.html

  Dec 15, 10:16 pm, Didier Durand durand.did...@gmail.com wrote:
  Hi,
 
  If they don't belong to the same entity group, you will raise an
  exception by trying to store 2 objects in a single transaction.
 
  2 ways to handle that:
 
 a) you make Mobile belong to same entity group as Person so you'll
  be able to store both in a single transaction. I understand in your
  question that you can't go this way.
 b) you store one let's say Person in first transaction and during
  this transaction, you start a task as part of the transaction: You
  can enqueue a task as part of a datastore transaction, such that the
  task is only enqueued—and guaranteed to be enqueued—if the transaction
  is committed successfully. Tasks added within a transaction are
  considered to be a part of it and have the same level of isolation and
  consistency. as said inhttp://
 code.google.com/appengine/docs/java/taskqueue/overview.html#Ta...
 
  Hope it helps
 
  didier
 
  On Dec 15, 8:26 am, kartik kudada kartik.kud...@gmail.com wrote:
 
   Can we store two unowned objects(one to many) in datastore in a single
   transaction.
   For example -  We have
 
   public class Person {
   @PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
   private Long id;
 
   @Persistent
   private String name;
 
   @Persistent
private ListKey mobileIds =  new ArrayListKey();
 
  //
 //.
 }
 
   public class Mobile {
 
@PrimaryKey
   @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key mobileId;
 
 // ...
//
 
   }
 
   I want to store these two objects in datastore in single transaction so
 that
   relation  can be made in between both objects.
   Tell me if any other solution is there ?

 --
 You received this message because you are subscribed to the Google Groups
 Google App Engine for Java group.
 To post to this group, send email to
 google-appengine-j...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-appengine-java+unsubscr...@googlegroups.comgoogle-appengine-java%2bunsubscr...@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-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.



[appengine-java] Re: Not sending email with Javamail and no error

2010-12-16 Thread Moretto
As you see the first time i've deployed my app, 2 email were sent. It
appeared at my cota details. Now  Could you post your headers details?

Mail API Calls   0%  0 of 7,000  Okay
Recipients Emailed   0%  0 of 2,000  Okay
Admins Emailed   0%  0 of 5,000  Okay
Message Body Data Sent   0%  0.00 of 0.06 GBytes Okay
Attachments Sent 0%  0 of 2,000  Okay
Attachment Data Sent 0%  0.00 of 0.10 GBytes Okay

On Dec 17, 2:21 am, A. Stevko andy.ste...@gmail.com wrote:
 I have much the same code although I set more headers.
 How about adding yourself as a BCC and/or CC?
 Also, do you see any utilization  in your Quota details - Mail API Calls
 and Recipients Emailed ?



 On Thu, Dec 16, 2010 at 8:12 PM, Moretto mala...@gmail.com wrote:
  Still no messagesand no errors

   Properties props = new Properties();
         Session session = Session.getDefaultInstance(props, null);

       //  UserService userService =
  UserServiceFactory.getUserService();
     //    User user = userService.getCurrentUser();
         try {
             Message msg = new MimeMessage(session);
             //msg.setFrom(new InternetAddress(user.getEmail()));
              msg.setFrom(new InternetAddress(mala...@gmail.com, [k-
  share]));
              msg.addRecipient(Message.RecipientType.TO,
                     new InternetAddress(email, destinatario));
             msg.setSubject(titulo);
             msg.setText(texto);
             Transport.send(msg);

         } catch (AddressException e) {
             e.printStackTrace();
             return false;
         } catch (MessagingException e) {
             e.printStackTrace();
             return false;
         } catch (Exception e) {
             e.printStackTrace();
             return false;
         }
         return true;

  On Dec 17, 2:03 am, Moretto mala...@gmail.com wrote:
   can send email messages on behalf of the app's administrators, and on
   behalf of users with Google Accounts.

   UserService userService = UserServiceFactory.getUserService();
           User user = userService.getCurrentUser();

   These two lines of code retrieve the current google user logged in.
   i'll change it and test.

   On Dec 17, 1:52 am, A. Stevko andy.ste...@gmail.com wrote:

I now recall the conditions...
 http://code.google.com/appengine/docs/java/mail/overview.html

 App Engine applications can send email messages on behalf of the
  app's
 administrators, and on behalf of users with Google Accounts.
On Thu, Dec 16, 2010 at 7:49 PM, A. Stevko andy.ste...@gmail.com
  wrote:
 Does the email address used in your From have administrator
  privileges for
 your app?

            msg.setFrom(new InternetAddress(user.getEmail()));

 I read somewhere that system could only send email from registered
  email
 addresses.

 On Thu, Dec 16, 2010 at 7:13 PM, Moretto mala...@gmail.com wrote:

 I've changed the code to initialize the Session object passing
 properties as a parameter. Nothing changed. Still does not send
  emails
 and doesnt throws any exception. Ideias??

      Properties props = new Properties();
        Session session = Session.getDefaultInstance(props, null);

         UserService userService =
  UserServiceFactory.getUserService();
        User user = userService.getCurrentUser();
        try {
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(user.getEmail()));
            msg.addRecipient(Message.RecipientType.TO,
                    new InternetAddress(email, destinatario));
            msg.setSubject(titulo);
            msg.setText(texto);
            Transport.send(msg);

        } catch (AddressException e) {
            e.printStackTrace();
            return false;
        } catch (MessagingException e) {
            e.printStackTrace();
            return false;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return true;

 On Dec 14, 12:11 pm, Amit Pandey amit.s...@gmail.com wrote:
  Just try creating session object using property object. May be it
  can
  help(Not sure).

  Properties props = new Properties();
          Session session = Session.getDefaultInstance(props, null);

  On Tue, Dec 14, 2010 at 9:21 AM, Moretto mala...@gmail.com
  wrote:
   Hi,

   I'm using JAVAMAIL to send mail from my GAE app located at
  http://k-share.appspot.com/.

   I can't send email and no error occurs. The first time i've
  deployed
   my app, it send 2 email then no more.

   Take a look at the source code below:

   /*
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    */
   package 

[appengine-java] Re: Cannot resize a .tif image using the ImagesService on the dev app server

2010-12-16 Thread Ian Marshall
No ideas, anyone?


On Dec 16, 11:59 am, Ian Marshall ianmarshall...@gmail.com wrote:
 I refer to the related post entitled WARNING: No image reader found
 for format ico. An ImageIO plugin must be installed to use this
 format with the DevAppServer. dated 7th June 2009 at:

 http://groups.google.com/group/google-appengine-java/browse_thread/th...

 where a query about the dev app server warnings below was raised, but
 after Jason of Google asked a supplementary question he received no
 response from the original poster.

 My web app uploads an image file from a web browser user and then, if
 the file is larger than around 900kB I use the GAE/J ImagesService to
 reduce the image data size to this level. An extract of my relevant
 code is:

         byte[] baImageSource = [...];    // Data from an uploaded image file
         int nNewWidth  = [...];          // Calculate correct shrinkage
         int nNewHeight = [...];          // Calculate correct shrinkage

         Image imgSource = ImagesServiceFactory.makeImage(baImageSource);
         ImagesService isService = ImagesServiceFactory.getImagesService();
         Transform tfrm = ImagesServiceFactory.makeResize(nNewWidth,
 nNewHeight);
         Image imgNew = isService.applyTransform(tfrm, imgSource);
         byte[] baResult = imgNew.getImageData();    // The shrunken image
 data

 When I run my ImagesService code on my GAE/J development server
 ((latest) version 1.4.0) I get the two warnings:

         16-Dec-2010 10:40:18
 com.google.appengine.api.images.dev.LocalImagesService init
         WARNING: No image reader found for format ico. An ImageIO plugin
 must be installed to use this format with the DevAppServer.

         16-Dec-2010 10:40:18
 com.google.appengine.api.images.dev.LocalImagesService init
         WARNING: No image reader found for format tif. An ImageIO plugin
 must be installed to use this format with the DevAppServer.

 My code runs well for shrinking .jpg files, but when I try this for
 a .tif file of size 6.11 MB I get an IllegalArgumentException on my
 call to ImagesService.applyTransform(...). (I set out a stack trace at
 the foot of this post.)

 I have a few questions for those interested:

   ·  How do I get a tif ImageIO plug-in for the ImagesService ()?
   ·  Should this plug-in be supplied with the GAE/J SDK in future
 releases?
   ·  Does this issue apply to the dev app server only (I have not yet
 deployed this to production)?

 Cheers,

 Ian Marshall

 STACK TRACE WHEN TRANSFORMING A .TIF FILE
 -
 java.lang.IllegalArgumentException: Failed to read image
 at
 com.google.appengine.api.images.ImagesServiceImpl.convertApplicationException(ImagesServiceImpl.java:
 301)
 at
 com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
 73)
 at
 com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
 50)
 at
 com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java:
 39)
 at [my package
 path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java:
 311)
 at [my package
 path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java:
 236)
 at [my package path].wicket.stuff.MyPage$5.onSubmit(MyPage.java:1348)
 at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:
 1561)
 at org.apache.wicket.markup.html.form.Form.process(Form.java:958)
 at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:
 920)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at
 com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:
 100)
 at
 org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:
 182)
 at
 org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:
 73)
 at
 org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:
 92)
 at
 org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:
 1250)
 at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
 at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
 at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
 at
 org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:
 486)
 at
 org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:
 319)
 at org.mortbay.jetty.servlet.ServletHandler
 $CachedChain.doFilter(ServletHandler.java:1157)
 at
 com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
 58)
 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
 

[google-appengine] This request used a high amount of CPU and may soon exceed its quota - 2010/2011

2010-12-16 Thread Matija
Hi, I am using google app engine from beginning. From the time when there 
was high cpu quota tickets. I understand difference between request time, 
cpu and api time. 

In one of my request I am putting two objects in one batch operation to 
datastore (from same entity group in transaction, although this 
is irrelevant for this discussion). I noticed in log these request/cpu/api 
times:

12-16 02:03AM 35.944   200 198ms 1847cpu_ms 1700api_cpu_ms 
12-16 02:03AM 35.813   200 128ms 1828cpu_ms 1700api_cpu_ms 
12-16 02:03AM 35.712   200 107ms 1829cpu_ms 1700api_cpu_ms 
12-16 02:03AM 35.586   200 145ms 1865cpu_ms 1700api_cpu_ms 
12-16 02:03AM 35.524   200 182ms 1810cpu_ms 1700api_cpu_ms 
12-16 02:03AM 35.387   200 203ms 1938cpu_ms 1700api_cpu_ms 
12-16 02:03AM 35.438   200 151ms 1791cpu_ms 1700api_cpu_ms 
12-16 02:03AM 35.298   200 171ms 1829cpu_ms 1700api_cpu_ms

I would probably ignore there lines if they are not in red color with 
triangle sign to warn me about 'high amount of cpu usage'. 

Reason for this 'high' api usage is index creation. Cost for first object is 
around 1200 api_cpu_ms and for second 500 api_cpu_ms (some changes and 
appstat revealed data). 

First object has 8 indexes where first attribute is list of strings (from 5 
to 11 members, this usage is for 11 members). This 8 indexes are for ability 
to sort on 4 columns (ascending and descending). If I leave this list empty, 
api_cpu_ms is around 330 ms for first object. Of course I must not leave 
list empty if I want this user interface feature.

I understand everything about this 'issue' and I am fine with 'high' cpu 
usage, because my request time is around 160 ms, top 200 ms.

Question: Is Google App Engine fine with my 'high' cpu usage ? Will I 
be penalized in any way (new instances, throtle, ...) because of this 'high 
abount of CPU' ?

If GAE is fine and I will not be penalized why don't you change this 
'coloring' schema to use only request time or maybe request time with (cpu 
time - api time) ?! This red color will make me crazy ;)

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



Re: [google-appengine] This request used a high amount of CPU and may soon exceed its quota - 2010/2011

2010-12-16 Thread 风笑雪
It seems every request that used more than 1000 cpu ms will be consider as
high amount of cpu usage.

--
keakon

My blog(Chinese): www.keakon.net
Blog source code: https://bitbucket.org/keakon/doodle/



On Thu, Dec 16, 2010 at 6:38 PM, Matija matija.jerko...@gmail.com wrote:

 Hi, I am using google app engine from beginning. From the time when there
 was high cpu quota tickets. I understand difference between request time,
 cpu and api time.

 In one of my request I am putting two objects in one batch operation to
 datastore (from same entity group in transaction, although this
 is irrelevant for this discussion). I noticed in log these request/cpu/api
 times:

 12-16 02:03AM 35.944   200 198ms 1847cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.813   200 128ms 1828cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.712   200 107ms 1829cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.586   200 145ms 1865cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.524   200 182ms 1810cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.387   200 203ms 1938cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.438   200 151ms 1791cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.298   200 171ms 1829cpu_ms 1700api_cpu_ms

 I would probably ignore there lines if they are not in red color with
 triangle sign to warn me about 'high amount of cpu usage'.

 Reason for this 'high' api usage is index creation. Cost for first object
 is around 1200 api_cpu_ms and for second 500 api_cpu_ms (some changes and
 appstat revealed data).

 First object has 8 indexes where first attribute is list of strings (from 5
 to 11 members, this usage is for 11 members). This 8 indexes are for ability
 to sort on 4 columns (ascending and descending). If I leave this list empty,
 api_cpu_ms is around 330 ms for first object. Of course I must not leave
 list empty if I want this user interface feature.

 I understand everything about this 'issue' and I am fine with 'high' cpu
 usage, because my request time is around 160 ms, top 200 ms.

 Question: Is Google App Engine fine with my 'high' cpu usage ? Will I
 be penalized in any way (new instances, throtle, ...) because of this 'high
 abount of CPU' ?

 If GAE is fine and I will not be penalized why don't you change this
 'coloring' schema to use only request time or maybe request time with (cpu
 time - api time) ?! This red color will make me crazy ;)

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


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



Re: [google-appengine] how can i write Arabic in app engine

2010-12-16 Thread 风笑雪
I suggest you always use UTF-8, not windows-1256.

However, if you insist on using windows-1256, you should encode your unicode
output to str:
self.response.out.write(u'some unicode string'.*encode*('windows-1256'))
or:
self.response.out.write('some windows-1256 string') # don't decode it

--
keakon

My blog(Chinese): www.keakon.net
Blog source code: https://bitbucket.org/keakon/doodle/

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



[google-appengine] Re: google apps wildcard subdomains at godaddy

2010-12-16 Thread Backpack
Just in case, take a look at nick's answer here:

http://stackoverflow.com/questions/838078/working-with-subdomain-in-google-app-engine


On Dec 14, 7:15 am, Roberto Saccon rsac...@gmail.com wrote:
 google apps lets me define wildcard subdomains

 e.g.: http://*.mydomain.com

 but when saving the wildcard entry, a message from Google shows up that I
 also need do adjust at godaddy the CNAME '*' to ghs.google.com

 So I try to do that at the godaddy DNS panel, but here is the end of the
 game, godaddy says that a wildcard CNAME is not allowed.

 So how have others solved this ? Switched to another DNS provider ? Which
 one ? Or did I just so something wrong ?

 --
 Roberto

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



[google-appengine] Re: Using closure with channel API

2010-12-16 Thread Matt H
Bump.

Can we please have this?

On Dec 10, 1:59 am, Mark Jen mark...@gmail.com wrote:
 Hi,

 Has anyone been using the closure library/compiler with GAE channel
 API?

 Can we have the uncompiled file(s) 
 forhttp://talkgadget.google.com/talkgadget/channel.jsso they can be
 compiled together with other JS code using closure compiler?

 And/or is it possible to use goog.net.BrowserChannel or other closure
 library classes to communicate with the GAE channel API backend?

 Thanks!
 Mark

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



[google-appengine] Forcing bulkloader to create missing properties as None

2010-12-16 Thread Justin
How can I force the [csv] bulkloader to create entities with 'None'
property values if the relevent bulk data field is empty, as opposed
to assuming the entity model property is missing ?

I've tried

- using 'import_transform: transform.none_if_empty(str)' in
bulkloader.yaml
- using 'db.StringProperty(default=None)' in the model definition

Neither of which seems to work; what I find is

- empty fields appear as blanks in the dev_appserver datastore viewer
[if I put a model to the datastore with an explicity 'None' field via
the interactive console, it appears as 'None']
- I can't query the empty fields using Query.filter(field = , None)
[the filter just gets ignored]

Thank you.


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



Re: [google-appengine] Forcing bulkloader to create missing properties as None

2010-12-16 Thread 风笑雪
I suggest you to use post_import_function and post_export_function. They
gives you everything you need to manipulate entities.

Also check out these demos:
http://bulkloadersample.appspot.com/

--
keakon

My blog(Chinese): www.keakon.net
Blog source code: https://bitbucket.org/keakon/doodle/



On Thu, Dec 16, 2010 at 9:47 PM, Justin justin.worr...@gmail.com wrote:

 How can I force the [csv] bulkloader to create entities with 'None'
 property values if the relevent bulk data field is empty, as opposed
 to assuming the entity model property is missing ?

 I've tried

 - using 'import_transform: transform.none_if_empty(str)' in
 bulkloader.yaml
 - using 'db.StringProperty(default=None)' in the model definition

 Neither of which seems to work; what I find is

 - empty fields appear as blanks in the dev_appserver datastore viewer
 [if I put a model to the datastore with an explicity 'None' field via
 the interactive console, it appears as 'None']
 - I can't query the empty fields using Query.filter(field = , None)
 [the filter just gets ignored]

 Thank you.


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



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



[google-appengine] Google App Engine Dashboard API or iPhone app?

2010-12-16 Thread Xin Liu
Hi,

Will there be an API that can expose all details we saw from Google App 
Engine Dashboard, so that we can do a lot of interesting things with it. Or 
will there be an iPhone app for Google App Engine Dashboard?

As an iOS/GAE developer I'd really love to see the combination.

Cheers,

Xin

http://www.olivida.com/
http://v2ex.appspot.com/

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



[google-appengine] Storing properties dict as db.Model field

2010-12-16 Thread Justin
What's the approved way of doing this ?

I don't want the overhead of creating a separate db model.

I don't see a db.DictProperty [equivalent of db.ListProperty].

Right now I use a db.TextProperty, and serialise/deserialise the dict
with yaml.

I'm guessing this isn't the 'approved' way of doing things.

Thank you,

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



[google-appengine] Re: Storing properties dict as db.Model field

2010-12-16 Thread Tim Hoffman
I think there is no approved way.

Which method will depend heavily on what you are sticking in your dict, how 
big it is etc..

I personally pickle dicts and stick them in a BlobProperty ;-)

T


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



Re: [google-appengine] Storing properties dict as db.Model field

2010-12-16 Thread Sahid Orentino Ferdjaoui
Hello Justin,

You can you refer to jaikuengine:
  
http://code.google.com/p/jaikuengine/source/browse/trunk/common/properties.py?r=153#62


--Sahid

On Thu, Dec 16, 2010 at 3:57 PM, Justin justin.worr...@gmail.com wrote:
 What's the approved way of doing this ?

 I don't want the overhead of creating a separate db model.

 I don't see a db.DictProperty [equivalent of db.ListProperty].

 Right now I use a db.TextProperty, and serialise/deserialise the dict
 with yaml.

 I'm guessing this isn't the 'approved' way of doing things.

 Thank you,

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



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



Re: [google-appengine] This request used a high amount of CPU and may soon exceed its quota - 2010/2011

2010-12-16 Thread Robert Kluin
Submit an issue and post the issue number here.

Having the high-cpu requests highlighted is nice, but I agree with
you about high-latency requests being a bigger concern.



Robert




On Thu, Dec 16, 2010 at 05:38, Matija matija.jerko...@gmail.com wrote:
 Hi, I am using google app engine from beginning. From the time when there
 was high cpu quota tickets. I understand difference between request time,
 cpu and api time.
 In one of my request I am putting two objects in one batch operation to
 datastore (from same entity group in transaction, although this
 is irrelevant for this discussion). I noticed in log these request/cpu/api
 times:
 12-16 02:03AM 35.944   200 198ms 1847cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.813   200 128ms 1828cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.712   200 107ms 1829cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.586   200 145ms 1865cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.524   200 182ms 1810cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.387   200 203ms 1938cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.438   200 151ms 1791cpu_ms 1700api_cpu_ms
 12-16 02:03AM 35.298   200 171ms 1829cpu_ms 1700api_cpu_ms
 I would probably ignore there lines if they are not in red color with
 triangle sign to warn me about 'high amount of cpu usage'.
 Reason for this 'high' api usage is index creation. Cost for first object is
 around 1200 api_cpu_ms and for second 500 api_cpu_ms (some changes and
 appstat revealed data).
 First object has 8 indexes where first attribute is list of strings (from 5
 to 11 members, this usage is for 11 members). This 8 indexes are for ability
 to sort on 4 columns (ascending and descending). If I leave this list empty,
 api_cpu_ms is around 330 ms for first object. Of course I must not leave
 list empty if I want this user interface feature.
 I understand everything about this 'issue' and I am fine with 'high' cpu
 usage, because my request time is around 160 ms, top 200 ms.
 Question: Is Google App Engine fine with my 'high' cpu usage ? Will I
 be penalized in any way (new instances, throtle, ...) because of this 'high
 abount of CPU' ?
 If GAE is fine and I will not be penalized why don't you change this
 'coloring' schema to use only request time or maybe request time with (cpu
 time - api time) ?! This red color will make me crazy ;)

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


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



[google-appengine] Re: deploy restlet onto gae with error

2010-12-16 Thread Richard Berger
I was able to solve this problem.  There were a few steps, but
basically it comes down to updating libraries and modifying the
web.xml file.

Phase 1...
1. Replace the 7 jar files in WEB-INF/lib
(org.codehaus.jackson.core.jar, org.codehause.jackson.mapper.jar,
org.restlet.ext.gwt.jar, org.restlet.ext.jackson.jar,
org.restlet.ext.servlet.jar, org.restlet.ext.xml.jar, org.restlet.jar)
with newer versions I used the ones in restlet version 2.1 Milestone
1.  (If in Eclipse make sure the build path gets updated to use the
new jars).  These jars are available in the GAE download.
2. Replace the one jar in the lib directory (org.restlet.jar) with the
2.1 Milestone 1 version.  This jar is in the GWT download.

Phase 2
1. Change the web.xml file, as it currently refers to a class that no
longer exists (GwtShellServletWrapper).  Here's the relevant snippet.
servlet
servlet-nameadapter/servlet-name
!--  
servlet-classorg.restlet.ext.gwt.GwtShellServletWrapper/
servlet-class --

servlet-classorg.restlet.ext.servlet.ServerServlet/servlet-class
init-param
param-nameorg.restlet.application/param-name
param-
valueorg.restlet.example.gae.serialization.server.TestServerApplication/
param-value
/init-param
/servlet

And then it worked.

RB


On Dec 6, 5:57 pm, dadada ytbr...@gmail.com wrote:
 this is the console log.

 ompiling module org.restlet.example.gae.serialization.Serialization
    Validating newly compiled units
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/logging/impl/
 DevModeLoggingFixes.java'
          [ERROR] Line 58: The method getName() is undefined for the
 type Logger
          [ERROR] Line 59: The method getName() is undefined for the
 type Logger
          [ERROR] Line 76: The method setUseParentHandlers(boolean) is
 undefined for the type Logger
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/logging/impl/
 LoggerImplRegular.java'
          [ERROR] Line 73: The method getLevel() is undefined for the
 type Logger
          [ERROR] Line 109: The method intValue() is undefined for the
 type Level
          [ERROR] Line 109: The method intValue() is undefined for the
 type Level
          [ERROR] Line 131: The method log(Level, String) in the type
 Logger is not applicable for the arguments (LogRecord)
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/user/client/rpc/core/
 java/util/logging/Level_CustomFieldSerializer.java'
          [ERROR] Line 38: The method parse(String) is undefined for
 the type Level
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/user/client/rpc/core/
 java/util/logging/LogRecord_CustomFieldSerializer.java'
          [ERROR] Line 50: The method parse(String) is undefined for
 the type Level
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/emul/java/util/logging/
 Handler.java'
          [ERROR] Line 43: The method intValue() is undefined for the
 type Level
          [ERROR] Line 43: The method intValue() is undefined for the
 type Level
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/emul/java/util/logging/
 LogManager.java'
          [ERROR] Line 34: The method setLevel(Level) is undefined for
 the type LogManager.RootLogger
          [ERROR] Line 57: The method getName() is undefined for the
 type Logger
          [ERROR] Line 77: The method getName() is undefined for the
 type Logger
          [ERROR] Line 80: The method getName() is undefined for the
 type Logger
          [ERROR] Line 81: The method setParent(Logger) is undefined
 for the type Logger
       [ERROR] Errors in 'file:/Users/ytbryan/Documents/workspace/
 evogaws/src/org/restlet/example/common/ContactResource.java'
          [ERROR] Line 3: The import org.restlet.resource cannot be
 resolved
          [ERROR] Line 4: The import org.restlet.resource cannot be
 resolved
          [ERROR] Line 5: The import org.restlet.resource cannot be
 resolved
          [ERROR] Line 12: Get cannot be resolved to a type
          [ERROR] Line 15: Put cannot be resolved to a type
          [ERROR] Line 18: Delete cannot be resolved to a type
    [ERROR] Errors in 'file:/Users/ytbryan/Documents/workspace/evogaws/
 src/org/restlet/example/gae/serialization/client/Serialization.java'
       [ERROR]  Internal compiler error
 java.lang.NoSuchMethodError:
 com.google.gwt.user.rebind.rpc.SerializableTypeOracleBuilder.setLogOutputSt 
 ream(Ljava/
 io/OutputStream;)V
         at
 org.restlet.rebind.ClientProxyGenerator.generateSerializers(ClientProxyGene 
 rator.java:
 563)
         

[google-appengine] Re: Reverse DNS lookup, Google Maps servers

2010-12-16 Thread jlancelot
Hello!

I have exactly the same problem! Has someone got a solution?

Thanks a lot!!!

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



[google-appengine] App Redirecting to Zimbio

2010-12-16 Thread Iambeaker
Excuse my ignorance, first time poster, first time Google App
Developer...

I created an app but when I access it from my boss's computer (and
about 10 other computers) it redirects to zimbio.com.  However, I am
able to access it from my personal computer and work computer.

I do not have any code to allow the redirection.  Does the user need
to sign into their Google account to access this app or do they have
to follow some other workaround?

I would like to be able to give people the app website, and have them
be able to use it without them needing to sign into anything.

Any thoughts?

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



[google-appengine] Re: Newbie Q - Public IP address_DNS Server?

2010-12-16 Thread jlancelot
Hello everyone,

I come back on this subject because I need to set a public IP on my GAE. 
I need to call a Web Service from the server but this web service need a IP 
to authorize anyone to call it. When I lauch GAE in local, there's no 
problem because I can identify my IP.

Is there a solution to set a public IP on a Google App Engine?

Thanks a lot for your answer!

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



[google-appengine] problem using TextProperty

2010-12-16 Thread feynmansbastard

hello,

I'm running GAE 1.4 and python 2.5.2

I built an application on the development server which worked fine.
It's a simple application that takes data from external clients, puts
it in the datastore, and then allows users to view it on the web.

One of my fields in this model I recently switched from a
StringProperty to a TextProperty to allow larger inputs.

Since I have done this, I have not been able to get this field to
persist any data.   When I try to access this data in django or even
directly through a webbrowser, it's no longer present.

here is my model

class Request(db.Model):
   result = db.TextProperty()

class NewRequest(webapp.RequestHandler):
def post(self):
   r = Request()
   r.result = self.request.get('result')
   r.put()
   self.response.out.write(r.key())
   # in the development console regardless whether result is
string or Text I can see result here
   logging.info(request: +r.result);

# call with http://localhost:8080/test?key=keyprovidedaftersubmittingabove
class test(webapp.RequestHandler):
def get(self):
 r = Request.get(self.request.get('key'))
 # in the console I can see this result if the type is
String, but not when TextProperty is used
 logging.info(request: +r.result);

what am I doing wrong? I can't find any references to anybody with
this problem, so it must be something really simple.




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



[google-appengine] Re: GAE/J and Maven

2010-12-16 Thread Mike!
Hey Patrick,

Check out the GAE Maven plugin (http://code.google.com/p/maven-gae-
plugin/)...that's what I use and it's easy :)

don't forget to do mvn gae:unpack after you run mvn clean

Mike!

On Dec 14, 10:37 pm, Patrick Twohig patr...@namazustudios.com wrote:
 Hi,

 I'm having some trouble getting a GAE/J build to work with Maven.  I've
 added the appropriate Project Nature in my pom.xml and when I open it up in
 eclipse, I am getting the following error.  I was curious if anybody else
 had the same error and would have any insight as to how to solve it.

 The App Engine SDK '/~/.m2/repository/com/google/appengine' on the
 project's build path is not valid - Google App Engine Problem

 Thanks,
 Patrick.

 --
 Patrick H. Twohig.

 Namazu Studios
 P.O. Box 34161
 San Diego, CA 92163-4161

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



[google-appengine] Google App engine how does the html knows which entry point to invoke?

2010-12-16 Thread Kenneth Phang

Hi guys,

Anyone know how does the html static with the Id knows which entry point 
to invoke within the web application ?


Regards,
KP

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



[google-appengine] Re: deploy restlet onto gae with error

2010-12-16 Thread Richard Berger
Ran into the same problem.  Am running restlet M1.  Just wondering if
you already solved it - was about to start working on this.

Thanks,
RB

On Dec 6, 5:57 pm, dadada ytbr...@gmail.com wrote:
 this is the console log.

 ompiling module org.restlet.example.gae.serialization.Serialization
    Validating newly compiled units
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/logging/impl/
 DevModeLoggingFixes.java'
          [ERROR] Line 58: The method getName() is undefined for the
 type Logger
          [ERROR] Line 59: The method getName() is undefined for the
 type Logger
          [ERROR] Line 76: The method setUseParentHandlers(boolean) is
 undefined for the type Logger
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/logging/impl/
 LoggerImplRegular.java'
          [ERROR] Line 73: The method getLevel() is undefined for the
 type Logger
          [ERROR] Line 109: The method intValue() is undefined for the
 type Level
          [ERROR] Line 109: The method intValue() is undefined for the
 type Level
          [ERROR] Line 131: The method log(Level, String) in the type
 Logger is not applicable for the arguments (LogRecord)
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/user/client/rpc/core/
 java/util/logging/Level_CustomFieldSerializer.java'
          [ERROR] Line 38: The method parse(String) is undefined for
 the type Level
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/user/client/rpc/core/
 java/util/logging/LogRecord_CustomFieldSerializer.java'
          [ERROR] Line 50: The method parse(String) is undefined for
 the type Level
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/emul/java/util/logging/
 Handler.java'
          [ERROR] Line 43: The method intValue() is undefined for the
 type Level
          [ERROR] Line 43: The method intValue() is undefined for the
 type Level
       [ERROR] Errors in 'jar:file:/Users/ytbryan/Documents/workspace/
 google/gwt-2.1.0/gwt-user.jar!/com/google/gwt/emul/java/util/logging/
 LogManager.java'
          [ERROR] Line 34: The method setLevel(Level) is undefined for
 the type LogManager.RootLogger
          [ERROR] Line 57: The method getName() is undefined for the
 type Logger
          [ERROR] Line 77: The method getName() is undefined for the
 type Logger
          [ERROR] Line 80: The method getName() is undefined for the
 type Logger
          [ERROR] Line 81: The method setParent(Logger) is undefined
 for the type Logger
       [ERROR] Errors in 'file:/Users/ytbryan/Documents/workspace/
 evogaws/src/org/restlet/example/common/ContactResource.java'
          [ERROR] Line 3: The import org.restlet.resource cannot be
 resolved
          [ERROR] Line 4: The import org.restlet.resource cannot be
 resolved
          [ERROR] Line 5: The import org.restlet.resource cannot be
 resolved
          [ERROR] Line 12: Get cannot be resolved to a type
          [ERROR] Line 15: Put cannot be resolved to a type
          [ERROR] Line 18: Delete cannot be resolved to a type
    [ERROR] Errors in 'file:/Users/ytbryan/Documents/workspace/evogaws/
 src/org/restlet/example/gae/serialization/client/Serialization.java'
       [ERROR]  Internal compiler error
 java.lang.NoSuchMethodError:
 com.google.gwt.user.rebind.rpc.SerializableTypeOracleBuilder.setLogOutputSt 
 ream(Ljava/
 io/OutputStream;)V
         at
 org.restlet.rebind.ClientProxyGenerator.generateSerializers(ClientProxyGene 
 rator.java:
 563)
         at
 org.restlet.rebind.ClientProxyGenerator.generateProxy(ClientProxyGenerator. 
 java:
 429)
         at
 org.restlet.rebind.ClientProxyGenerator.generate(ClientProxyGenerator.java:
 208)
         at
 com.google.gwt.dev.javac.StandardGeneratorContext.runGenerator(StandardGene 
 ratorContext.java:
 427)
         at
 com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:
 39)
         at com.google.gwt.dev.shell.StandardRebindOracle
 $Rebinder.tryRebind(StandardRebindOracle.java:115)
         at com.google.gwt.dev.shell.StandardRebindOracle
 $Rebinder.rebind(StandardRebindOracle.java:58)
         at
 com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.j 
 ava:
 161)
         at
 com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.j 
 ava:
 150)
         at com.google.gwt.dev.Precompile
 $DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(Precompile.ja 
 va:
 345)
         at
 com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesUsingRe 
 binds(WebModeCompilerFrontEnd.java:
 106)
         at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox
 $CompilerImpl.process(AbstractCompiler.java:254)
         at 

[google-appengine] Memcache broken with Always On?

2010-12-16 Thread Tom Phillips
I posted on this this in the java forum, but no traction there and I
suspect it's not java specific.

Memcache entries seem to be being scoped to an instance, not global.
After a cache entry is made, it can be retrieved fine for any request
that goes to that same instance. Any request to one of the other
instances never finds the entry in the cache.

Bug in Always On? Bug in 1.4.0? Design intent?

Thanks,
Tom

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



[google-appengine] Re: automate user input in bulkloader's appcfg.py?

2010-12-16 Thread Matthew Blain
This should help:
http://groups.google.com/group/google-appengine/browse_thread/thread/86457b3a95e30a5a
--Matthew

On Dec 14, 11:02 am, GK guruko...@gmail.com wrote:
 Hi,

 I want to write a python script which will automate the bulkloading
 process by writing a csv file, then running appcfg.py by using a
 command like os.system(appcfg.py ... )

 The problem is I am having trouble automating user input when
 appcfg.py asks for authentication. I tried writing a text file called
 input.txt with the authentication details (it looked like this:
 myem...@gmail.com
 MyPassword

 and then running appcfg.py  input.txt and this worked for the email,
 but not for the password. Would it be possible to modify appcfg.py to
 take the username and password as arguments, so that I could run the
 script like this: appcfg.py username=myem...@gmail.com
 pass=MyPassword ? Or could I simply hardcode the username/password
 in appcfg.py?  What file would I have to modify in order to do this?

 Is there any easier way in python to automate user input?

 Any help would be appreciated.

 Thanks

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



Re: [google-appengine] Memcache broken with Always On?

2010-12-16 Thread Ikai Lan (Google)
This is definitely not a design intent. Can you post any code or
reproduction steps?

--
Ikai Lan
Developer Programs Engineer, Google App Engine
Blogger: http://googleappengine.blogspot.com
Reddit: http://www.reddit.com/r/appengine
Twitter: http://twitter.com/app_engine



On Wed, Dec 15, 2010 at 7:42 PM, Tom Phillips tphill0...@gmail.com wrote:

 I posted on this this in the java forum, but no traction there and I
 suspect it's not java specific.

 Memcache entries seem to be being scoped to an instance, not global.
 After a cache entry is made, it can be retrieved fine for any request
 that goes to that same instance. Any request to one of the other
 instances never finds the entry in the cache.

 Bug in Always On? Bug in 1.4.0? Design intent?

 Thanks,
 Tom

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



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



[google-appengine] Re: This request used a high amount of CPU and may soon exceed its quota - 2010/2011

2010-12-16 Thread Darien Caldwell
The only penalty is that requests that take more than 1000 mS will not
benefit from automatic scaling. And you'll use more quota, obviously.

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



[google-appengine] Re: Memcache broken with Always On?

2010-12-16 Thread Tom Phillips
Certainly Ikai,

Firstly, some of my logs (url and classes slightly modified to hide
some app details) that show how only the same instance picks up the
entry. I'm determining and logging the instance using a UUID that I
assign to a static class variable. The key for the cache lookup is
passed in as a request query parameter to the followup requests.

Here are two runs of the code to follow. In each, the bottom log is
the cache entry being added. The next two are subsequent requests that
both look for the entry. The entry is only found when then instance
matches, regardless of which follow-up request.

This first run shows how the bottom instance is different from the one
that services both followup requests. So they don't find the entry:

50.16.21.20 - - [16/Dec/2010:11:19:40 -0800] GET /processg?key=619001
W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet:
Message NOT found in cache for 619001 - building

50.16.21.20 - - [16/Dec/2010:11:19:35 -0800] POST /startreminder?
key=619001pname=Optimal+Physio+Devatime=Friday+December+17%2C
+2%3A18+PMrlang=enrvoice=woman
W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: LOOKING IN
CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: Message NOT
found in cache for 619001 - building

0.1.0.2 - - [16/Dec/2010:11:19:08 -0800] POST /tasks/voicereminder
HTTP/1.1 200 105 http://cliniconexdev.appspot.com/cron/
processreminders?state=new
W 12-16 11:19AM 08.581 com.mycode.CallPhoneAdapter doSend: CACHING
message from instance: e4d5452e-c744-4333-b1d4-38eb55f97445
W 12-16 11:19AM 08.585 com.mycode.CallPhoneAdapter doSend: Adding to
cache with key:619001
W 12-16 11:19AM 08.604 com.mycode.CallPhoneAdapter doSend:
Successfully cached reminder 619001

In this second run, the first followup request hits the same instance
that added it, and finds it. The second isn't so lucky, hitting a
different instance

184.73.13.122 - - [16/Dec/2010:11:22:39 -0800] GET /processg?
key=620001
W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet:
LOOKING IN CACHE on Instance: ff6ef71c-a017-4316-aa81-e77db741702b
W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet:
Message NOT found in cache for 620001 - building

204.236.222.67 - - [16/Dec/2010:11:22:28 -0800] POST /startreminder?
key=620001pname=Optimal+Physio+Devatime=Friday+December+17%2C
+2%3A18+PMrlang=enrvoice=woman HTTP/1.1 200 683 -
CallProxy/0.7,gzip(gfe) cliniconexdev.appspot.com ms=24 cpu_ms=23
api_cpu_ms=0 cpm_usd=0.000805
W 12-16 11:22AM 28.127 com.mycode.CallMLServlet doGet: LOOKING IN
CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
W 12-16 11:22AM 28.134 com.mycode.CallMLServlet doGet: Message for
entry 620001 FOUND in cache - using

0.1.0.2 - - [16/Dec/2010:11:22:06 -0800] POST /tasks/voicereminder
HTTP/1.1 200 105 http://cliniconexdev.appspot.com/cron/
processreminders?state=new AppEngine-Google;
(+http://code.google.com/appengine) cliniconexdev.appspot.com
ms=506 cpu_ms=1664 api_cpu_ms=941 cpm_usd=0.046287 queue_name=reminder-
queue task_name=17196018701084092971
W 12-16 11:22AM 05.964 com.mycode.CallPhoneAdapter doSend: CACHING
message from instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1
W 12-16 11:22AM 05.965 com.mycode.CallPhoneAdapter doSend: Adding to
cache with key:620001
W 12-16 11:22AM 05.984 com.mycode.CallPhoneAdapter doSend:
Successfully cached reminder 620001

Here is the code that creates the cache (if required) and adds the
entry in the first request:
Cache cache = null;

log.warning(CACHING message from instance:  + jvmId);

try {
   cache = CacheManager.getInstance().getCache(cache_reminderVoice);
 } catch (final Exception e) {
log.fine(Cache cache_reminderVoice not yet created);
}

if (cache == null) {
  try {
 cache = CacheManager.getInstance().getCacheFactory()
.createCache(Collections.emptyMap());
 CacheManager.getInstance().registerCache(cache_reminderVoice,
cache);
  } catch (final CacheException e) {
log.warning(Could not create/register cache
cache_reminderVoice: 
+ e.getMessage());
  }
}

try {
  // Put the value into the cache.
   log.warning(Adding to cache with key: +
reminder.getKeyId().toString());
   if (parts == null) {
  log.warning(H..parts was null);
   }
   cache.put(reminder.getKeyId().toString(), parts);

   // Get the value from the cache just to test it is there
   final CacheEntry entry = cache.getCacheEntry(reminder.getKeyId()
  .toString());
   if (entry != null) {
log.warning(Successfully cached reminder  +
reminder.getKeyId());
   } else {
log.warning(Could not get cached voice message parts);
}
 } catch (final Exception e) {
  log.warning(FAILED to cache voice message parts:  +
e.getMessage());
 }

Here is the code (same in both request handlers) that 

[google-appengine] Instance scaling with problems

2010-12-16 Thread Tomas Alaeus
Due to lack of information about when App Engine starts new instances,
how it affect performance and side effects of scaling up I have here
made a short summary from my own experiences so others won't have to
find it out the hard way.

I still don't have any long experience with App Engine, but I see it
as a very promision product. The problems I see with it are mostly
associated with how the scaling of instances works. Mainly because NO
information exists on how it works. Not even the support (by mail)
seem to know how it works.

I've tried to split this post into three parts for readability. Sorry
for the wall of text.

__

First some basic facts on the non-billing (free) and billing enabled
versions.

The free version can start at most 30 instances, and the billing
enabled one have no hard limit. However, it got a soft limit which
starts at 30 and is incremented by 10 when needed. When the
application reaches its soft cap of instances and stays there for
about 10-15 minutes, and it still lacks performance, then the soft cap
is incremented by 10. If it still needs more it will be incremented by
10 after a few minutes, and so on.

This all looks fine (although it isn't mentioned anywhere, which lead
me to bad decisions). What is worse is some sort of minimum number of
instances, which I will refer to as min instances, which App Engine
will try to start up before activly forwarding the requests to hot
instances.

After a lot of testing, my results say that min instances starts on 1,
and is incremented by 1 for every soft cap increment. That is, this
value will be about a tenth of the soft cap.

__

What is the effect of this min instances more exactly?

If it is set to 4 then if there is/are: 0 instance started: An
instance starts, user feel a cold start 1 instance started: 25% of
user getting an hot instance, 75% of instance startup. 2 instances
started: 50/50% of getting an hot or cold instance. 3 instances
started: 75% of getting an hot... 4+ instances started: Now it behaves
as everyone believes.

Apart from being strange and not documented, there are some mayor
issues with this:

* It is not reverted! Even if the application is idle for a week, the
min instances are not lowered.

* Warmup requests is not triggered for the first min instances
instance startups.

* Always on starts only exactly 3 instance, if you sometime earlier
have boosted your min instance past 3 then users will still notice
cold starts, even if your application have been idle for the past
hours!

__

My story:

I didn't know about the soft cap, and hit the roof pretty quickly with
my stress tests. I aborted the tests then and asked support why it
didn't start more instances. They just said I should have the test run
longer. And so I did. I increased the soft cap to 100 instances or
something and felt that the service would handle anything that was
thrown at it.

Now when my application have gone live the first users will more or
less all be handeled by cold starts. It is always hard to predict the
number of users, but in the worst case the first users will get scared
away because of the performance issues and also warn other users about
it.

If by any means a Google employee knows about this issue, and knows
how to revert the min instances (without interrupting the service)
then please notify me!

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



[google-appengine] Re: wait_any() returned None

2010-12-16 Thread jay
I've got at least one of these this morning to.

Anything I need to worry about?

On Dec 9, 5:45 pm, Pranav Prakash pra...@gmail.com wrote:
 In one of my most expensive (in terms of calculations and datastore
 access) calls, I regularly get DeadlineExceededError. I am okay with
 it.
 Just now, I noticed the following in the error log. This same log was
 there for like 100 times and then DeadlineExceededError. I am pretty
 sure there is no such log in my app. Can someone throw a light on this ?

 wait_any() returned None
 D12-08 10:07PM 42.476
 wait_any() returned None
 D12-08 10:07PM 42.476
 wait_any() returned None

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



Re: [google-appengine] App Redirecting to Zimbio

2010-12-16 Thread Robert Kluin
I'm pretty sure Google is not just randomly sending your users to some
other site.   ;) Maybe you've got some bad DNS entries, or need to
switch DNS providers.

You app can be served without forcing users to log into anything.
That is totally up to you.
http://code.google.com/appengine/docs/python/config/appconfig.html#Requiring_Login_or_Administrator_Status


Robert





On Wed, Dec 15, 2010 at 17:53, Iambeaker iambeaker...@gmail.com wrote:
 Excuse my ignorance, first time poster, first time Google App
 Developer...

 I created an app but when I access it from my boss's computer (and
 about 10 other computers) it redirects to zimbio.com.  However, I am
 able to access it from my personal computer and work computer.

 I do not have any code to allow the redirection.  Does the user need
 to sign into their Google account to access this app or do they have
 to follow some other workaround?

 I would like to be able to give people the app website, and have them
 be able to use it without them needing to sign into anything.

 Any thoughts?

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



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



Re: [google-appengine] how can i write Arabic in app engine

2010-12-16 Thread fatimah mujallid
Ok this code works great:
self.response.out.write(u'السلام عليكم'.encode('utf-8'))
but when i use an html page instead of a string just like this:
self.response.out.write(template.render(u'test.html'.encode('utf-8')))
it displays arabic characters rabish
in the html page i tried to write this:
meta http-equiv=Content-Type content=text/html; charset=utf-8
and tried with out it arabic characters rabish
both displays
2010/12/16 风笑雪 kea...@gmail.com

 I suggest you always use UTF-8, not windows-1256.

 However, if you insist on using windows-1256, you should encode your
 unicode output to str:
 self.response.out.write(u'some unicode string'.*encode*('windows-1256'))
 or:
 self.response.out.write('some windows-1256 string') # don't decode it

 --
 keakon

 My blog(Chinese): www.keakon.net
 Blog source code: https://bitbucket.org/keakon/doodle/

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


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



Re: [google-appengine] how can i write Arabic in app engine

2010-12-16 Thread fatimah mujallid
Ok this code works great:
self.response.out.write(u'
السلام عليكم'.encode('utf-8'))
but when i use an html page instead of a string just like this:
self.response.out.write(template.render(u'test.html'.encode('utf-8')))
it displays arabic characters rabish
in the html page i tried to write this:
meta http-equiv=Content-Type content=text/html; charset=utf-8
and tried with out it
both displays arabic characters rabish


2010/12/17 fatimah mujallid f.mujal...@gmail.com

 Ok this code works great:
 self.response.out.write(u'السلام عليكم'.encode('utf-8'))
 but when i use an html page instead of a string just like this:
 self.response.out.write(template.render(u'test.html'.encode('utf-8')))
 it displays arabic characters rabish
 in the html page i tried to write this:
 meta http-equiv=Content-Type content=text/html; charset=utf-8
 and tried with out it arabic characters rabish
 both displays
 2010/12/16 风笑雪 kea...@gmail.com

 I suggest you always use UTF-8, not windows-1256.

 However, if you insist on using windows-1256, you should encode your
 unicode output to str:
 self.response.out.write(u'some unicode string'.*encode*('windows-1256'))
 or:
 self.response.out.write('some windows-1256 string') # don't decode it

 --
 keakon

 My blog(Chinese): www.keakon.net
 Blog source code: https://bitbucket.org/keakon/doodle/

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



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



Re: [google-appengine] Google App engine how does the html knows which entry point to invoke?

2010-12-16 Thread Robert Kluin
Hi KP,
  I am not sure what you are asking, but these docs might be useful:
   Python:
 
http://code.google.com/appengine/docs/python/config/appconfig.html#Static_File_Handlers
   Java:
 
http://code.google.com/appengine/docs/java/config/appconfig.html#Static_Files_and_Resource_Files

  Static files are handled like, well, static files.  You specify the
path(s) for your static content, then when a user requests one of
those paths the static content is served.



Robert





On Thu, Dec 16, 2010 at 10:45, Kenneth Phang visualbookma...@gmail.com wrote:
 Hi guys,

 Anyone know how does the html static with the Id knows which entry point to
 invoke within the web application ?

 Regards,
 KP

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



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



Re: [google-appengine] Re: max_backoff_seconds - working?

2010-12-16 Thread Nicholas Verne
Vlad,

Your case is a bit of an edge case for us. At the time your task is
dispatched, do you have any other tasks still in the queue scheduled
to execute within the next twenty seconds? If not, your queue is
considered empty and will next be checked for tasks to dispatch in
twenty seconds time. If, during this interval, your task that was
running now fails, the task's retry won't be able to run until after
this twenty seconds has elapsed.

If there were other tasks in the queue scheduled to execute during the
twenty seconds after your task's eta, you might find your task meeting
its 7 second retry backoff more precisely.

Nick Verne

On Thu, Dec 16, 2010 at 2:58 PM, vlad vlad.troyan...@gmail.com wrote:
 Hi Nick,

 Task schedule delays (best effort) are expected but this is not the case.
 Take a look at the log excerpt below which shows a task with 6 reties.
 Retries are perfectly timed on flat 20sec back off schedule. In other words
 I have never seen task reties follow what I put in my queue.yaml. Instead
 they *always* do 20 sec backoff.
 Another fact that might help is this has not changed at all with SDK 1.4.0
 release. This picture was exactly the same before the release.

 My queue.yaml

 queue:
 - name: default
   rate: 20/s
   bucket_size: 100
   retry_parameters:
     task_age_limit: 120s
     min_backoff_seconds: 1
     max_backoff_seconds: 7


 12-14 11:56PM 14.864 /_ah/queue/deferred 500 71ms 63cpu_ms 16api_cpu_ms 0kb
 AppEngine-Google; (+http://code.google.com/appengine)

 See details

 0.1.0.2 - - [14/Dec/2010:23:56:14 -0800] POST /_ah/queue/deferred HTTP/1.1
 500 124 http://ace-poker.appspot.com/_ah/queue/deferred; AppEngine-Google;
 (+http://code.google.com/appengine) ace-poker.appspot.com ms=71 cpu_ms=63
 api_cpu_ms=17 cpm_usd=0.001856 queue_name=default
 task_name=9640193529655285671

 I 12-14 11:56PM 14.867 X-Appengine-Taskretrycount:6,
 X-Appengine-Queuename:default, X-Appengine-Taskname:9640193529655285671,
 X-Appengine-Current-Namespace:

 I 12-14 11:56PM 14.868 running task: {'player':
 'aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM', 'action': 'force-fold', 'who':
 'dealer', 'type': 'action', 'hand-snapshot': u'flop-50

 I 12-14 11:56PM 14.921
 Hand=aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw, state=playing,
 table=Medes (aglhY2UtcG9rZXJyDQsSBVRhYmxlGPODOAw)

 I 12-14 11:56PM 14.921 pre-action-dealer (force-fold)

 12-14 11:56PM 14.864 /_ah/queue/deferred 500 71ms 63cpu_ms 16api_cpu_ms 0kb
 AppEngine-Google; (+http://code.google.com/appengine)

 See details

 0.1.0.2 - - [14/Dec/2010:23:56:14 -0800] POST /_ah/queue/deferred HTTP/1.1
 500 124 http://ace-poker.appspot.com/_ah/queue/deferred; AppEngine-Google;
 (+http://code.google.com/appengine) ace-poker.appspot.com ms=71 cpu_ms=63
 api_cpu_ms=17 cpm_usd=0.001856 queue_name=default
 task_name=9640193529655285671

 I 12-14 11:56PM 14.867

 X-Appengine-Taskretrycount:6, X-Appengine-Queuename:default,
 X-Appengine-Taskname:9640193529655285671, X-Appengine-Current-Namespace:

 I 12-14 11:56PM 14.868

 running task: {'player': 'aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM', 'action':
 'force-fold', 'who': 'dealer', 'type': 'action', 'hand-snapshot':
 u'flop-50-chj8szUM', 'hand':
 'aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw'}

 I 12-14 11:56PM 14.921

 Hand=aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw, state=playing,
 table=Medes (aglhY2UtcG9rZXJyDQsSBVRhYmxlGPODOAw)

 I 12-14 11:56PM 14.921

 pre-action-dealer (force-fold)

 I 12-14 11:56PM 14.921

 pre-action: (force-fold) pot=50 round=flop board=[u'Td', u'Ac', u'Ad']
 current_bet=0 next_to_act=0
 players:
   aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM: bet=0 total=10 acted=False
 in-game=True
   aglhY2UtcG9rZXJyDgsSBlBsYXllchispDUM: bet=0 total=10 acted=False
 in-game=True

 I 12-14 11:56PM 14.928

 notify-multi: ['hjygzgM-33', 'hixwjgM-33', 'hiZyjgM-33', 'hiLhTUM-33',
 'hispDUM-33', 'hj8szUM-33', 'bserver-33']

 I 12-14 11:56PM 14.928

   {'pot': 50L, 'who': 'dealer', 'hand':
 'aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw', 'player':
 'aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM', 'action': 'force-fold', 'type':
 'action', 'stack': 1685L, 'hand-snapshot': u'flop-50-chj8szUM'}

 D 12-14 11:56PM 14.928

 hand action: {'pot': 50L, 'who': 'dealer', 'hand':
 datastore_types.Key.from_path(u'Table', 918003L, u'Hand', 330015L,
 _app=u'ace-poker'), 'player': datastore_types.Key.from_path(u'Player',
 875004L, _app=u'ace-poker'), 'action': 'force-fold', 'type': 'action',
 'stack': 1685L, 'hand-snapshot': 'flop-50-chj8szUM'}

 I 12-14 11:56PM 14.928

 hand = aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw, betting
 finished, round = flop

 I 12-14 11:56PM 14.929

 showdown among 4 players

 E 12-14 11:56PM 14.931

 datastore_types.Key.from_path(u'Player', 926001L, _app=u'ace-poker')
 Traceback (most recent call last):
   File
 /base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py,
 line 517, in __call__
 handler.post(*groups)
   File
 

[google-appengine] Custom Domain

2010-12-16 Thread david
Hi,

I configured my appengine app with my domain www.mydomain.com.co, but
it doesnt works just with mydomain.com.co (without subdomain).

There is a restriction? What could be wrong?

Thx a lot!

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



[google-appengine] Re: Custom Domain

2010-12-16 Thread Tim Hoffman
You can't do CNAME for bare domains

Some DNS providers have the facility of allowing you to specify a redirect 
from the bare domain to you www.

Rgds

T 

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



[google-appengine] Re: Appengine's Turkey problem

2010-12-16 Thread Kaan Soral
Shouldn't someone solve this problem?

On Dec 15, 6:33 am, Kaan Soral kaanso...@gmail.com wrote:
 It took me a long time to figure out that the reason of my domain
 name(www.something.com) on Appengine not working is that Youtube IP's
 are banned in Turkey.

 So when i ping my domain, It can't reach ghs.l.google.com

 Should Google use seperate IP's for domain related things or should we
 forget about Turkey if we use Appengine?

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



Re: [google-appengine] Re: Newbie Q - Public IP address_DNS Server?

2010-12-16 Thread A. Stevko
Nope - the best I can think of  ghs.google.com  although that is where
inbound traffic is going to and not necessarily where url fetch hits
originate from. I can't imaging all the traffic from the url fetch pool
coming from any single ip address.

FWIW, A web service whitelisting an ip address is poor security because it
is relatively easy for public relays to see where the traffic is coming from
and then spoof hits to come from those sources. It is much better to sign
your web service requests with a key like AWS SimpleDB does.


On Thu, Dec 16, 2010 at 6:52 AM, jlancelot julien.lance...@gmail.comwrote:

 Hello everyone,

 I come back on this subject because I need to set a public IP on my GAE.
 I need to call a Web Service from the server but this web service need a IP
 to authorize anyone to call it. When I lauch GAE in local, there's no
 problem because I can identify my IP.

 Is there a solution to set a public IP on a Google App Engine?

 Thanks a lot for your answer!

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


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



[google-appengine] Re: Appengine's Turkey problem

2010-12-16 Thread Tim Hoffman
Hi

I don't really believe it is solvable by google.

If they add a new pool of addresses for appengine, and some apps turn up on 
appengine that 
any particular government doesn't like, they will block access to that range 
and you are
back in the same situation.

All anyone can do is educate and lobby their government.

Rgds

Tim Hoffman

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



[google-appengine] Re: Using closure with channel API

2010-12-16 Thread Moishe
Publishing the uncompiled files is in the works! I know it'll be useful for 
those of you using closure (it could save a lot of code size). No definite 
time line but I'm working on it now.

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



[google-appengine] Re: Disconnect notification via Channel API?

2010-12-16 Thread Moishe
Yep, connect/disconnect is in the works. No firm ETA, but it's coming.

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



[google-appengine] Re: [Channel API] How do I know the token expired or not in server side?

2010-12-16 Thread Moishe
I think this was also asked/answered over in the python group, but I'll post 
here too for the sake of completeness:

1. Token expires two hours from when you call create_channel. So if you 
wanted to store it server side, you could also store a time stamp. Note that 
the expiration's accuracy is on the order of seconds, not clock cycles, so 
don't worry about trying to get an exact timestamp match.

2. Notification of client connect/disconnect is in the works, but not 
available right now.

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



[google-appengine] Re: Using closure with channel API

2010-12-16 Thread Erick Fleming
This is great news.  Thanks for the update.

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



[google-appengine] Anyone see a bounce forwarded from the mail service?

2010-12-16 Thread A. Stevko
Does anyone get bounced email delivered to the From: address as per the spec
the error message is sent by email to the address of the sender for the
message.

Ever since my public launch, I've been sending out lots (many thousands) of
emails but have never seen a bounce from the mail service.
The app is set up to BCC certain messages to our supp...@ninuku.com google
apps account so that we can track the site's activity.
The email below definitely has a bad TO address.
Here are the headers:

Delivered-To: supp...@ninuku.com

 Received: by 10.216.244.140 with SMTP id m12cs59454wer;

 Wed, 15 Dec 2010 15:21:03 -0800 (PST)

 Received: by 10.150.97.1 with SMTP id u1mr10964756ybb.74.1292455262592;

 Wed, 15 Dec 2010 15:21:02 -0800 (PST)

 Return-Path: 
 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com
 

 Received: from mail-gw0-f71.google.com (mail-gw0-f71.google.com[74.125.83.71])

 by mx.google.com with ESMTP id
 h21si3751294yha.107.2010.12.15.15.21.02;

 Wed, 15 Dec 2010 15:21:02 -0800 (PST)

 Received-SPF: pass (google.com: domain of
 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.comdesignates
  74.125.83.71 as permitted sender) client-ip=74.125.83.71;

 Authentication-Results: mx.google.com; spf=pass (google.com: domain of
 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.comdesignates
  74.125.83.71 as permitted sender) smtp.mail=
 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com

 Received: by gwj18 with SMTP id 18so1928582gwj.10

 for supp...@ninuku.com; Wed, 15 Dec 2010 15:21:02 -0800 (PST)

 MIME-Version: 1.0

 Received: by 10.42.164.9 with SMTP id e9mr406464icy.63.1292455261780; Wed,
 15

  Dec 2010 15:21:01 -0800 (PST)

 Reply-To: Ninuku Support supp...@ninuku.com

 X-Google-Appengine-App-Id: ninuku-archivist

 Message-ID: 90e6ba6e8ab0c4398004977b3...@google.com

 Date: Wed, 15 Dec 2010 23:21:01 +

 Subject: Your Ninuku Archivist Chapter is Ready to view.

 From: Ninuku Archivist supp...@ninuku.com

 To: southernt...@aol.com

 Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes




I have another test account on our system with the email address 
j...@plumber.test
Again, supp...@ninuku.com has never seen a bounce report for any email sent
to this obviously dummy address.

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