Today I got a weird error today in the production server of a
customer: the <create-value> operation in createInventoryItemDetail
was throwing a ClassCastException.
I fixed it by clearing the cache, however I think it is useful to
share some information about it; see the log, where the first line is
a debug message I created just before calling the offending operation
(with the content of newEntity map)
Jacopo
2009-07-27 19:46:44,765 (http-0.0.0.0-8443-14)
[ Log.java:111:INFO ]
[InventoryServices.xml#createInventoryItemDetail] BEFORE CALLING
<create-value value-field="newEntity"/> at line 307; here is the
content of "newEntity": [GenericEntity:InventoryItemDetail]
[availableToPromiseDiff,-30000.00(java.math.BigDecimal)][effectiveDate,
2009-07-27 19:46:44.765(java.sql.Timestamp)][inventoryItemDetailSeqId,
40885(java.lang.String)][inventoryItemId,15604(java.lang.String)]
[quantityOnHandDiff,-30000.00(java.math.BigDecimal)][workEffortId,
16004(java.lang.String)]
2009-07-27 19:46:44,812 (http-0.0.0.0-8443-14)
[ SimpleMethod.java:888:ERROR]
---- runtime exception report
--------------------------------------------------
Error in simple-method operation [<create-value/>]:
java.lang.ClassCastException: java.lang.Double cannot be cast to
java.math.BigDecimal
Exception: java.lang.ClassCastException
Message: java.lang.Double cannot be cast to java.math.BigDecimal
---- stack trace
---------------------------------------------------------------
java.lang.ClassCastException: java.lang.Double cannot be cast to
java.math.BigDecimal
java.math.BigDecimal.compareTo(Unknown Source)
org
.ofbiz
.entity
.condition
.EntityComparisonOperator
.compareLessThan(EntityComparisonOperator.java:231)
org.ofbiz.entity.condition.EntityOperator
$3.compare(EntityOperator.java:112)
org
.ofbiz
.entity
.condition
.EntityComparisonOperator.mapMatches(EntityComparisonOperator.java:161)
org.ofbiz.entity.condition.EntityExpr.mapMatches(EntityExpr.java:183)
org
.ofbiz
.entity
.condition.EntityJoinOperator.mapMatches(EntityJoinOperator.java:147)
org
.ofbiz
.entity
.condition
.EntityConditionListBase.mapMatches(EntityConditionListBase.java:103)
org
.ofbiz
.entity
.cache
.AbstractEntityConditionCache
.storeHook(AbstractEntityConditionCache.java:200)
org
.ofbiz
.entity
.cache
.AbstractEntityConditionCache
.storeHook(AbstractEntityConditionCache.java:166)
org
.ofbiz
.entity
.cache
.AbstractEntityConditionCache
.storeHook(AbstractEntityConditionCache.java:141)
org.ofbiz.entity.cache.Cache.remove(Cache.java:115)
org.ofbiz.entity.GenericDelegator.clearCacheLine(GenericDelegator.java:
2978)
org.ofbiz.entity.GenericDelegator.clearCacheLine(GenericDelegator.java:
2963)
org.ofbiz.entity.GenericDelegator.create(GenericDelegator.java:833)
org.ofbiz.minilang.method.entityops.CreateValue.exec(CreateValue.java:
79)
org.ofbiz.minilang.SimpleMethod.runSubOps(SimpleMethod.java:883)
org.ofbiz.minilang.SimpleMethod.exec(SimpleMethod.java:702)
org.ofbiz.minilang.SimpleMethod.runSimpleMethod(SimpleMethod.java:160)
org.ofbiz.minilang.SimpleMethod.runSimpleService(SimpleMethod.java:142)
org
.ofbiz
.minilang.SimpleServiceEngine.serviceInvoker(SimpleServiceEngine.java:
78)
org
.ofbiz.minilang.SimpleServiceEngine.runSync(SimpleServiceEngine.java:53)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:392)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:221)
org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:173)
org.ofbiz.minilang.method.callops.CallService.exec(CallService.java:245)
org.ofbiz.minilang.SimpleMethod.runSubOps(SimpleMethod.java:883)
org.ofbiz.minilang.method.ifops.IfCompare.exec(IfCompare.java:132)
org.ofbiz.minilang.SimpleMethod.runSubOps(SimpleMethod.java:883)
org.ofbiz.minilang.method.ifops.IfNotEmpty.exec(IfNotEmpty.java:101)
org.ofbiz.minilang.SimpleMethod.runSubOps(SimpleMethod.java:883)
org.ofbiz.minilang.method.conditional.MasterIf.exec(MasterIf.java:86)
org.ofbiz.minilang.SimpleMethod.runSubOps(SimpleMethod.java:883)
org.ofbiz.minilang.method.ifops.IfCompare.exec(IfCompare.java:132)
org.ofbiz.minilang.SimpleMethod.runSubOps(SimpleMethod.java:883)
org.ofbiz.minilang.SimpleMethod.exec(SimpleMethod.java:702)
org
.ofbiz
.minilang.method.callops.CallSimpleMethod.exec(CallSimpleMethod.java:85)
org.ofbiz.minilang.SimpleMethod.runSubOps(SimpleMethod.java:883)
org.ofbiz.minilang.method.envops.Iterate.exec(Iterate.java:120)
org.ofbiz.minilang.SimpleMethod.runSubOps(SimpleMethod.java:883)
org.ofbiz.minilang.method.ifops.IfNotEmpty.exec(IfNotEmpty.java:101)
org.ofbiz.minilang.SimpleMethod.runSubOps(SimpleMethod.java:883)
org.ofbiz.minilang.SimpleMethod.exec(SimpleMethod.java:702)
org.ofbiz.minilang.SimpleMethod.runSimpleMethod(SimpleMethod.java:160)
org.ofbiz.minilang.SimpleMethod.runSimpleService(SimpleMethod.java:142)
org
.ofbiz
.minilang.SimpleServiceEngine.serviceInvoker(SimpleServiceEngine.java:
78)
org
.ofbiz.minilang.SimpleServiceEngine.runSync(SimpleServiceEngine.java:53)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:392)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:221)
org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:159)
org
.ofbiz
.manufacturing
.jobshopmgt
.ProductionRunServices
.updateProductionRunTask(ProductionRunServices.java:2012)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org
.ofbiz
.service
.engine.StandardJavaEngine.serviceInvoker(StandardJavaEngine.java:98)
org
.ofbiz
.service.engine.StandardJavaEngine.runSync(StandardJavaEngine.java:56)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:392)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:221)
org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:159)
org
.ofbiz
.manufacturing
.jobshopmgt
.ProductionRunServices
.productionRunDeclareAndProduce(ProductionRunServices.java:1693)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org
.ofbiz
.service
.engine.StandardJavaEngine.serviceInvoker(StandardJavaEngine.java:98)
org
.ofbiz
.service.engine.StandardJavaEngine.runSync(StandardJavaEngine.java:56)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:392)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:221)
org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:159)
org
.ofbiz
.manufacturing
.jobshopmgt
.ProductionRunEvents
.productionRunDeclareAndProduce(ProductionRunEvents.java:93)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.ofbiz.webapp.event.JavaEventHandler.invoke(JavaEventHandler.java:92)
org.ofbiz.webapp.event.JavaEventHandler.invoke(JavaEventHandler.java:78)
org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:
596)
org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:
361)
org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:214)
org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:80)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
290)
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:264)
org
.apache
.catalina
.core
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
235)
org
.apache
.catalina
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org
.apache
.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
233)
org
.apache
.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
175)
org
.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
128)
org
.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
org
.apache
.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
568)
org
.ofbiz
.catalina
.container
.CrossSubdomainSessionValve.invoke(CrossSubdomainSessionValve.java:44)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Unknown Source)
--------------------------------------------------------------------------------