Reflect.getIndex() throws ArrayIndexOutOfBoundsException
David Pinheiro <[email protected]> Thu, 18 Dec 2014 00:44:11 +0000
| Newsgroups | gmane.comp.java.beanshell.user |
|---|---|
| Message-ID | <CADuDOppzxwVc7BAGvU4L5FZ1LLn2wJrGFQ25pc64Qm3FSe39uA@mail.gmail.com> |
--001a11c26464009d1c050a72e431
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Hi,
I'm running some Genetic Programming (GP) experiments.
GP auto-generates lots of programs to be run by BeanShell.
The majority run correctly, but 1% give ArrayIndexOutOfBoundsException in
Reflect.getIndex() for no apparent reason.
Please run the attached Main.java file.
Same stuff happens with the inputs (just to give some examples):
expression =3D
"i=3D0;j=3D0;temp=3D0;time=3DSystem.currentTimeMillis();for(j=3D0;j<array.l=
ength;j++){if((System.currentTimeMillis()-time)>1000)return
null;if(j<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darray[j]=
;array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=3Darray[i];array[=
i]=3Darray[j];array[j]=3Dtemp;}}for(i=3D0;i<array.length;i++){if((System.cu=
rrentTimeMillis()-time)>1000)return
null;if(j<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darray[j]=
;array[j]=3Dtemp;}}if(array[i]<array[i]){if(j<array.length&&i<array.length)=
{temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}}return
array;";
argValues =3D new int[][] {{7, 3, 2, 9, 5}};
expression =3D
"i=3D0;j=3D0;temp=3D0;time=3DSystem.currentTimeMillis();for(i=3D0;i<array.l=
ength;i++){if((System.currentTimeMillis()-time)>1000)return
null;if(j<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darray[j]=
;array[j]=3Dtemp;}}if(array[j]<array[i]){if(j<array.length&&i<array.length)=
{temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}}for(j=3D0;j<array.le=
ngth;j++){if((System.currentTimeMillis()-time)>1000)return
null;if(j<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darray[j]=
;array[j]=3Dtemp;}}if(j<array.length&&i<array.length){temp=3Darray[i];array=
[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=3Da=
rray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length&&i<array.len=
gth){temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length=
&&i<array.length){temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(j=
<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darray[j];array[j]=
=3Dtemp;}if(j<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darra=
y[j];array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=3Darray[i];ar=
ray[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=
=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(array[j]<array[j]){if(j=
<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darray[j];array[j]=
=3Dtemp;}if(j<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darra=
y[j];array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=3Darray[i];ar=
ray[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=
=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}}return
array;";
argValues =3D new int[][] {{5, 7, 3, 2, 9}};
expression =3D
"i=3D0;j=3D0;temp=3D0;time=3DSystem.currentTimeMillis();for(j=3D0;j<array.l=
ength;j++){if((System.currentTimeMillis()-time)>1000)return
null;if(j<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darray[j]=
;array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=3Darray[i];array[=
i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=3Dar=
ray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length&&i<array.leng=
th){temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length&=
&i<array.length){temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(j<=
array.length&&i<array.length){temp=3Darray[i];array[i]=3Darray[j];array[j]=
=3Dtemp;}if(j<array.length&&i<array.length){temp=3Darray[i];array[i]=3Darra=
y[j];array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=3Darray[i];ar=
ray[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length&&i<array.length){temp=
=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length&&i<array=
.length){temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.le=
ngth&&i<array.length){temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}=
}if(array[j]<array[j]){if(array[j]<array[i]){if(j<array.length&&i<array.len=
gth){temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}if(j<array.length=
&&i<array.length){temp=3Darray[i];array[i]=3Darray[j];array[j]=3Dtemp;}}}re=
turn
array;";
argValues =3D new int[][] {{5, 7, 3, 2, 9}};
I've tried this with bsh-2.0b5, bsh-2.0b4 and bsh-1.3.0 allways giving the
same ArrayIndexOutOfBoundsException.
If anyone can help, I'll appreciate a lot.
Best regards,
David
--001a11c26464009d1c050a72e431
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
--001a11c26464009d1c050a72e431
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Beanshell-users mailing list
Beanshell-users-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/beanshell-users
--001a11c26464009d1c050a72e431--