java - NucleusUserException when creating Google Calendar Request -


i trying authorized requests google calendar api work. seem credential , good, when try use it, i'm told i'm trying persist persisted object.

this code authorization servlet, i'm authorizing user, , performing request (the callback called once, subsequent requests don't require it).

protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {     somethingtest();     response.getoutputstream().println("<html><head><title>hello</title></head><body><p>hello world!</p></body></html>"); }  void somethingtest(){     event event = new event();     event.setsummary("appointment");     event.setlocation("hq");     arraylist<eventattendee> attendees = new arraylist<eventattendee>();     attendees.add(new eventattendee().setemail(other_attendee));     event.setattendees(attendees);      datetime start = datetime.parserfc3339("2012-06-05t10:00:00.000+01:00");     datetime end = datetime.parserfc3339("2012-06-05t11:00:00.000+01:00");     event.setstart(new eventdatetime().setdatetime(start).settimezone("cest"));     event.setend(new eventdatetime().setdatetime(end).settimezone("cest"));     event.setrecurrence(arrays.aslist("rrule:freq=weekly;until=20120801t100000+01:00"));      calendar calendar = calendar.builder(http_transport, json_factory)             .setapplicationname("calendarsynctest/1.0")             .sethttprequestinitializer(getcredential()).build();     try {         // next line throws exception         event createdevent = calendar.events().insert("primary", event).execute();         log.trace("event created: " + createdevent.getid());     } catch (ioexception e) {         log.warn("exception caught mocking about", e);     }  }  @override protected string getredirecturi(httpservletrequest req)         throws servletexception, ioexception {     log.trace("getredirecturi()");     genericurl url = new genericurl(req.getrequesturl().tostring());     url.setrawpath("/google-sync/callback");     return url.build(); }  @override protected authorizationcodeflow initializeflow() throws servletexception,         ioexception {            log.trace("initializeflow()");       javax.jdo.persistencemanagerfactory pmf = jdohelper.getpersistencemanagerfactory("transactions-optional");      return new googleauthorizationcodeflow.builder(             http_transport,             json_factory,             client_id, client_secret,              collections.singleton(calendarscopes.calendar)).setcredentialstore(new jdocredentialstore(pmf))             .build(); }  @override protected string getuserid(httpservletrequest req) throws servletexception,         ioexception {     return user_email; } 

and of course exception:

org.datanucleus.exceptions.nucleususerexception: object "com.google.api.client.extensions.jdo.auth.oauth2.jdopersistedcredential@1abf87" being inserted has id [user_email here] yet object id exists in datastore! org.datanucleus.store.xml.xmlpersistencehandler.insertobject(xmlpersistencehandler.java:96) org.datanucleus.state.jdostatemanager.internalmakepersistent(jdostatemanager.java:2376) org.datanucleus.state.jdostatemanager.makepersistent(jdostatemanager.java:2352) org.datanucleus.objectmanagerimpl.persistobjectinternal(objectmanagerimpl.java:1840) org.datanucleus.objectmanagerimpl.persistobjectwork(objectmanagerimpl.java:1689) org.datanucleus.objectmanagerimpl.persistobject(objectmanagerimpl.java:1554) org.datanucleus.api.jdo.jdopersistencemanager.jdomakepersistent(jdopersistencemanager.java:740) org.datanucleus.api.jdo.jdopersistencemanager.makepersistent(jdopersistencemanager.java:765) com.google.api.client.extensions.jdo.auth.oauth2.jdocredentialstore.store(jdocredentialstore.java:47) com.google.api.client.auth.oauth2.credentialstorerefreshlistener.makepersistent(credentialstorerefreshlistener.java:62) com.google.api.client.auth.oauth2.credentialstorerefreshlistener.ontokenresponse(credentialstorerefreshlistener.java:48) com.google.api.client.auth.oauth2.credential.refreshtoken(credential.java:497) com.google.api.client.auth.oauth2.credential.intercept(credential.java:255) com.google.api.client.http.httprequest.execute(httprequest.java:746) com.google.api.client.googleapis.json.googlejsonresponseexception.execute(googlejsonresponseexception.java:182) com.google.api.client.googleapis.services.googleclient.executeunparsed(googleclient.java:170) com.google.api.client.http.json.jsonhttprequest.executeunparsed(jsonhttprequest.java:163) com.google.api.services.calendar.calendar$events$insert.execute(calendar.java:1810) com.zylinc.core.googlesync.test.somethingtest(test.java:78) com.zylinc.core.googlesync.test.doget(test.java:56) javax.servlet.http.httpservlet.service(httpservlet.java:621) com.google.api.client.extensions.servlet.auth.oauth2.abstractauthorizationcodeservlet.service(abstractauthorizationcodeservlet.java:129) javax.servlet.http.httpservlet.service(httpservlet.java:722) 

i find confusing, because google documentation big mess of deprecated methods don't quite match each other.


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -