помогите пожалуйста разобраться с ошибкой в скрипте
Код:
KPP_PARAM_ID = 19;
paramId = event.getParamId();
value = event.getValue();
print( "paramId=" + paramId + "; value=" + value );
if( paramId == KPP_PARAM_ID )
{
if( value.length() < 9 )
{
event.setError( "Длина параметра меньше 9" );
return;
}
}
paramId = event.getParamId();
value = event.getValue();
//
print( "paramId=" + paramId + "; value=" + value );
//
int mult(String s, int[] c) {
int len = s.length();
if (len > c.length)
len = c.length;
int summ = 0;
for (int j = 0; j < len; j++) {
if (!Character.isDigit(s.charAt(j)))
return -255;
summ += c[j] * ((int) s.charAt(j) - (int) '0');
}
return summ;
}
boolean KPP(String kpp) {
if (kpp == null)
return false;
if (kpp.length() == 9)
return (char) ((int) '0' + mult(kpp, new int[] { 2, 4, 10, 3, 5, 9,
4, 6, 8 }) % 11 % 10) == kpp.charAt(9);
if (kpp.length() == 12)
return ((char) ((int) '0' + mult(kpp, new int[] { 7, 2, 4, 10, 3,
5, 9, 4, 6, 8 }) % 11 % 10) == kpp.charAt(10))
&& ((char) ((int) '0' + mult(kpp, new int[] { 3, 7, 2, 4,
10, 3, 5, 9, 4, 6, 8 }) % 11 % 10) == kpp.charAt(9));
return false;
}
if( paramId == KPP_PARAM_ID )
{
if( event.getValue().equals("") ) return;
if( ! KPP(event.getValue()) )
{
event.setError("Не правильный КПП");
return;
}
}
однако при его исполнении вылезает вот такая ошибка:
Код:
Contract ИН-09-0017-В
GENERATE_TIME: 07.04.09 14:56:41
EXECUTION_STOP_TIME: 07.04.09 14:56:41
PROCESS_TIME: 16
OUT:
paramId=19; value=744801001
paramId=19; value=744801001
ERROR:
EXCEPTIONS:
Sourced file: inline evaluation of: ``KPP_PARAM_ID = 19; paramId = event.getParamId(); value = event.getValue() . . . '' : Method
Invocation kpp.charAtjava.lang.StringIndexOutOfBoundsException: String index out of range: 9
at java.lang.String.charAt(String.java:687)
at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at bsh.Reflect.invokeOnMethod(Unknown Source)
at bsh.Reflect.invokeObjectMethod(Unknown Source)
at bsh.Name.invokeMethod(Unknown Source)
at bsh.BSHMethodInvocation.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHBinaryExpression.eval(Unknown Source)
at bsh.BSHReturnStatement.eval(Unknown Source)
at bsh.BSHIfStatement.eval(Unknown Source)
at bsh.BSHBlock.evalBlock(Unknown Source)
at bsh.BSHBlock.eval(Unknown Source)
at bsh.BshMethod.invokeImpl(Unknown Source)
at bsh.BshMethod.invoke(Unknown Source)
at bsh.BshMethod.invoke(Unknown Source)
at bsh.Name.invokeLocalMethod(Unknown Source)
at bsh.Name.invokeMethod(Unknown Source)
at bsh.BSHMethodInvocation.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHUnaryExpression.eval(Unknown Source)
at bsh.BSHIfStatement.evaluateCondition(Unknown Source)
at bsh.BSHIfStatement.eval(Unknown Source)
at bsh.BSHBlock.evalBlock(Unknown Source)
at bsh.BSHBlock.eval(Unknown Source)
at bsh.BSHBlock.eval(Unknown Source)
at bsh.BSHIfStatement.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:158)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:248)
at bitel.billing.server.contract.action.ActionUpdateParameterType1.doAction(ActionUpdateParameterType1.java:46)
at bitel.billing.server.Executer.doModule(Executer.java:693)
at bitel.billing.server.Executer.doPost(Executer.java:177)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
WARNINGS: