The key phrase is "inner class".  You probably aren't making the inner
class static.  Remember that java inner classes contain an implicit
reference to their containing class - so you're trying to serialize
bot the inner class and the outer class.

Jeff

On Mon, Apr 9, 2012 at 5:13 AM, Deepak Singh <deepaksingh...@gmail.com> wrote:
> Hi Jeff,
>
> I create an inner class as follows,
>
> class TaskOp implements DeferredTask, Serializable {
>
>    @Override
>    public void run() {
>     try{
>     enq.setStatus(Constant.CANCELLED_ENQUIRY);
>     objectify.put(enq);
> }catch () {
>
> }
> }
> }
>
> Here in run method, i am using objectify.put('a serialisable object');
> Now i create a taskOption as follows,
>
>  try{
>   TaskOptions taskOpt = TaskOptions.Builder.withPayload(new TaskOp());
>   Queue defQueue = QueueFactory.getDefaultQueue();
>   defQueue.add(taskOpt);
>   }catch (Exception e) {
>    System.out.println("CommonRpcServiceImpl.cancelTripEnquiry()
> "+e.getMessage());
>   }
>
> Here the task option accepts an object of my inner class which implements
> DeferreTask.
>
> Now executing the above task gives me the following exception,
>
>  java.io.NotSerializableException:
> com.google.gwt.user.server.rpc.impl.StandardSerializationPolicy
>
> I verify that the object being used in DeferredTask is serialisable, even
> the i am getting the exception.
>
> I hope now the problem is clear.
>
>
>
> Thanks
> Deepak
>
>
> On Mon, Apr 9, 2012 at 6:29 AM, Jeff Schnitzer <j...@infohazard.org> wrote:
>>
>> I suggest restating the problem and being as clear as possible.  I
>> can't understand what you are asking - sorry.
>>
>> Jeff
>>
>> On Sun, Apr 8, 2012 at 7:04 PM, Deepak Singh <deepaksingh...@gmail.com>
>> wrote:
>> > I am still stuck with the issue....
>> >
>> >
>> > On Sun, Apr 8, 2012 at 2:03 AM, Deepak Singh <deepaksingh...@gmail.com>
>> > wrote:
>> >>
>> >> Hi,
>> >>
>> >> I am doing some database operation on GAE-JAVA using Objectify 3.0.1
>> >> through Deferedtask as follows,
>> >>
>> >>  class TaskOp implements DeferredTask, Serializable {
>> >>
>> >> @Override
>> >> public void run() {
>> >> try{
>> >> enq.setStatus(Constant.CANCELLED_ENQUIRY);
>> >> objectify.put(enq);
>> >> List<PackageConversationDTO> convList =
>> >> objectify.query(PackageConversationDTO.class).filter("leadId",
>> >> enq.getId()).list();
>> >> for(PackageConversationDTO convDto : convList) {
>> >> convDto.setStatus(Constant.CANCELLED_TRIP_PACKAGE_CONVERSATION);
>> >> objectify.put(convDto);
>> >> }
>> >> List<HolidayInvoiceDTO> list =
>> >> objectify.query(HolidayInvoiceDTO.class).filter("tripId",
>> >> enq.getId()).list();
>> >> for(HolidayInvoiceDTO holiday : list) {
>> >> holiday.setStatus(Constant.INVOICE_GENERATED_THEN_TRIP_CANCELLED);
>> >> objectify.put(holiday);
>> >> }
>> >> }catch (Exception e) {
>> >> System.out
>> >> .println("CommonRpcServiceImpl.cancelTripEnquiry(...).TaskOp.run()
>> >> "+e.getMessage());
>> >> }
>> >> }
>> >>
>> >> }
>> >>
>> >>
>> >>
>> >>                try{
>> >> TaskOptions taskOpt = TaskOptions.Builder.withPayload(new TaskOp());
>> >> Queue defQueue = QueueFactory.getDefaultQueue();
>> >> defQueue.add(taskOpt);
>> >> }catch (Exception e) {
>> >> System.out.println("CommonRpcServiceImpl.cancelTripEnquiry()
>> >> "+e.getMessage());
>> >> }
>> >>
>> >> It always throws this exception
>> >>
>> >> CommonRpcServiceImpl.cancelTripEnquiry()
>> >> java.io.NotSerializableException:
>> >> com.google.gwt.user.server.rpc.impl.StandardSerializationPolicy
>> >>
>> >> I make sure that all the object being used here are serializable.
>> >>
>> >>
>> >> Thanks in advance
>> >> Deepak Singh
>> >
>> >
>> >
>> >
>> > --
>> > Deepak Singh
>
>
>
>
> --
> Deepak Singh

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

Reply via email to