[kepler-users] Size Limitation of ArrayTokens?
Stefan Proell
sproell at sba-research.org
Tue May 22 07:04:30 PDT 2012
Hi!
There seems to be a problem with the buffer in the BinaryFileReader
Class, which is limited to 20000 bytes, as you can see in the
corresponding source file (line 277).
/** The current bytes read. */
protected byte[] bytesRead = new byte[20000];
It only is reading this first 20000 bytes and does not proceed after
this. I will have a closer look at ...
Stefan
Am 2012-05-22 15:12, schrieb Stefan Proell:
> Dear Matt,
> thanks for your example. It works fine, but does not solve my problem.
> I use a Binary File Reader to read a file from my local disk. The
> Binary File Reader reads a local file path or URL and outputs an array
> of bytes. No matter what file I want to read, the array size is
> exactly 20 000 (bytes). I attached a small sample workflow to
> demonstrate this. It simply reads a file (in my testcase this file is
> about 40 MB) and displays the length of the resulting Byte Array.
>
> Do you have any idea why this behaviour occurs and can your reproduce it?
>
> Kind regards,
> Stefan
>
>
> Am 2012-05-21 19:05, schrieb Matt Jones:
>> I also took a look, and tried a larger array -- the attached workflow
>> processes 30K integers through an array and back out again, and works
>> fine. So there isn't an inherent limit at 20K elements. So I'm not
>> quite sure what's happening with yours, but maybe this will help to
>> debug.
>>
>> Matt
>>
>>
>> On Mon, May 21, 2012 at 8:32 AM, Christopher Brooks
>> <cxh at eecs.berkeley.edu <mailto:cxh at eecs.berkeley.edu>> wrote:
>>
>> HI Stefan,
>> A quick search of the web shows no apparent limits.
>> A more complete test case would help.
>>
>> The way I would approach this is by splitting up the problem into
>> first just reading the data and being sure that worked and then
>> adding more like encoding.
>>
>> _Christopher
>>
>>
>> On 5/21/12 9:20 AM, Stefan Proell wrote:
>>
>> Dear Mailing list,
>> I wrote my own Actor which I need in order to encode binary
>> files via Base64 and pass the resulting encoded String to a
>> REST Service. I feed the binary file with a
>> BinaryFileReader-Actor to my encoding Actor and cast the Token
>> to an Array, as I found no other solution to receive the bytes
>> from the file. I then use a standard (and also deprecated)
>> method for encoding the file first to Base64 and then send it
>> through some URL-safe encoding. The method looks like this:
>>
>>
>> @Override
>> public void fire() throws IllegalActionException {
>>
>> super.fire();
>>
>> // Read file from InputPort and convert to a ByteArray
>> ArrayToken inputToken = (ArrayToken) inputPort.get(0);
>> byte[] inputBytes =
>> ArrayToken.arrayTokenToUnsignedByteArray(inputToken);
>>
>> // Encoding
>> String encode = new
>> String(Base64.encodeBase64(inputBytes));
>> String encodedString =
>> java.net.URLEncoder.encode(encode);
>>
>> output.send(0, new StringToken(encodedString));
>>
>> }
>>
>> My problem is that the encoded file is truncated by the actor
>> and hence not usable for further processing. There seems to be
>> a limit of 20 000 array elements (bytes), which is not
>> sufficient for my purpose. Does anyone have an idea why the
>> file is chopped off after 20k letters?
>>
>> Thanks in advance,
>> Stefan
>>
>> _______________________________________________
>> Kepler-users mailing list
>> Kepler-users at kepler-project.org
>> <mailto:Kepler-users at kepler-project.org>
>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>>
>>
>> -- Christopher Brooks, PMP University
>> of California
>> CHESS Executive Director US Mail: 337 Cory Hall
>> Programmer/Analyst CHESS/Ptolemy/Trust Berkeley, CA
>> 94720-1774
>> ph: 510.643.9841 <tel:510.643.9841>
>> (Office: 545Q Cory)
>> home: (F-Tu) 707.665.0131 <tel:707.665.0131> cell: 707.332.0670
>> <tel:707.332.0670>
>>
>>
>> _______________________________________________
>> Kepler-users mailing list
>> Kepler-users at kepler-project.org
>> <mailto:Kepler-users at kepler-project.org>
>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>>
>>
>
>
>
> _______________________________________________
> Kepler-users mailing list
> Kepler-users at kepler-project.org
> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
More information about the Kepler-users
mailing list