제품명 |
InnoRules
|
버그번호 |
BIR2100010 |
제목 |
룰 내용에 상수가 많고 OR 연산자를 많이 사용한 조건식이 존재하는 경우 간헐적으로 룰 실행 오류가 발생하는 현상 |
현상 |
룰 내용에 다음과 같은 룰 문법이 포함되어 있을때 간헐적으로 룰 실행 오류가 발생함
1. 아주 많은 상수를 사용하고
2. 하나의 조건식에서 OR 연산자를 많이 사용한 조건식이 존재하며
예 ) [항목] = "1" OR [항목] ="2" OR [항목] = "3" OR [항목] = "4" OR [항목] = "5" OR [항목] = "6" OR [항목] = "7" ... OR [항목] = "36"
3. OR 연산자를 많이 사용한 조건식 이전에 수행된 다른 조건식이 많은 경우
다음과 같은 경우에는 오류 발생하지 않음
1. 하나의 조건식에 단순한 조건을 사용한 경우
2. 하나의 조건식이 복잡하게 구성되었더라도 룰 내용에 상수가 많지 않거나 이전에 수행된 조건식이 적은 경우 |
분석결과 |
상수와 OR 조건을 함께 사용하는 경우 룰 실행 시 잘못된 인덱스를 참조하여 발생한 오류
픽스를 권장하나 다음과 같이 룰 내용을 변경하면 우회가 가능함
1. 조건식을 OR 연산식을 사용하지 않는 [항목] = ( "1", "2", "3", .. , "36" ) 의 형태로 변경
2. 하나의 조건식에서 OR 연산식을 많이 사용하지 않도록 여러개의 조건식으로 분리
|
우회방법 |
없음 |
영향받는버전 |
innorulesj.jar 7.2.0.0 ~ 7.2.1.4, innorulesj.jar 7.3.0.0
|
픽스버전 |
innorulesj.jar 7.2.1.5, innorulesj.jar 7.3.0.1 |
접수일자 |
2021-12-17
|
처리일자 |
2021-12-17 |