[Win32utils-devel] [ win32utils-Bugs-28904 ] Gem win32-eventlog v0.5.2 on Ruby 1.9.1 and 1.9.2

noreply at rubyforge.org noreply at rubyforge.org
Tue Mar 8 16:46:04 EST 2011


Bugs item #28904, was opened at 2011-02-02 10:41
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=411&aid=28904&group_id=85

Category: win32-eventlog
Group: Code
Status: Open
Resolution: None
Priority: 3
Submitted By: Jason Bourne (jbourne)
Assigned to: Nobody (None)
Summary: Gem win32-eventlog v0.5.2 on Ruby 1.9.1 and 1.9.2

Initial Comment:
1.Requirement:  Read the latest lines of the Windows Application Event
Viewer to verify deployment status executions.
2. Environment: Ruby 1.9.1 On Windows
                win32-eventlog (0.5.2)
                windows-api (0.4.0)
                windows-pr (1.1.3)
3. Problem: On Ruby 1.8.7 my scripts using win32 evenlog api works fine
but on ruby 1.9.1 they don't. I know the String management has changed
on Ruby 1.9.1 and above.

4. Exception Details.
   C:/Ruby191/lib/ruby/gems/1.9.1/gems/win32-eventlog-0.5.2/lib/win32/eventlog.rb:14:in
`[]': invalid byte sequence in US-ASCII (ArgumentError)
        from
C:/Ruby191/lib/ruby/gems/1.9.1/gems/win32-eventlog-0.5.2/lib/win32/eventlog.rb:14:in
`nstrip'
        from
C:/Ruby191/lib/ruby/gems/1.9.1/gems/win32-eventlog-0.5.2/lib/win32/eventlog.rb:613:in
`read'
        from bw_logutil.rb:49:in `read_event_log'
        from bw_logutil.rb:97:in `block in <main>'
        from bw_logutil.rb:96:in `each'
        from bw_logutil.rb:96:in `<main>'
5. Source of Information :
   http://raa.ruby-lang.org/project/win32-eventlog/
6. Tried Solutions.  Tried to use WMI but there is no way to filter the
latest results.

By the way I already use Ruby 1.9.2 and i have the same results.

Could someone help me with this.

----------------------------------------------------------------------

Comment By: Ben Jansen (aogail)
Date: 2011-03-08 13:46

Message:
For anyone else who comes across this page: I discovered that my earlier diff sometimes corrupts the event message. The following version does not exhibit that problem on my test system.


--- \Ruby192\lib\ruby\gems\1.9.1\gems\win32-eventlog-0.5.2\lib\win32\eventlog.rb	Tue Mar 08 13:40:54 2011
+++ eventlog.rb	Tue Mar 08 13:39:56 2011
@@ -11,6 +11,9 @@
    # Return the portion of the string up to the first NULL character.  This
    # was added for both speed and convenience.
    def nstrip
+      if !self.ascii_only?
+         self.force_encoding('BINARY')
+      end
       self[ /^[^\0]*/ ]
    end
 end


----------------------------------------------------------------------

Comment By: Jason Bourne (jbourne)
Date: 2011-03-04 13:12

Message:
Thank you it works....!!

----------------------------------------------------------------------

Comment By: Ben Jansen (aogail)
Date: 2011-03-02 15:57

Message:
The following patch fixes this error for me. I based this upon the post at <http://www.ruby-forum.com/topic/1004404>.

--- C:/Ruby192/lib/ruby/gems/1.9.1/gems/win32-eventlog-0.5.2/lib/win32/eventlog.rb	Wed Mar 02 15:51:40 2011
+++ \Users\bjansen\Development\eventlog.rb	Wed Mar 02 15:51:25 2011
@@ -11,6 +11,9 @@
    # Return the portion of the string up to the first NULL character.  This
    # was added for both speed and convenience.
    def nstrip
+      if !self.ascii_only?
+         self.force_encoding($>.external_encoding || Encoding.default_external)
+      end
       self[ /^[^\0]*/ ]
    end
 end


----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=411&aid=28904&group_id=85


More information about the win32utils-devel mailing list