--- solenv/bin/modules/installer/globals.pm~ 2010-12-18 14:23:42.000000000 +0100 +++ solenv/bin/modules/installer/globals.pm 2011-01-27 20:17:36.073565393 +0100 @@ -411,8 +411,8 @@ %usedtreeconditions = (); %moduledestination = (); - $unomaxservices = 1800; # regcomp -c argument length - $javamaxservices = 15; + $unomaxservices = 1; # regcomp -c argument length + $javamaxservices = 1; $one_cab_file = 0; $fix_number_of_cab_files = 1; --- solenv/bin/modules/installer/servicesfile.pm~ 2010-11-11 20:08:56.000000000 +0100 +++ solenv/bin/modules/installer/servicesfile.pm 2011-01-27 20:22:03.017565388 +0100 @@ -228,17 +228,31 @@ if ( $i % $installer::globals::javamaxservices == 0 || $i > $#{$javacomponents} ) # limiting to $installer::globals::maxservices files { my @regcompoutput = (); + my @throwregcompoutput = (); my $systemcall = "$installer::globals::wrapcmd $$regcompfileref -register -br ".fix_cygwin_path($regcomprdb)." -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -l com.sun.star.loader.Java2 -wop=" . $installer::globals::quote . $javaservicesurlprefix . $installer::globals::quote ." -env:URE_INTERNAL_JAVA_DIR=" . $installer::globals::quote . make_file_url($$ure_internal_java_dir_ref) . $installer::globals::quote . " 2\>\&1 |"; - open (REG, "$systemcall"); - while (<REG>) {push(@regcompoutput, $_); } - close (REG); - - my $returnvalue = $?; # $? contains the return value of the systemcall - + my $returnvalue = 1; my $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); + + for ( my $j = 0; $j <= 10; $j++) { + open (REG, "$systemcall"); + while (<REG>) {push(@throwregcompoutput, $_); } + close (REG); + + $returnvalue = $?; # $? contains the return value of the systemcall + + push( @installer::globals::logfileinfo, $infoline); + + if ($returnvalue == 0) { + last; + } + + $infoline = "RATS: attempt $j: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); + } + + $regcompoutput = $throwregcompoutput; for ( my $k = 0; $k <= $#regcompoutput; $k++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$k]"); }