When creating a new cache (which is not defined in server configuration file) in HotRod implementation of JSR-107, the cache is created as <literal>local</literal> only in one of the servers. This behavior requires class <classname>org.jboss.as.controller.client.ModelControllerClient</classname> to be present on the classpath.
As a workaround use a clustered cache defined in the server configuration file. This still requires <methodname>cacheManager.createCache(cacheName, configuration)</methodname> to be invoked before accessing the cache for the first time.
Current implementation supports only using local caches - usage of different cache types leads to the following exceptions (when using cache which is included in configuration file):
Client:
javax.cache.CacheException: ISPN021027: Failed to add local cache 'default' on the server
at org.infinispan.jcache.remote.ServerManager$3.run(ServerManager.java:118)
at org.infinispan.jcache.remote.ServerManager.withManagementClient(ServerManager.java:171)
at org.infinispan.jcache.remote.ServerManager.addCache(ServerManager.java:104)
at org.infinispan.jcache.remote.JCacheManager.create(JCacheManager.java:65)
at org.infinispan.jcache.AbstractJCacheManager.createCache(AbstractJCacheManager.java:94)
at org.infinispan.server.test.jcache.JCacheRemoteIT.testCachingConfiguration(JCacheRemoteIT.java:78)
Server:
10:47:29,896 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) JBAS014612: Operation ("add") failed - address: ([
("subsystem" => "infinispan"),
("cache-container" => "clustered"),
("local-cache" => "default")
]): org.jboss.msc.service.DuplicateServiceException: Service jboss.infinispan.clustered.default.config is already registered
at org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:158) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:236) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:742) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:243) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2433) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:345) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.as.controller.OperationContextImpl$ContextServiceBuilder.install(OperationContextImpl.java:1688) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.clustering.infinispan.subsystem.CacheAdd.installCacheConfigurationService(CacheAdd.java:321)
at org.jboss.as.clustering.infinispan.subsystem.CacheAdd.installRuntimeServices(CacheAdd.java:246)
at org.jboss.as.clustering.infinispan.subsystem.CacheAdd.performRuntime(CacheAdd.java:205)
at org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:75) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:702) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:537) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:338) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:314) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1144) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:331) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:201) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.doExecute(ModelControllerClientOperationHandler.java:219) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.access$300(ModelControllerClientOperationHandler.java:146) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:168) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:164) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_60]
at javax.security.auth.Subject.doAs(Subject.java:415) [rt.jar:1.7.0_60]
at org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:94) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1.execute(ModelControllerClientOperationHandler.java:164) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.protocol.mgmt.AbstractMessageHandler$2$1.doExecute(AbstractMessageHandler.java:298) [jboss-as-protocol-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at org.jboss.as.protocol.mgmt.AbstractMessageHandler$AsyncTaskRunner.run(AbstractMessageHandler.java:537) [jboss-as-protocol-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.2.Final-redhat-1.jar:2.1.2.Final-redhat-1]
Furthermore, when using multiple nodes in the cluster and the cache is not amongst configured caches, it is created as 'local' only on one node (this relates to fact org.infinispan.jcache.remote.ServerManager is configured to use one specific management interface - which is btw hardcoded and cannot be changed). Exception can occur when trying to write into cache.
Client
javax.cache.CacheException: ISPN021022: Cache named 'custom' was not found.
at org.infinispan.jcache.remote.JCacheManager.create(JCacheManager.java:75)
at org.infinispan.jcache.AbstractJCacheManager.createCache(AbstractJCacheManager.java:94)
at org.infinispan.server.test.jcache.JCacheRemoteIT.testCachingConfiguration(JCacheRemoteIT.java:78)
Server
10:59:01,034 ERROR [org.infinispan.server.hotrod.HotRodDecoder] (HotRodServerWorker-1) ISPN005003: Exception reported: org.infinispan.server.hotrod.CacheNotFoundException: Cache with name 'custom' not found amongst the configured caches
at org.infinispan.server.hotrod.HotRodDecoder.getCache(HotRodDecoder.scala:102) [infinispan-server-hotrod-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT]
at org.infinispan.server.hotrod.HotRodDecoder.getCache(HotRodDecoder.scala:29) [infinispan-server-hotrod-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT]
at org.infinispan.server.core.AbstractProtocolDecoder.org$infinispan$server$core$AbstractProtocolDecoder$$decodeHeader(AbstractProtocolDecoder.scala:130) [infinispan-server-core-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT]
at org.infinispan.server.core.AbstractProtocolDecoder.decodeDispatch(AbstractProtocolDecoder.scala:70) [infinispan-server-core-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT]
at org.infinispan.server.core.AbstractProtocolDecoder.decode(AbstractProtocolDecoder.scala:61) [infinispan-server-core-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT]
at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:362) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:141) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at org.infinispan.server.core.AbstractProtocolDecoder.channelRead(AbstractProtocolDecoder.scala:459) [infinispan-server-core-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:327) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:116) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:494) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:461) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60]
We pass the TCK without this feauture.
This will be fixed indirectly when we start supporting domain managed mode for server (scheduled for JDG 7), so that cache creation operations will be sent to all nodes.
Current implementation supports only using local caches - usage of different cache types leads to the following exceptions (when using cache which is included in configuration file): Client: javax.cache.CacheException: ISPN021027: Failed to add local cache 'default' on the server at org.infinispan.jcache.remote.ServerManager$3.run(ServerManager.java:118) at org.infinispan.jcache.remote.ServerManager.withManagementClient(ServerManager.java:171) at org.infinispan.jcache.remote.ServerManager.addCache(ServerManager.java:104) at org.infinispan.jcache.remote.JCacheManager.create(JCacheManager.java:65) at org.infinispan.jcache.AbstractJCacheManager.createCache(AbstractJCacheManager.java:94) at org.infinispan.server.test.jcache.JCacheRemoteIT.testCachingConfiguration(JCacheRemoteIT.java:78) Server: 10:47:29,896 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 2) JBAS014612: Operation ("add") failed - address: ([ ("subsystem" => "infinispan"), ("cache-container" => "clustered"), ("local-cache" => "default") ]): org.jboss.msc.service.DuplicateServiceException: Service jboss.infinispan.clustered.default.config is already registered at org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:158) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:236) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:742) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:243) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2433) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:345) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.as.controller.OperationContextImpl$ContextServiceBuilder.install(OperationContextImpl.java:1688) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.clustering.infinispan.subsystem.CacheAdd.installCacheConfigurationService(CacheAdd.java:321) at org.jboss.as.clustering.infinispan.subsystem.CacheAdd.installRuntimeServices(CacheAdd.java:246) at org.jboss.as.clustering.infinispan.subsystem.CacheAdd.performRuntime(CacheAdd.java:205) at org.jboss.as.controller.AbstractAddStepHandler$1.execute(AbstractAddStepHandler.java:75) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:702) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:537) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:338) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:314) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1144) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:331) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:201) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.doExecute(ModelControllerClientOperationHandler.java:219) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.access$300(ModelControllerClientOperationHandler.java:146) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:168) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:164) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_60] at javax.security.auth.Subject.doAs(Subject.java:415) [rt.jar:1.7.0_60] at org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:94) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1.execute(ModelControllerClientOperationHandler.java:164) [jboss-as-controller-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.protocol.mgmt.AbstractMessageHandler$2$1.doExecute(AbstractMessageHandler.java:298) [jboss-as-protocol-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at org.jboss.as.protocol.mgmt.AbstractMessageHandler$AsyncTaskRunner.run(AbstractMessageHandler.java:537) [jboss-as-protocol-7.5.0.Final-redhat-19.jar:7.5.0.Final-redhat-19] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_60] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60] at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.2.Final-redhat-1.jar:2.1.2.Final-redhat-1] Furthermore, when using multiple nodes in the cluster and the cache is not amongst configured caches, it is created as 'local' only on one node (this relates to fact org.infinispan.jcache.remote.ServerManager is configured to use one specific management interface - which is btw hardcoded and cannot be changed). Exception can occur when trying to write into cache. Client javax.cache.CacheException: ISPN021022: Cache named 'custom' was not found. at org.infinispan.jcache.remote.JCacheManager.create(JCacheManager.java:75) at org.infinispan.jcache.AbstractJCacheManager.createCache(AbstractJCacheManager.java:94) at org.infinispan.server.test.jcache.JCacheRemoteIT.testCachingConfiguration(JCacheRemoteIT.java:78) Server 10:59:01,034 ERROR [org.infinispan.server.hotrod.HotRodDecoder] (HotRodServerWorker-1) ISPN005003: Exception reported: org.infinispan.server.hotrod.CacheNotFoundException: Cache with name 'custom' not found amongst the configured caches at org.infinispan.server.hotrod.HotRodDecoder.getCache(HotRodDecoder.scala:102) [infinispan-server-hotrod-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT] at org.infinispan.server.hotrod.HotRodDecoder.getCache(HotRodDecoder.scala:29) [infinispan-server-hotrod-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT] at org.infinispan.server.core.AbstractProtocolDecoder.org$infinispan$server$core$AbstractProtocolDecoder$$decodeHeader(AbstractProtocolDecoder.scala:130) [infinispan-server-core-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT] at org.infinispan.server.core.AbstractProtocolDecoder.decodeDispatch(AbstractProtocolDecoder.scala:70) [infinispan-server-core-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT] at org.infinispan.server.core.AbstractProtocolDecoder.decode(AbstractProtocolDecoder.scala:61) [infinispan-server-core-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT] at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:362) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:141) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at org.infinispan.server.core.AbstractProtocolDecoder.channelRead(AbstractProtocolDecoder.scala:459) [infinispan-server-core-6.3.0-redhat-SNAPSHOT.jar:6.3.0-redhat-SNAPSHOT] at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:327) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:116) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:494) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:461) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [netty-all-4.0.18.Final-redhat-1.jar:4.0.18.Final-redhat-1] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60]