My Oracle Support Banner

NumberFormatException upon Reading from a Cobol COMP-3 Numeric Variable in Java (Doc ID 1584089.1)

Last updated on MARCH 15, 2019

Applies to:

Oracle Utilities Framework - Version and later
Information in this document applies to any platform.


NumberFormatException is raised while getting information of a Cobol COMP-3 numeric variable in Java. The value of a specific copybook variable (declared as follows) is retrieved during a Java development:


CI-CONST-MAX-AMT-STORE is a standard constant declared as a compressed signed decimal value ( S9(13)V9(2) COMP-3 ). In Java after generating artifacts, method get_DETTE() is used which returns a BigInteger value. But at execution, the program fails with a NumberFormatException. It is suspected to be a problem with artifacts generation - the returned class would be BigDecimal and not BigInteger.


The issue can be reproduced at will with the following steps:
To call a Cobol process from the Java service:
1. Create CobolCopybookCMCBCDTN_Impl class and its associated cobol program.
2. Use these in the Java service ( to retrieve an output variable ("DETTE") which is the value needed for use in Java.
3. This variable is declared as "S9(13)V9(2) COMP-3".
4. Generate the artifacts to create all dependences.
5. Deploy and execute the program.
6. When it executes the command "vCobolCopybookCMCBCDTN.get_OUTPUT_WRK().get_DETTE()", the NumberFormatException is raised.

Why is this error raised and is there a solution or workaround?


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

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

In this Document

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