cancel
Showing results for 
Search instead for 
Did you mean: 

Adding attribute into already existing type results into runtime error

Former Member
0 Kudos

I have added an attribute to AbstractOrder. I have updated the system. But now I get following error in the hmc when i try to view that attribute: Error: object is not an instance of declaring class

Also, when I try to enter a value via code, I get following error: Argument mismatch trying to set value '0.0' for attribute de.hybris.platform.jalo.order.Cart.totalCvValue (got java.lang.Double, expected de.hybris.platform.jalo.order.AbstractOrder).",

I am using hybris 6 with HSQL DB. Follows a stack trace from console.

at de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.invokeValidateInterceptors(ModelWrapper.java:284) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.validate(ModelWrapper.java:217) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.internal.model.extractor.impl.DefaultModelExtractor.process(DefaultModelExtractor.java:58) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.performPersistenceOperations(DefaultModelService.java:694) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAllInternal(DefaultModelService.java:689) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:669) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:624) ~[coreserver.jar:?] at de.hybris.platform.servicelayer.hmc.ServicelayerHMCCreateAction.create(ServicelayerHMCCreateAction.java:126) [ServicelayerHMCCreateAction.class:?] at de.hybris.platform.hmc.util.action.CreateAction.perform(CreateAction.java:194) [CreateAction.class:?] at de.hybris.platform.hmc.generic.organizer.OrganizerItemCreatorChip.performSave(OrganizerItemCreatorChip.java:119) [OrganizerItemCreatorChip.class:?] at de.hybris.platform.hmc.ItemChip.save(ItemChip.java:222) [ItemChip.class:?] at de.hybris.platform.hmc.generic.organizer.OrganizerCreatorSaveAndCopyToolbarActionChip.perform(OrganizerCreatorSaveAndCopyToolbarActionChip.java:47) [Org at de.hybris.platform.hmc.AbstractToolbarActionChip.processEvents(AbstractToolbarActionChip.java:129) [AbstractToolbarActionChip.class:?] at de.hybris.platform.hmc.webchips.DisplayState.dispatchEvents(DisplayState.java:632) [DisplayState.class:?] at de.hybris.platform.hmc.webchips.DisplayState.extractEventsFromParameters(DisplayState.java:441) [DisplayState.class:?] at de.hybris.platform.hmc.webchips.DisplayState.processEvents(DisplayState.java:352) [DisplayState.class:?] at de.hybris.platform.hmc.webchips.MasterServlet.process(MasterServlet.java:193) [MasterServlet.class:?] at de.hybris.platform.hmc.webchips.MasterServlet.doPost(MasterServlet.java:82) [MasterServlet.class:?] at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) [servlet-api.jar:?] at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [servlet-api.jar:?] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) [catalina.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.59] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat7-websocket.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [catalina.jar:7.0.59] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [catalina.jar:7.0.59]

 This is the items.xml
 
 <itemtype code="AbstractOrder" autocreate="false"
                 generate="false">
                 <attributes>
                     <attribute qualifier="totalPvValue" type="java.lang.Double">
                         <description>Contains the total PSV amount for the order</description>
                         <persistence type="property">
                             <columntype>
                                 <value>java.math.BigDecimal</value>
                             </columntype>
                         </persistence>
                         <modifiers read="true" write="true" search="false"
                             optional="true" />
                     </attribute>
                     <attribute qualifier="totalCvValue" type="java.lang.Double">
                         <description>Contains the total CSV amount for the order</description>
                         <persistence type="property">
                             <columntype>
                                 <value>java.math.BigDecimal</value>
                             </columntype>
                         </persistence>
                         <modifiers read="true" write="true" search="false"
                             optional="true" />
                     </attribute>
                 </attributes>
             </itemtype>
Former Member
0 Kudos

How are you saving an instance of abstractorder. Which sub-type are you using ? Cart ?

Former Member
0 Kudos

yes...cart

0 Kudos

Is there a solution to this? I have the same issue when cloning order.

