[
https://issues.jboss.org/browse/ISPN-3457?page=com.atlassian.jira.plugin....
]
Luis Montoya commented on ISPN-3457:
------------------------------------
The required information:
java version "1.6.0"
Java(TM) SE Runtime Environment (build pwa6460_26sr5fp2-20130423_01(SR5 FP2))
IBM J9 VM (build 2.6, JRE 1.6.0 Windows 7 amd64-64 Compressed References 20130419_145740
(JIT enabled, AOT enabled)
J9VM - R26_Java626_SR5_FP2_20130419_1420_B145740
JIT - r11.b03_20130131_32403ifx4
GC - R26_Java626_SR5_FP2_20130419_1420_B145740_CMPRSS
J9CL - 20130419_145740)
JCL - 20130419_01
Something else:
I have been writting a test case in this class
org.infinispan.manager.CacheManagerComponentRegistryTest.java:
public void testCreateCacheManagerGlobalConfiguration(){
cm = new
DefaultCacheManager(GlobalConfigurationBuilder.defaultClusteredBuilder().build());
}
When I run this lines of code into Eclipse IDE over IBM JDK, it throws the mentioned
exception, but if I run them using maven (executing it from the commands line using the
same IBM JDK used before), it doesn´t throw the Exception, that's why I have not
committed the UT in GitHub
Infinispan error running on IBM JDK
-----------------------------------
Key: ISPN-3457
URL:
https://issues.jboss.org/browse/ISPN-3457
Project: Infinispan
Issue Type: Bug
Components: Distributed Cache
Affects Versions: 6.0.0.Alpha3
Environment: WAS 8.0.0.6 JDK, Windows 7 Professional
Reporter: Luis Montoya
Assignee: Mircea Markus
Fix For: 6.0.0.Alpha3
I created a sample application using infinispan on standar JDK (Sun/Oracle). This app
works fine using this JDK.
I tried to run the app on IBM JDK (the needed for WAS), but I get the below error:
org.infinispan.commons.CacheException: Unable to construct a GlobalComponentRegistry!
at
org.infinispan.factories.GlobalComponentRegistry.<init>(GlobalComponentRegistry.java:129)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:276)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:246)
at
org.infinispan.quickstart.clusteredcache.replication.AbstractNode.createCacheManagerProgramatically(AbstractNode.java:41)
at
org.infinispan.quickstart.clusteredcache.replication.AbstractNode.<init>(AbstractNode.java:62)
at org.infinispan.quickstart.clusteredcache.replication.Node0.main(Node0.java:32)
Caused by: org.infinispan.commons.CacheException: Unable to invoke method public void
org.infinispan.topology.LocalTopologyManagerImpl.inject(org.infinispan.remoting.transport.Transport,java.util.concurrent.ExecutorService,org.infinispan.factories.GlobalComponentRegistry,org.infinispan.util.TimeService)
on object of type LocalTopologyManagerImpl with parameters
[org.infinispan.executors.LazyInitializingExecutorService@96d7b55b,
org.infinispan.executors.LazyInitializingExecutorService@96d7b55b,
org.infinispan.factories.GlobalComponentRegistry@9fd5a559,
org.infinispan.util.DefaultTimeService@725adace]
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:188)
at
org.infinispan.factories.AbstractComponentRegistry.invokeInjectionMethod(AbstractComponentRegistry.java:229)
at
org.infinispan.factories.AbstractComponentRegistry.access$000(AbstractComponentRegistry.java:65)
at
org.infinispan.factories.AbstractComponentRegistry$Component.injectDependencies(AbstractComponentRegistry.java:797)
at
org.infinispan.factories.AbstractComponentRegistry.registerComponentInternal(AbstractComponentRegistry.java:201)
at
org.infinispan.factories.AbstractComponentRegistry.registerComponent(AbstractComponentRegistry.java:156)
at
org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:277)
at
org.infinispan.factories.AbstractComponentRegistry.getOrCreateComponent(AbstractComponentRegistry.java:253)
at
org.infinispan.factories.GlobalComponentRegistry.<init>(GlobalComponentRegistry.java:125)
... 5 more
Caused by: java.lang.IllegalArgumentException: discrepancia en el tipo de argumento
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:600)
at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:183)
... 13 more
It seems that a method which is being invoked through reflection is receiving incorrectly
the first parameter, which should be a org.infinispan.remoting.transport.Transport
instance, but it is receiving a
org.infinispan.executors.LazyInitializingExecutorService@96d7b55b instance
The code which launch the error is the next:
new DefaultCacheManager(
GlobalConfigurationBuilder.defaultClusteredBuilder().globalJmxStatistics().allowDuplicateDomains(true)
.transport().addProperty("configurationFile",
"jgroups.xml")
.build(),
new ConfigurationBuilder()
.clustering().cacheMode(CacheMode.REPL_SYNC)
.build()
);
Making a review and debug of the code, the next behavior was seen which produce the
error:
if a map called map contains something like this {1=some.class.type}, and you try to get
a value using the 0 as the key ( map.get(0), it doens't return null rather it returns
the value for the 1 key, it means, for map.get(0) it returns "some.class.type",
as if map.get(1) was called)
Also, when the contains method of Map interface is called ( map.contains(0)), it returns
true, which is incorrect because the map only has the 1 key
This behavior is happening on this class and method:
class: org.infinispan.factories.components.ComponentMetadata$InjectMetadata
methods: getParameterName, isParameterNameSet
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira