# File lib/Dnsruby/Hosts.rb, line 48
    def lazy_initialize
      @mutex.synchronize {
        unless @initialized
          @name2addr = {}
          @addr2name = {}
          begin
            open(@filename) {|f|
              f.each {|line|
                line.sub!(/#.*/, '')
                addr, hostname, *aliases = line.split(/\s+/)
                next unless addr
                addr.untaint
                hostname.untaint
                @addr2name[addr] = [] unless @addr2name.include? addr
                @addr2name[addr] << hostname
                @addr2name[addr] += aliases
                @name2addr[hostname] = [] unless @name2addr.include? hostname
                @name2addr[hostname] << addr
                aliases.each {|n|
                  n.untaint
                  @name2addr[n] = [] unless @name2addr.include? n
                  @name2addr[n] << addr
                }
              }
            }
          rescue Exception
            # Java won't find this file if running on Windows
          end
          @name2addr.each {|name, arr| arr.reverse!}
          @initialized = true
        end
      }
      self
    end