You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@buildr.apache.org by Oliver Kopp <ko...@googlemail.com> on 2012/05/07 09:52:55 UTC

filter and "ArgumentError : interning empty string"

Hi,

I want to replace ${version} in a specific .js file with a version string.

I'm trying to follow the suggestion of
http://stackoverflow.com/questions/6938984/buildr-filter-web-xml-in-packaging-war.
I'm having about 1700 files in subdirectories, which should not be too
much. buildr, however, complains with "ArgumentError : interning empty
string" at line "filter('src/main/webapp/').into(task.to_s).using(".

A second run outputs no errors, but the string is not replaced.

How can I debug this issue?
buildr --trace package doesn't help much. Outputs some "mkdir -p"
statements and then states that an "Exception while invoking prerequisites
of task <Rake::Task default => [build]>" happened.

Cheers,

Oliver

Re: filter and "ArgumentError : interning empty string"

Posted by Alex Boisvert <al...@gmail.com>.
On Mon, May 7, 2012 at 11:29 PM, Oliver Kopp <ko...@googlemail.com> wrote:

> >
> > One speculation is that you have an empty placeholder in one of your
> files,
> > e.g., ${}.
> >
>
> That's right. prototype.js :)
>
> If that's the case, you could try adding a mapping from the empty string to
> > the empty string as a workaround,
> >
>
> Tried it:
>
> ArgumentError : symbol string may not contain '\0'
>
> buildr seems to filter also binary files. Maybe it has got a problem there?
>
> Isn't it possible to say that only a certain file pattern (e.g., *.js and
> *.jsp*) should be filtered?
>


Yes, filter supports both include and exclude.

http://buildr.apache.org/rdoc/classes/Buildr/Filter.html

alex

Re: filter and "ArgumentError : interning empty string"

Posted by Oliver Kopp <ko...@googlemail.com>.
>
> One speculation is that you have an empty placeholder in one of your files,
> e.g., ${}.
>

That's right. prototype.js :)

If that's the case, you could try adding a mapping from the empty string to
> the empty string as a workaround,
>

Tried it:

ArgumentError : symbol string may not contain '\0'

buildr seems to filter also binary files. Maybe it has got a problem there?

Isn't it possible to say that only a certain file pattern (e.g., *.js and
*.jsp*) should be filtered?

Re: filter and "ArgumentError : interning empty string"

Posted by Alex Boisvert <al...@gmail.com>.
One speculation is that you have an empty placeholder in one of your files,
e.g., ${}.

If that's the case, you could try adding a mapping from the empty string to
the empty string as a workaround,

   filter('src/main/webapp/').into(task.to_s).using(
     'copyright' => COPYRIGHT,
     'version' => VERSION_STRING,
     '' => ''  # empty strings
   ).run

Does that work?

On Mon, May 7, 2012 at 10:12 AM, Oliver Kopp <ko...@googlemail.com> wrote:

> You mean the following fragment?
>
>  # replace version information in webapp files
>  # tip from
>
> http://stackoverflow.com/questions/6938984/buildr-filter-web-xml-in-packaging-war
>  filter_webapp = file("target/webapp") do |task|
>    filter('src/main/webapp/').into(task.to_s).using(
>      'copyright' => COPYRIGHT,
>      'version' => VERSION_STRING
>    ).run
>  end
>

Re: filter and "ArgumentError : interning empty string"

Posted by Oliver Kopp <ko...@googlemail.com>.
You mean the following fragment?

  # replace version information in webapp files
  # tip from
http://stackoverflow.com/questions/6938984/buildr-filter-web-xml-in-packaging-war
  filter_webapp = file("target/webapp") do |task|
    filter('src/main/webapp/').into(task.to_s).using(
      'copyright' => COPYRIGHT,
      'version' => VERSION_STRING
    ).run
  end

Re: filter and "ArgumentError : interning empty string"

Posted by Alex Boisvert <al...@gmail.com>.
On Mon, May 7, 2012 at 12:52 AM, Oliver Kopp <ko...@googlemail.com> wrote:

