Conversão de Asp para JSP

Ola pessoal… estou com problemas nestes 2 metodos que estão me devolvendo resultados diferentes do que o código ASP transmitia:
é um sistema de Boleto Bancario…
Estes 2 métodos devem devolver o resultado de 3 digitos verificadores do boleto…
Método 1
ASP:

[code]FUNCTION CALCDIG10(cadeia)
dim mult
dim total
dim pos,res

mult=(len(cadeia) mod 2) 
mult=mult+1
total=0
for pos=1 to len(cadeia)
	res= mid(cadeia, pos, 1) * mult
	if res>9 then
		res=int(res/10) + (res mod 10)
	end if
	total=total+res
	if mult=2 then
		mult=1
	else
		mult=2
	end if
next
total=((10-(total mod 10)) mod 10 )
CALCDIG10=total

END FUNCTION
[/code]
JAVA:

public String do_calculodig10(String cadeia){ int total = 0; int res; int mult = (cadeia.length()%2)+1; for (int pos = 1; pos <= cadeia.length(); pos++){ res = mult*Integer.parseInt(cadeia.charAt(pos-1)+""); if(res>9){ res = (int)res/10 + res%10; } total = total + res; if(mult == 2){ mult = 1; } else{//60 mult = 2; } } total = ((10-(total % 10)) % 10); return ""+total; }
Método 2
ASP:

[code]FUNCTION CALCDIG11(cadeia,limitesup,lflag)
'**************************
dim mult
dim total
dim nresto
dim ndig
dim pos

mult=1 + (len(cadeia) mod (limitesup-1))
if mult=1 then
mult=limitesup
end if
total=0
for pos=1 to len(cadeia)
total=total+(mid(cadeia,pos,1) * mult)
mult=mult-1
if mult=1 then
mult=limitesup
end if
Next
nresto=(total mod 11)
if lflag = 1 then
calcdig11=nresto
else
if nresto=0 or nresto=1 or nresto=10 then
ndig=1
else
ndig=11 - nresto
end if
calcdig11=ndig
end if

'*************************
END FUNCTION[/code]
JAVA:

public int do_calculodig11(String cadeia,int limitesup,int lflag){ int mult = 1 + (cadeia.length()%(limitesup-1)); int total = 0; if(mult==1){ mult = limitesup; } for(int pos = 1; pos <= cadeia.length(); pos++){ total = total + (mult*Integer.parseInt(cadeia.charAt(pos-1)+"")); if (mult==1){ mult = limitesup; } } int resto = total % 11; if(lflag == 1){//80 return resto; } else{ if (resto == 0 || resto == 1 || resto == 10){ total = 1; } else{ total = 11-resto; } return total; } }

Alguem consegue notar alguma diferença que pode estar afetando o código?! :???:
o Código realmente esta errado :?