Calling COM method with signature [VT_BSTR, VT_BYREF|VT_I2] fails
-----------------------------------------------------------------
Key: JRUBY-5404
URL: http://jira.codehaus.org/browse/JRUBY-5404
Project: JRuby
Issue Type: Bug
Components: win32ole
Affects Versions: JRuby 1.6RC1
Environment: jruby 1.6.0.RC1 (ruby 1.8.7 patchlevel 330) (2011-01-10
769f847) (Java HotSpot(TM) Client VM 1.6.0_23) [Windows XP-x86-java]
jruby-win32ole 0.8.3
WinXP SP3
Reporter: Colby Hart
Assignee: Thomas E Enebo
Priority: Minor
Calling the following works with ruby 1.8.6 [i386-mswin32], but fails with
JRuby. I tried it on a few systems with the same configuration.
# VOID LoadObjects
# BSTR arg0 --- Configuration []
# I2 arg1 --- errCode []
def LoadObjects(arg0, arg1=0)
ret = _invoke(1, [arg0, arg1], [VT_BSTR, VT_BYREF|VT_I2])
@lastargs = WIN32OLE::ARGV
ret
end
The exception is:
Java::OrgRacobCom::ComFailException: A COM exception has been encountered:
At Invoke of: 1
Description: Type mismatch.
from org.racob.com.Dispatch.invokev(Native Method)
from org.racob.com.Dispatch.invokev(Dispatch.java:247)
from org.racob.com.Dispatch.invoke(Dispatch.java:204)
from
org.jruby.ext.win32ole.RubyWIN32OLE.invokeInternal(RubyWIN32OLE.java:165)
from org.jruby.ext.win32ole.RubyWIN32OLE._invoke(RubyWIN32OLE.java:102)
from
org.jruby.ext.win32ole.RubyWIN32OLE$i_method_3_0$RUBYINVOKER$_invoke.call(org/jruby/ext/win32ole/RubyWIN32OLE$i_method_3_0$RUBYINVOKER$_invoke.gen:65535)
from
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:322)
from
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:207)
from
org.jruby.ast.FCallThreeArgNode.interpret(FCallThreeArgNode.java:40)
from org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
from org.jruby.ast.NewlineNode.interpret(NewlineNode.java:103)
from org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
from
org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:70)
from
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:184)
from
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:179)
from
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:282)
... 150 levels...
from org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
from org.jruby.ast.NewlineNode.interpret(NewlineNode.java:103)
from org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
from
org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:70)
from
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:184)
from
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:179)
from
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:282)
from
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:139)
from
C_3a_.rubys.jruby_minus_1_dot_6_dot_0_dot_RC1.bin.jirb.__file__(C:\rubys\jruby-1.6.0.RC1\bin\jirb:13)
from
C_3a_.rubys.jruby_minus_1_dot_6_dot_0_dot_RC1.bin.jirb.load(C:\rubys\jruby-1.6.0.RC1\bin\jirb)
from org.jruby.Ruby.runScript(Ruby.java:702)
from org.jruby.Ruby.runNormally(Ruby.java:587)
from org.jruby.Ruby.runFromMain(Ruby.java:421)
from org.jruby.Main.run(Main.java:304)
from org.jruby.Main.run(Main.java:144)
from org.jruby.Main.main(Main.java:113)
I would be happy to provide any further information that you think would be
helpful.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
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