> I'm trying to follow the suggestion of
>
> http://stackoverflow.com/questions/6938984/buildr-filter-web-xml-in-packaging-war
> .
> I'm having about 1700 files in subdirectories, which should not be too
> much. buildr, however, complains with "ArgumentError : interning empty
> string" at line "filter('src/main/webapp/').into(task.to_s).using(".
>

And what's the full line here?  (it got truncated)

alex

Re: filter and "ArgumentError : interning empty string"

Posted by Oliver Kopp <ko...@googlemail.com>.
>
> Do you get a full stack trace?
>

Yes:


mkdir -p
C:/git-repos/valesca/valesca/target/webapp/scc-editor/editor/scripts/Core/SVG
Buildr aborted!
ArgumentError : interning empty string
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/filter.rb:319:in
`transform'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/filter.rb:336:in
`maven_transform'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/filter.rb:336:in
`gsub'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/filter.rb:336:in
`maven_transform'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/filter.rb:319:in
`transform'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/filter.rb:187:in
`run'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/filter.rb:180:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/filter.rb:180:in
`run'
C:/git-repos/valesca/valesca/buildfile:65
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:634:in
`call'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:634:in
`execute'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in
`execute'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:674:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/1.8/monitor.rb:191:in
`mon_synchronize'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:660:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:667:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/1.8/monitor.rb:191:in
`mon_synchronize'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:660:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/compile.rb:420:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:667:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/1.8/monitor.rb:191:in
`mon_synchronize'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:660:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:667:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/1.8/monitor.rb:191:in
`mon_synchronize'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:660:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:667:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/1.8/monitor.rb:191:in
`mon_synchronize'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:660:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:655:in
`invoke'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/project.rb:326:in
`local_task'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/project.rb:351:in
`[]'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/project.rb:351:in
`local_projects'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/project.rb:351:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/project.rb:351:in
`local_projects'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/project.rb:324:in
`local_task'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in
`call'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in
`execute'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in
`execute'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:674:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/1.8/monitor.rb:191:in
`mon_synchronize'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:660:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in
`invoke_prerequisites'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:667:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/1.8/monitor.rb:191:in
`mon_synchronize'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:660:in
`invoke_with_call_chain'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:655:in
`invoke'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in
`invoke_task'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:246:in
`top_level'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:246:in
`each'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:246:in
`top_level'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:535:in
`standard_exception_handling'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:237:in
`top_level'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:138:in
`run'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:535:in
`standard_exception_handling'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/lib/buildr/core/application.rb:135:in
`run'
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/bin/buildr:19
C:/Users/koppor/AppData/Roaming/.pik/rubies/jruby-1.5.6/lib/ruby/gems/1.8/gems/buildr-1.4.6-java/bin/buildr:19:in
`load'
C:\Users\koppor\AppData\Roaming\.pik\rubies\jruby-1.5.6\bin\buildr:19

Re: filter and "ArgumentError : interning empty string"

Posted by Alex Boisvert <al...@gmail.com>.
Do you get a full stack trace?

Try running:  buildr --trace all package


On Monday, May 7, 2012, Oliver Kopp wrote:

> Hi,
>
> I want to replace ${version} in a specific .js file with a version string.
>
> I'm trying to follow the suggestion of
>
> http://stackoverflow.com/questions/6938984/buildr-filter-web-xml-in-packaging-war
> .
> I'm having about 1700 files in subdirectories, which should not be too
> much. buildr, however, complains with "ArgumentError : interning empty
> string" at line "filter('src/main/webapp/').into(task.to_s).using(".
>
> A second run outputs no errors, but the string is not replaced.
>
> How can I debug this issue?
> buildr --trace package doesn't help much. Outputs some "mkdir -p"
> statements and then states that an "Exception while invoking prerequisites
> of task <Rake::Task default => [build]>" happened.
>
> Cheers,
>
> Oliver
>