1

We have a Java website running on the latest hotfix version of CIL (8.5.0-16778). The CMS we are using is SDL Web 8.5 with the micro-service CD environment. Our site makes multiple calls to the content service to obtain DCPs. These calls are generated with various metadata criteria based on the productCodes that we are using to uniquely identify content in the CMS (the productCodes are stored as metadata on components in the CMS). While running our load tests through hundreds of different queries for productCodes, we obtain the following error logs on the content service:

2019-12-13 14:59:12,809 ERROR ODataWriteProcessorImpl - Unexpected Exception when persisting or deleting an entity.
java.lang.NumberFormatException: For input string: ".507508053E8E8"
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2056)
    at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:123)
    at java.lang.Double.parseDouble(Double.java:549)
    at java.text.DigitList.getDouble(DigitList.java:180)
    at java.text.DecimalFormat.parse(DecimalFormat.java:2067)
    at java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:1880)
    at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1525)
    at java.text.DateFormat.parse(DateFormat.java:375)
    at com.sdl.web.api.broker.TypeConverterUtil.handleObjectType(TypeConverterUtil.java:27)
    at com.sdl.web.api.broker.querying.criteria.strategies.CustomMetaValueStrategy.getWhere(CustomMetaValueStrategy.java:38)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:109)
    at com.sdl.web.api.broker.querying.criteria.strategies.OperatorStrategy.getWhere(OperatorStrategy.java:87)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:109)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:118)
    at com.sdl.web.api.broker.querying.criteria.strategies.OperatorStrategy.getWhere(OperatorStrategy.java:82)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:109)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:118)
    at com.sdl.web.api.broker.querying.generators.JPQLQueryGenerationUtil.generateQuery(JPQLQueryGenerationUtil.java:60)
    at com.sdl.web.content.odata.query.service.QueryServiceImpl.generateQuery(QueryServiceImpl.java:76)
    at com.sdl.web.content.odata.query.service.QueryServiceImpl.executeQuery(QueryServiceImpl.java:48)
    at com.sdl.web.content.odata.util.QueryExecutionUtil.getQueryResult(QueryExecutionUtil.java:52)
    at com.sdl.web.content.odata.action.ExecuteQueryAction.doContentServiceOperation(ExecuteQueryAction.java:102)
    at com.sdl.web.content.odata.action.ExecuteQueryAction.doContentServiceOperation(ExecuteQueryAction.java:47)
    at com.sdl.web.content.odata.ContentServiceOperation.doOperation(ContentServiceOperation.java:36)
    at com.sdl.odata.processor.write.ActionPostMethodHandler.handleWrite(ActionPostMethodHandler.java:54)
    at com.sdl.odata.processor.ODataWriteProcessorImpl.write(ODataWriteProcessorImpl.java:57)
    at com.sdl.odata.service.actor.ODataWriteProcessorActor$$anonfun$receive$1.applyOrElse(ODataWriteProcessorActor.scala:33)
    at akka.actor.Actor$class.aroundReceive(Actor.scala:480)
    at com.sdl.odata.service.actor.ODataWriteProcessorActor.aroundReceive(ODataWriteProcessorActor.scala:28)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
    at akka.actor.ActorCell.invoke(ActorCell.scala:495)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
    at akka.dispatch.Mailbox.run(Mailbox.scala:224)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.lang.Thread.run(Thread.java:795)
2019-12-13 14:59:12,810 DEBUG ODataMessageRouter - Sending error message for exception:
java.lang.NumberFormatException: For input string: ".507508053E8E8"
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2056)
    at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:123)
    at java.lang.Double.parseDouble(Double.java:549)
    at java.text.DigitList.getDouble(DigitList.java:180)
    at java.text.DecimalFormat.parse(DecimalFormat.java:2067)
    at java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:1880)
    at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1525)
    at java.text.DateFormat.parse(DateFormat.java:375)
    at com.sdl.web.api.broker.TypeConverterUtil.handleObjectType(TypeConverterUtil.java:27)
    at com.sdl.web.api.broker.querying.criteria.strategies.CustomMetaValueStrategy.getWhere(CustomMetaValueStrategy.java:38)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:109)
    at com.sdl.web.api.broker.querying.criteria.strategies.OperatorStrategy.getWhere(OperatorStrategy.java:87)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:109)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:118)
    at com.sdl.web.api.broker.querying.criteria.strategies.OperatorStrategy.getWhere(OperatorStrategy.java:82)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:109)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:118)
    at com.sdl.web.api.broker.querying.generators.JPQLQueryGenerationUtil.generateQuery(JPQLQueryGenerationUtil.java:60)
    at com.sdl.web.content.odata.query.service.QueryServiceImpl.generateQuery(QueryServiceImpl.java:76)
    at com.sdl.web.content.odata.query.service.QueryServiceImpl.executeQuery(QueryServiceImpl.java:48)
    at com.sdl.web.content.odata.util.QueryExecutionUtil.getQueryResult(QueryExecutionUtil.java:52)
    at com.sdl.web.content.odata.action.ExecuteQueryAction.doContentServiceOperation(ExecuteQueryAction.java:102)
    at com.sdl.web.content.odata.action.ExecuteQueryAction.doContentServiceOperation(ExecuteQueryAction.java:47)
    at com.sdl.web.content.odata.ContentServiceOperation.doOperation(ContentServiceOperation.java:36)
    at com.sdl.odata.processor.write.ActionPostMethodHandler.handleWrite(ActionPostMethodHandler.java:54)
    at com.sdl.odata.processor.ODataWriteProcessorImpl.write(ODataWriteProcessorImpl.java:57)
    at com.sdl.odata.service.actor.ODataWriteProcessorActor$$anonfun$receive$1.applyOrElse(ODataWriteProcessorActor.scala:33)
    at akka.actor.Actor$class.aroundReceive(Actor.scala:480)
    at com.sdl.odata.service.actor.ODataWriteProcessorActor.aroundReceive(ODataWriteProcessorActor.scala:28)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
    at akka.actor.ActorCell.invoke(ActorCell.scala:495)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
    at akka.dispatch.Mailbox.run(Mailbox.scala:224)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.lang.Thread.run(Thread.java:795)
