Jruby1.6.2 has "Bad file descriptor" error with ant 1.8.2
---------------------------------------------------------

                 Key: JRUBY-5904
                 URL: https://jira.codehaus.org/browse/JRUBY-5904
             Project: JRuby
          Issue Type: Bug
          Components: JRuby-extras
    Affects Versions: JRuby 1.6.2
         Environment: windows xp,vista, ant1.8.1
            Reporter: Andyma


We are using JRuby with ant, it works very well with version 1.4.1, when 
upgrade to 1.6.2, we have many errors related to "Bad file descriptor", the 
stacktrace is as follow:

[createupdatevcproj] Bad file descriptor - Bad file descriptor
[createupdatevcproj] org/jruby/RubyIO.java:1330:in `write'
[createupdatevcproj] <script>:31:in `(root)'
[createupdatevcproj] org/jruby/RubyIO.java:1122:in `open'
[createupdatevcproj] <script>:30:in `(root)' (<script> l.35)

part of ant file:

....
<for param="projectfile" parallel="true" threadCount="10">
  <filelist refid="qmake.project.files" />
  <sequential>
    <createupdatevcproj projectfile="@{projectfile}" />
  </sequential>
</for>
...             

the definition of "createupdatevcproj":
<scriptdef name="createupdatevcproj" language="ruby">
                <attribute name="projectfile" />
    <![CDATA[
            begin
              antdir      = $project.getProperty("global.antdir")
        devtdir     = $project.getProperty("global.devtools")
        qtdir       = $project.getProperty("global.qtdir")
        rubydir     = $project.getProperty("global.rubydir")
        mkspec      = $project.getProperty("build.mkspec")
        ttbuild     = $project.getProperty("global.basedir")+"/Build"
        
        projectfile = $attributes.get("projectfile")

        require antdir + "/antlogging.rb"
        require 'pathname'

        pro_dir  = File.dirname(projectfile)
        pro_file = File.basename(projectfile)

        commands  = "@echo off \n"
        commands += "set PATH=#{devtdir}/bin;%PATH% \n"
        commands += "set TTBUILD=#{ttbuild} \n"
        commands += "call #{qtdir}/bin/qtvars.bat vsvars\n"
        commands += "call #{rubydir}/bin/rubyvars.bat \n"
        commands += "qmake.exe "
        commands += "-tp vc -nodepend -norecursive -nomoc -spec #{mkspec} "
        commands += pro_file
        commands += "\n"

        File.open(pro_dir + "/" + "UpdateVCProj.bat", 'w') {|f|
          f.write(commands)
        }

        rescue => e
           
error_message("#{e.message}\n#{e.backtrace.join("\n")}",__FILE__,__LINE__)
        end
        ]]>
</scriptdef>

I can't reproduce it with single ant script definition, I guess something 
happen when using mutithread with ant, our solution has hundreds of projects, 
many ant script with File operations report error saying "Bad file descriptor".

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to