Hi there,

while trying to create a 64-bit version of ooRexx for Linux, I noticed
that the enclosed patch has not yet been applied to trunk.

If the patch is o.k. as such, I would request the ooRexx team to apply it.

Reason being, that people on Ubuntu/Linux can fetch the latest ooRexx
binary from the build machine, if they wish to check out the OOo-binding
of BSF4ooRexx. Without that patch, it may not be possible for interested
people to run any OOo ooRexx scripts successfully. (Since I applied the
patch to the 32-bit ooRexx on Ubuntu no problems have occurred.)

TIA,

---rony


On 17.08.2010 15:05, Rony G. Flatscher wrote:
> Done:
>
>     * bug report
>       
> <https://sourceforge.net/tracker/?func=detail&aid=3046998&group_id=119701&atid=684730>
>       containg link to the
>     * patch at:
>       
> <http://sourceforge.net/tracker/?func=detail&aid=3046995&group_id=119701&atid=684732>.
>
> Many thanks!
>
> ---rony
>
>
> On 17.08.2010 13:56, Rick McGuire wrote:
>> Please open a tracker for this.
>>
>> Rick
>>
>> On Tue, Aug 17, 2010 at 7:44 AM, Rony G. Flatscher
>> <rony.flatsc...@wu-wien.ac.at> wrote:
>>   
>>> Removing the fileno(handle) block in FileSystem.cpp resolves the problem!
>>> (It seems that this removal is o.k. as we received already a valid file
>>> handle at that point, which should not be the case if the maximum open file
>>> handles was exceeded already.)
>>>
>>> Shall I open a tracker with a patch for this? (Alternatively, I tried to
>>> picture the block that needs to be removed.)
>>>
>>> ---rony
>>>
>>>
>>> On 16.08.2010 20:32, Rick McGuire wrote:
>>>
>>> Hmmm, taking a quick look at the code and the places where the file
>>> unreadable error can be triggered, I found the following lines in
>>> FileSystem.cpp:
>>>
>>>
>>> RexxBuffer *SystemInterpreter::readProgram(const char *file_name)
>>> /*******************************************************************/
>>> /* Function:  Read a program into a buffer                         */
>>> /*******************************************************************/
>>> {
>>>     FILE    *handle;                     /* open file access handle
>>> */
>>>     size_t   buffersize;                 /* size of read buffer
>>> */
>>>     {
>>>         handle = fopen(file_name, "rb");     /* open as a binary file
>>>            */
>>>         if (handle == NULL)
>>>         {                 /* open error?                       */
>>>             return OREF_NULL;                  /* return nothing
>>>              */
>>>         }
>>>
>>>         if (fileno(handle) == (FOPEN_MAX - 2))
>>>         {      /* open error?                       */
>>>             return OREF_NULL;                  /* return nothing
>>>              */
>>>         }
>>>
>>>         fseek(handle, 0, SEEK_END);          /* seek to the file end
>>>            */
>>>         buffersize = ftell(handle);          /* get the file size
>>>            */
>>>         fseek(handle, 0, SEEK_SET);          /* seek back to the file
>>> beginning   */
>>>     }
>>>     RexxBuffer *buffer = new_buffer(buffersize);     /* get a buffer
>>> object               */
>>>     ProtectedObject p(buffer);
>>>     {
>>>         UnsafeBlock releaser;
>>>
>>>         fread(buffer->getData(), 1, buffersize, handle);
>>>         fclose(handle);                      /* close the file
>>>            */
>>>     }
>>>     return buffer;                       /* return the program buffer
>>> */
>>> }
>>>
>>>
>>> I don't understand the purpose of the "fileno(handle) == (FOPEN_MAX -
>>> 2)" test, but that certainly could be the cause of this error.  It's
>>> consistent with the fact that this error occurs even if you change the
>>> name of the file.  This test appears to be something pulled forward
>>> from the 3.2.0 code, but I don't know of any reason why that should
>>> have been there in the first place.
>>>
>>> Given the number of files that the jvm generally has open, it is
>>> certainly conceivable that we're hitting a window where that's true.
>>>
>>> Rick
>>>
>>>       

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to