My Oracle Support Banner

OPA Interview Utility Library Produces Parsing Errors In A High Concurrency Environment (Doc ID 2339617.1)

Last updated on MAY 30, 2018

Applies to:

Oracle Policy Automation - Version 10.4.7 and later
Information in this document applies to any platform.

Symptoms

On :  10.4.7 version, Oracle Policy Automation

OPA interview utility library produces following parsing errors in a high concurrency environment when many threads (around 100) executed together:

Issue doesn't happen in a 1 thread setting. From tracing the stack, it appears this problem occurs in the com.oracle.determinations.interview.util.StringUtils.parse method when OPA is in the process of reading the XML list to populate drop down list control options.

ERROR
------------
com.oracle.determinations.interview.engine.exceptions.InterviewEngineException: java.lang.IllegalArgumentException: Cannot parse value as a number: 1.0
at com.oracle.determinations.interview.engine.plugins.listprovider.RulebaseListProvider.getListOptions(RulebaseListProvider.java:155)


Changes

 This can be reproduced by writing a simple program that calls the com.oracle.determinations.interview.util.StringUtils.parse method using many threads (100 works best) together in one go with a CountDownLatch.

 The following messages will be produced if 100 threads are executed but doesn't happen in a 1 thread setting:

 java.lang.IllegalArgumentException: Cannot parse value as a number: 10.0

at com.oracle.determinations.interview.util.StringUtils.parse(StringUtils.java:94)

at au.gov.dss.opa.interview.test.StringUtilConcurrencyTest$StringUtilRunnable.run(StringUtilConcurrencyTest.java:36)

at java.lang.Thread.run(Thread.java:745)

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.