2019-12-13 14:59:12,810 ERROR ODataRendererActor - Unexpected exception during response rendering - java.lang.NumberFormatException: 'For input string: ".507508053E8E8"'
java.lang.NumberFormatException: For input string: ".507508053E8E8"
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2056)
    at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:123)
    at java.lang.Double.parseDouble(Double.java:549)
    at java.text.DigitList.getDouble(DigitList.java:180)
    at java.text.DecimalFormat.parse(DecimalFormat.java:2067)
    at java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:1880)
    at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1525)
    at java.text.DateFormat.parse(DateFormat.java:375)
    at com.sdl.web.api.broker.TypeConverterUtil.handleObjectType(TypeConverterUtil.java:27)
    at com.sdl.web.api.broker.querying.criteria.strategies.CustomMetaValueStrategy.getWhere(CustomMetaValueStrategy.java:38)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:109)
    at com.sdl.web.api.broker.querying.criteria.strategies.OperatorStrategy.getWhere(OperatorStrategy.java:87)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:109)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:118)
    at com.sdl.web.api.broker.querying.criteria.strategies.OperatorStrategy.getWhere(OperatorStrategy.java:82)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:109)
    at com.sdl.web.api.broker.querying.criteria.DecoratedCriteria.getWhere(DecoratedCriteria.java:118)
    at com.sdl.web.api.broker.querying.generators.JPQLQueryGenerationUtil.generateQuery(JPQLQueryGenerationUtil.java:60)
    at com.sdl.web.content.odata.query.service.QueryServiceImpl.generateQuery(QueryServiceImpl.java:76)
    at com.sdl.web.content.odata.query.service.QueryServiceImpl.executeQuery(QueryServiceImpl.java:48)
    at com.sdl.web.content.odata.util.QueryExecutionUtil.getQueryResult(QueryExecutionUtil.java:52)
    at com.sdl.web.content.odata.action.ExecuteQueryAction.doContentServiceOperation(ExecuteQueryAction.java:102)
    at com.sdl.web.content.odata.action.ExecuteQueryAction.doContentServiceOperation(ExecuteQueryAction.java:47)
    at com.sdl.web.content.odata.ContentServiceOperation.doOperation(ContentServiceOperation.java:36)
    at com.sdl.odata.processor.write.ActionPostMethodHandler.handleWrite(ActionPostMethodHandler.java:54)
    at com.sdl.odata.processor.ODataWriteProcessorImpl.write(ODataWriteProcessorImpl.java:57)
    at com.sdl.odata.service.actor.ODataWriteProcessorActor$$anonfun$receive$1.applyOrElse(ODataWriteProcessorActor.scala:33)
    at akka.actor.Actor$class.aroundReceive(Actor.scala:480)
    at com.sdl.odata.service.actor.ODataWriteProcessorActor.aroundReceive(ODataWriteProcessorActor.scala:28)
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)
    at akka.actor.ActorCell.invoke(ActorCell.scala:495)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
    at akka.dispatch.Mailbox.run(Mailbox.scala:224)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.lang.Thread.run(Thread.java:795)

Any idea what might be causing this?

Additional relevant info:

  • We have the ADF enabled with lots of triggers and claims.
  • 99% of the load tests work, only a few fail with similar messages (The exact string it fails on differs.)
| improve this question | | | | |
  • Worth enable in the content service tomcat access logs to see the request URLs and then try to reproduce to check the logs times and request times to analyze to drill down. for me looks like something invalid data something getting passed. – Velmurugan Dec 17 '19 at 20:28
  • We've submitted a support ticket for it, SDL has confirmed it as a bug on their end. I'll post an answer once the hotfix is out. – Nicholas Wetmore Jan 10 at 14:18
1

I have seen this type of problem before. In our case the problem was due to schema changes.

When a schema metadata field data type has been changed you must

  • update all components using the schema
  • republish items using the schema

Check the metadata field type in the broker database to verify that all of the published metadata is the correct type.

| improve this answer | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.