Hey I'm still getting this error. Here is my entity code. This is very frustrating and I have no idea how to resolve. Please help me out.
package com.todoroo.model; import java.util.Date; import javax.persistence.Entity; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Transient; import com.google.appengine.api.datastore.Key; import com.google.appengine.api.datastore.Text; @SuppressWarnings("serial") @Entity public class Message extends BaseObject implements TDRIdentifiable { public enum Medium { EMAIL, SMS, ANDROID, IPHONE } @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Key key = null; /** The subject is optional, and not even applicable for SMS. */ private String subject = null; @Enumerated private Text body = null; private Medium medium = Medium.EMAIL; private Long user = null; @Enumerated private Key actionPlan = null; /** Denormalize the coach name to send via API quicker. */ private String coachName = null; /** Denormalize the coach ID to send via API quicker. */ @Enumerated private Key coach = null; /** When the message was created (i.e. enqueued) */ private Date created = null; /** Has the user acknowledged this message yet? */ private Boolean acknowledged = false; /** * @return the key */ public Key getKey() { return key; } /** * @param key * the key to set */ public void setKey(Key key) { this.key = key; } /** * @return the subject */ public String getSubject() { return subject; } /** * @param subject * the subject to set */ public void setSubject(String subject) { this.subject = subject; } /** * @return the body */ public Text getBody() { return body; } /** * @param body * the body to set */ public void setBody(Text body) { this.body = body; } /** * @return the medium */ public Medium getMedium() { return medium; } /** * @param medium the medium to set */ public void setMedium(Medium medium) { this.medium = medium; } /** * @return the user */ public Long getUser() { return user; } /** * @param user the user to set */ public void setUser(Long user) { this.user = user; } /** * @return the actionPlan */ public Key getActionPlan() { return actionPlan; } /** * @param actionPlan the actionPlan to set */ public void setActionPlan(Key actionPlan) { this.actionPlan = actionPlan; } /** * @return the created */ public Date getCreated() { return created; } /** * @param created the created to set */ public void setCreated(Date created) { this.created = created; } /** * @return the acknowledged */ public Boolean getAcknowledged() { return acknowledged; } /** * @param acknowledged the acknowledged to set */ public void setAcknowledged(Boolean acknowledged) { this.acknowledged = acknowledged; } /** * @return the coachName */ public String getCoachName() { return coachName; } /** * @param coachName the coachName to set */ public void setCoachName(String coachName) { this.coachName = coachName; } /** * @return the coach */ public Key getCoach() { return coach; } /** * @param coach the coach to set */ public void setCoach(Key coach) { this.coach = coach; } @Transient public boolean wasAcknowledged() { return getAcknowledged(); } @Transient public boolean isAcknowledged() { return getAcknowledged(); } @Transient public Object getIdOrKey() { return key; } } On Aug 24, 2:55 am, Abe Parvand <eparv...@gmail.com> wrote: > All I'm doing is persisting an entity in the datastore. No biggie. And > now I get this super weird error. What is the deal here? > > I have no idea how to fix this, especially when the stack trace says > that some code is calling some code "which should be impossible." Has > anyone run into this problem and / or know how to fix? > > The culprit code: > > Message message = new Message(); > message.setActionPlan(actionPlan.getKey()); > message.setBody(new Text(body)); > message.setCoach(actionPlan.getActionPlanScript()); > message.setCoachName(actionPlanScript.getName()); > message.setMedium(Notifications.Medium.ANDROID); > message.setSubject(subject); > message.setUser(user.getId()); > > messageManager.saveMessage(message); > > Here's the stack trace: > > javax.servlet.ServletContext log: Exception while dispatching incoming > RPC call > com.google.gwt.user.server.rpc.UnexpectedException: Service method > 'public abstract java.lang.String > com.todoroo.client.ActionPlanScriptUploadService.uploadActionPlanScript > (java.lang.Long,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)' > threw an unexpected exception: > org.mozilla.javascript.WrappedException: Wrapped > javax.persistence.PersistenceException: Somehow > org.datanucleus.sco.UnsetOwners.storeStringField() was called, which > should have been impossible (SimpleShort#5) > at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure > (RPC.java:360) > at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse > (RPC.java:546) > at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall > (RemoteServiceServlet.java:166) > at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost > (RemoteServiceServlet.java:86) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) > at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > 487) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > (ServletHandler.java:1093) > at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter > (SaveSessionFilter.java:35) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > (ServletHandler.java:1084) > at > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter > (TransactionCleanupFilter.java:43) > at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter > (ServletHandler.java:1084) > at org.mortbay.jetty.servlet.ServletHandler.handle > (ServletHandler.java:360) > at org.mortbay.jetty.security.SecurityHandler.handle > (SecurityHandler.java:216) > at org.mortbay.jetty.servlet.SessionHandler.handle > (SessionHandler.java:181) > at org.mortbay.jetty.handler.ContextHandler.handle > (ContextHandler.java:712) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 405) > at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle > (AppVersionHandlerMap.java:237) > at org.mortbay.jetty.handler.HandlerWrapper.handle > (HandlerWrapper.java:139) > at org.mortbay.jetty.Server.handle(Server.java:313) > at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > 506) > at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete > (HttpConnection.java:830) > at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable > (RpcRequestParser.java:76) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) > at > com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest > (JettyServletEngineAdapter.java:139) > at com.google.apphosting.runtime.JavaRuntime.handleRequest > (JavaRuntime.java:235) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:4823) > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > $6.handleBlockingRequest(RuntimePb.java:4821) > at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest > (BlockingApplicationHandler.java:24) > at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: > 359) > at com.google.net.rpc.impl.Server$2.run(Server.java:820) > at com.google.tracing.LocalTraceSpanRunnable.run > (LocalTraceSpanRunnable.java:56) > at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan > (LocalTraceSpanBuilder.java:516) > at com.google.net.rpc.impl.Server.startRpc(Server.java:775) > at com.google.net.rpc.impl.Server.processRequest(Server.java:348) > at com.google.net.rpc.impl.ServerConnection.messageReceived > (ServerConnection.java:436) > at com.google.net.rpc.impl.RpcConnection.parseMessages > (RpcConnection.java:319) > at com.google.net.rpc.impl.RpcConnection.dataReceived > (RpcConnection.java:290) > at com.google.net.async.Connection.handleReadEvent(Connection.java: > 428) > at com.google.net.async.EventDispatcher.processNetworkEvents > (EventDispatcher.java:762) > at com.google.net.async.EventDispatcher.internalLoop > (EventDispatcher.java:207) > at com.google.net.async.EventDispatcher.loop(EventDispatcher.java: > 101) > at com.google.net.rpc.RpcService.runUntilServerShutdown > (RpcService.java:251) > at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run > (JavaRuntime.java:374) > at java.lang.Thread.run(Unknown Source) > Caused by: org.mozilla.javascript.WrappedException: Wrapped > javax.persistence.PersistenceException: Somehow > org.datanucleus.sco.UnsetOwners.storeStringField() was called, which > should have been impossible (SimpleShort#5) > at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java: > 1782) > at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:183) > at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java: > 247) > at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java: > 76) > at org.mozilla.javascript.gen.SimpleShort_2._c_anonymous_2 > (SimpleShort:5) > at org.mozilla.javascript.gen.SimpleShort_2.call(SimpleShort) > at org.mozilla.javascript.ContextFactory.doTopCall > (ContextFactory.java:426) > at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java: > 3092) > at org.mozilla.javascript.gen.SimpleShort_2.call(SimpleShort) > at com.todoroo.service.impl.JavaScriptManagerImpl.callActionPlanFn > (JavaScriptManagerImpl.java:201) > at > com.todoroo.service.impl.JavaScriptManagerImpl.callActionPlanTransitionFn > (JavaScriptManagerImpl.java:162) > at > com.todoroo.service.impl.JavaScriptManagerImpl.callActionPlanForFirstTime > (JavaScriptManagerImpl.java:155) > at > com.todoroo.server.ActionPlanScriptUploadServiceImpl.uploadActionPlanScript > (ActionPlanScriptUploadServiceImpl.java:80) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_ > $3.run(Method_.java:149) > at java.security.AccessController.doPrivileged(Native Method) > at > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.privilegedInvoke > (Method_.java:147) > at > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke > (Method_.java:120) > at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse > (RPC.java:527) > ... 43 more > Caused by: javax.persistence.PersistenceException: Somehow > org.datanucleus.sco.UnsetOwners.storeStringField() was called, which > should have been impossible > at org.datanucleus.jpa.NucleusJPAHelper.getJPAExceptionForJDOException > (NucleusJPAHelper.java:214) > at org.datanucleus.jpa.EntityManagerImpl.close(EntityManagerImpl.java: > 157) > at org.datanucleus.store.appengine.jpa.DatastoreEntityManager.close > (DatastoreEntityManager.java:54) > at com.todoroo.dao.impl.GenericDaoImpl.makePersistent > (GenericDaoImpl.java:173) > at com.todoroo.dao.impl.GenericDaoImpl.makePersistent > (GenericDaoImpl.java:181) > at com.todoroo.service.impl.MessageManagerImpl.saveMessage > (MessageManagerImpl.java:44) > at > com.todoroo.service.impl.JavaScriptManagerImpl.createShortNotification > (JavaScriptManagerImpl.java:600) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_ > $3.run(Method_.java:149) > at java.security.AccessController.doPrivileged(Native Method) > at > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.privilegedInvoke > (Method_.java:147) > at > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke > (Method_.java:120) > at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161) > ... 63 more > Caused by: org.datanucleus.exceptions.NucleusException: Somehow > org.datanucleus.sco.UnsetOwners.storeStringField() was called, which > should have been impossible > at > org.datanucleus.store.fieldmanager.AbstractFieldManager.storeStringField > (AbstractFieldManager.java:123) > at org.datanucleus.state.AbstractStateManager.providedStringFie... > > Thanks in advance! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~----------~----~----~----~------~----~------~--~---