RROR [bcfOrderArchiveToHistoryJob::de.hybris.platform.servicelayer.internal.jalo.ServicelayerJob] (bcfOrderArchiveToHistoryJob) [Job] Caught throwable Argument mismatch trying to set value '55.55' for attribute com.bcf.core.jalo.order.OrderHistory.refundAmount (got java.lang.Double, expected de.hybris.platform.jalo.order.AbstractOrder).

de.hybris.platform.servicelayer.exceptions.ModelSavingException: Argument mismatch trying to set value '55.55' for attribute com.bcf.core.jalo.order.OrderHistory.refundAmount (got java.lang.Double, expected de.hybris.platform.jalo.order.AbstractOrder).

at de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter.createNewItem(ItemModelConverter.java:2271)

at de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter.save(ItemModelConverter.java:821)

at de.hybris.platform.servicelayer.internal.model.impl.wrapper.ModelWrapper.save(ModelWrapper.java:351)

at de.hybris.platform.servicelayer.internal.model.impl.ResolvingModelPersister.saveNewOnes(ResolvingModelPersister.java:105)

at de.hybris.platform.servicelayer.internal.model.impl.ResolvingModelPersister.persist(ResolvingModelPersister.java:52)

at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveViaJalo(DefaultModelService.java:1185)

at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.doJaloPersistence(DefaultModelService.java:744)

at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.persistWrappers(DefaultModelService.java:1129)

at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.performPersistenceOperations(DefaultModelService.java:721)

at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAllInternal(DefaultModelService.java:715)

at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:695)

at de.hybris.platform.servicelayer.internal.model.impl.DefaultModelService.saveAll(DefaultModelService.java:657)

at com.bcf.core.cronjob.BCFOrderArchiveToHistoryJob.perform(BCFOrderArchiveToHistoryJob.java:84)

at de.hybris.platform.servicelayer.internal.jalo.ServicelayerJob.performCronJob(ServicelayerJob.java:38)

at de.hybris.platform.cronjob.jalo.Job.execute(Job.java:1390)

at de.hybris.platform.cronjob.jalo.Job.performImpl(Job.java:814)

at de.hybris.platform.cronjob.jalo.Job.access$1(Job.java:767)

at de.hybris.platform.cronjob.jalo.Job$JobRunable.run(Job.java:686)

at de.hybris.platform.util.threadpool.PoolableThread.internalRun(PoolableThread.java:208)

at de.hybris.platform.core.threadregistry.RegistrableThread.run(RegistrableThread.java:135)

Caused by: java.lang.IllegalArgumentException: Argument mismatch trying to set value '55.55' for attribute com.bcf.core.jalo.order.OrderHistory.refundAmount (got java.lang.Double, expected de.hybris.platform.jalo.order.AbstractOrder).

at de.hybris.platform.jalo.type.ReflectionAttributeAccess$AttributeMethod.invokeSetter(ReflectionAttributeAccess.java:816)

at de.hybris.platform.jalo.type.ReflectionAttributeAccess.setValue(ReflectionAttributeAccess.java:984)

at de.hybris.platform.jalo.Item.setAttribute(Item.java:2354)

at de.hybris.platform.jalo.Item.setNonInitialAttributes(Item.java:4273)

at de.hybris.platform.jalo.Item.newInstanceInternal(Item.java:4146)

at de.hybris.platform.jalo.Item.access$6(Item.java:4083)

at de.hybris.platform.jalo.Item$19.execute(Item.java:4061)

at de.hybris.platform.tx.Transaction.execute(Transaction.java:1192)

at de.hybris.platform.tx.Transaction.execute(Transaction.java:1157)

at de.hybris.platform.jalo.Item.newInstance(Item.java:4056)

at de.hybris.platform.jalo.type.ComposedType.newInstance(ComposedType.java:1337)

at de.hybris.platform.jalo.type.ComposedType.newInstance(ComposedType.java:1257)

at de.hybris.platform.servicelayer.internal.converter.impl.ItemModelConverter.createNewItem(ItemModelConverter.java:2258)

... 19 more

Caused by: java.lang.IllegalAr

Accepted Solutions (0)

Answers (0)