How can I solve the java.lang.StackOverflowError?

13 Feb '18, 03:22 PM
1,741 Views
No Forum Badges

Hi all,

I have a Selector Component in my project that does not work.
When executing the application i got an exception.
In particular I got a java.lang.StackOverflowError error caused by a java.sql.SQLException.
This is the related message found in the log: ORA-01795: maximum number of expressions in a list is 1000
How can I solve this problem?

 
x 0
Follow
Answer Answer at this question and get points!
Forum Expert - Level 5

Hi,

the reported error means that the query on the database has an IN clause that is receiving too many values.
Each database can manage a maximum number of objects in IN clauses. In your case the limit is 1000.
The problem is caused by too many values that have been passed to a condition applied to a Component (usually a Key Condition or a Relationship Role Condition).
Tolve the error you'll probably need to change the IFML Web Model of the Web Application. 
In particular you have to find the Components involved in the multiple values passing and merge those components in your Selector Component.
This means to move all the conditional expression applied on the other components on the Selector.

If this is not possible, you can add a custom property to instruct WebRatio to split the IN clause in different ones, each one managing a specific number of values.
The custom property must be added to the databse node of your project. The property must have "hibernate.webratio.inClauseMaxCardinality" as name and "500" as value.

   
x 0
Answer at this question and get points!