【发布时间】:2018-02-02 11:14:57
【问题描述】:
从最近几天突然我们的生产部署应用程序抛出此错误
org.datanucleus.store.types.sco.simple.HashSet 无法转换为 java.util.Date
我们正在使用 datanucleus-api-jpa- 3.1.3、datanucleus-api-jdo- 3.1.3 和 Java 1.7
它发生在我们检索条目时。
我已经检查了所有事情,但没有找到导致这种情况发生的根本原因。我已经检查了这个链接 1) stackoverflow-questionId-22307734 (2) datanucleus-javadocs (3) gae-jdo-docs
示例代码:
import java.util.Date;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
@PersistenceCapable
public class MyClass {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long Id;
@Persistent
private String domainName;
@Persistent
private String customerName;
@Persistent
private String companyName;
@Persistent
private Date installationDate;
@Persistent
private Date renewalDate;
.....
getter...
setter...
}
异常消息完整堆栈跟踪:
异常消息:org.datanucleus.store.types.sco.simple.HashSet 无法转换为 java.util.Date (ErrorHandler.java:10) 2018-02-02 00:15:28.671 IST com.company.projectname.classnames.ErrorHandler errorHandler:DataAccessLayer 类中的错误 (ErrorHandler.java:11) 2018-02-02 00:15:28.672 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.company.projectname.dataaccesslayer.MyClass.jdoReplaceField(MyClass.java) 2018-02-02 00:15:28.672 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.AbstractStateManager.replaceField(AbstractStateManager.java:2387) 2018-02-02 00:15:28.672 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.JDOStateManager.replaceField(JDOStateManager.java:1877) 2018-02-02 00:15:28.672 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.JDOStateManager.replaceField(JDOStateManager.java:1781) 2018-02-02 00:15:28.672 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.store.types.sco.SCOUtils.createSCOWrapper(SCOUtils.java:241) 2018-02-02 00:15:28.672 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.store.types.sco.SCOUtils.newSCOInstance(SCOUtils.java:139) 2018-02-02 00:15:28.672 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.JDOStateManager.wrapSCOField(JDOStateManager.java:2230) 2018-02-02 00:15:28.672 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.FetchFieldManager.fetchFieldFromEntity(FetchFieldManager.java:468) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.FetchFieldManager.fetchObjectField(FetchFieldManager.java:408) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.AbstractStateManager.replacingObjectField(AbstractStateManager.java:2353) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.company.projectname.dataaccesslayer.MyClass.jdoReplaceField(MyClass.java) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.company.projectname.dataaccesslayer.MyClass.jdoReplaceFields(MyClass.java) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.JDOStateManager.replaceFields(JDOStateManager.java:1935) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.JDOStateManager.replaceFields(JDOStateManager.java:1962) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.EntityUtils$1.fetchFields(EntityUtils.java:974) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.JDOStateManager.loadFieldValues(JDOStateManager.java:764) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.JDOStateManager.initialiseForHollow(JDOStateManager.java:205) 2018-02-02 00:15:28.673 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.StateManagerFactory.newForHollowPopulated(StateManagerFactory.java:89) 2018-02-02 00:15:28.674 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.state.ObjectProviderFactory.newForHollowPopulated(ObjectProviderFactory.java:75) 2018-02-02 00:15:28.674 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.ObjectManagerImpl.findObject(ObjectManagerImpl.java:2882) 2018-02-02 00:15:28.674 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.EntityUtils.entityToPojo(EntityUtils.java:1014) 2018-02-02 00:15:28.674 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.query.DatastoreQuery$2.apply(DatastoreQuery.java:229) 2018-02-02 00:15:28.674 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.query.DatastoreQuery$2.apply(DatastoreQuery.java:226) 2018-02-02 00:15:28.674 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.query.LazyResult.resolveNext(LazyResult.java:96) 2018-02-02 00:15:28.674 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.query.LazyResult.resolveAll(LazyResult.java:121) 2018-02-02 00:15:28.674 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.query.LazyResult.size(LazyResult.java:115) 2018-02-02 00:15:28.674 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.google.appengine.datanucleus.query.StreamingQueryResult.size(StreamingQueryResult.java:151) 2018-02-02 00:15:28.675 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) org.datanucleus.store.query.AbstractQueryResult.toArray(AbstractQueryResult.java:400) 2018-02-02 00:15:28.675 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) java.util.ArrayList.addAll(ArrayList.java:559) 2018-02-02 00:15:28.675 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.company.projectname.datastore.DataAccessLayer.searchObjects(DataAccessLayer.java:217) 2018-02-02 00:15:28.675 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.company.projectname.businessaccesslayer.Manager.getCustomeAppByURL(Manager.java:1475) 2018-02-02 00:15:28.675 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) com.company.projectname.sso.apps.marketplace.ServletTest.doGet(ServletTest.java:155) 2018-02-02 00:15:28.675 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 2018-02-02 00:15:28.675 IST com.company.projectname.classnames.ErrorHandler errorHandler:
(ErrorHandler.java:14) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
谢谢。
【问题讨论】:
标签: java google-app-engine google-cloud-platform google-cloud-datastore datanucleus