[JBoss JIRA] (ISPN-1579) Jdbc cache store throwing SQL error : incorrect syntax near '@P0' - when using MS SQL Server
by Martin Gencur (Created) (JIRA)
Jdbc cache store throwing SQL error : incorrect syntax near '@P0' - when using MS SQL Server
--------------------------------------------------------------------------------------------
Key: ISPN-1579
URL: https://issues.jboss.org/browse/ISPN-1579
Project: Infinispan
Issue Type: Bug
Affects Versions: 5.1.0.BETA5
Reporter: Martin Gencur
Assignee: Martin Gencur
Stack trace:
{code}
12:11:46,067 ERROR [org.infinispan.loaders.jdbc.DataManipulationHelper] (MSC service thread 1-4) ISPN008007: SQL error while fetching all StoredEntries: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '@P0'.
[java] at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197) [sqljdbc4.jar:]
[java] at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493) [sqljdbc4.jar:]
[java] at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:390) [sqljdbc4.jar:]
[java] at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340) [sqljdbc4.jar:]
[java] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575) [sqljdbc4.jar:]
[java] at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400) [sqljdbc4.jar:]
[java] at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179) [sqljdbc4.jar:]
[java] at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154) [sqljdbc4.jar:]
[java] at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:283) [sqljdbc4.jar:]
[java] at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:462)
[java] at org.infinispan.loaders.jdbc.DataManipulationHelper.loadSome(DataManipulationHelper.java:245) [infinispan-cachestore-jdbc-5.1.0.BETA5.jar:]
[java] at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.loadLockSafe(JdbcStringBasedCacheStore.java:289) [infinispan-cachestore-jdbc-5.1.0.BETA5.jar:]
[java] at org.infinispan.loaders.LockSupportCacheStore.load(LockSupportCacheStore.java:153) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.loaders.CacheLoaderManagerImpl.loadState(CacheLoaderManagerImpl.java:192) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.loaders.CacheLoaderManagerImpl.preload(CacheLoaderManagerImpl.java:155) [infinispan-core-5.1.0.BETA5.jar:]
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_21]
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_21]
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_21]
[java] at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_21]
[java] at org.infinispan.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:203) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:825) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:624) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:527) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:177) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.CacheImpl.start(CacheImpl.java:473) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:654) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:543) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:557) [infinispan-core-5.1.0.BETA5.jar:]
[java] at org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:100) [jboss-as-clustering-infinispan-7.1.0.Beta1.jar:]
[java] at org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:91) [jboss-as-clustering-infinispan-7.1.0.Beta1.jar:]
[java] at org.jboss.as.clustering.infinispan.subsystem.CacheService.start(CacheService.java:89) [jboss-as-clustering-infinispan-7.1.0.Beta1.jar:]
[java] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:]
[java] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:]
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_21]
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_21]
[java] at java.lang.Thread.run(Thread.java:619) [:1.6.0_21]
[java] 12:11:46,072 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.infinispan.default.memcachedCache: org.jboss.msc.service.StartException in service jboss.infinispan.default.memcachedCache: Failed to start service
[java] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1780) [jboss-msc-1.0.1.GA.jar:]
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_21]
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_21]
[java] at java.lang.Thread.run(Thread.java:619) [:1.6.0_21]
[java] Caused by: org.infinispan.CacheException: Unable to invoke method public void org.infinispan.loaders.CacheLoaderManagerImpl.preload() on object
[java] at org.infinispan.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:205)
[java] at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:825)
[java] at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:624)
[java] at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:527)
[java] at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:177)
[java] at org.infinispan.CacheImpl.start(CacheImpl.java:473)
[java] at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:654)
[java] at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:543)
[java] at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:557)
[java] at org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:100)
[java] at org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:91)
[java] at org.jboss.as.clustering.infinispan.subsystem.CacheService.start(CacheService.java:89)
[java] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:]
[java] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:]
[java] ... 3 more
[java] Caused by: java.lang.reflect.InvocationTargetException
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_21]
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_21]
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_21]
[java] at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_21]
[java] at org.infinispan.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:203)
[java] ... 16 more
[java] Caused by: org.infinispan.CacheException: Unable to preload!
[java] at org.infinispan.loaders.CacheLoaderManagerImpl.preload(CacheLoaderManagerImpl.java:157)
[java] ... 21 more
[java] Caused by: org.infinispan.loaders.CacheLoaderException: SQL error while fetching all StoredEntries
[java] at org.infinispan.loaders.jdbc.DataManipulationHelper.loadSome(DataManipulationHelper.java:254)
[java] at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.loadLockSafe(JdbcStringBasedCacheStore.java:289)
[java] at org.infinispan.loaders.LockSupportCacheStore.load(LockSupportCacheStore.java:153)
[java] at org.infinispan.loaders.CacheLoaderManagerImpl.loadState(CacheLoaderManagerImpl.java:192)
[java] at org.infinispan.loaders.CacheLoaderManagerImpl.preload(CacheLoaderManagerImpl.java:155)
[java] ... 21 more
[java] Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '@P0'.
[java] at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
[java] at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
[java] at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:390)
[java] at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
[java] at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
[java] at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
[java] at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
[java] at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
[java] at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:283)
[java] at org.jboss.jca.adapters.jdbc.WrappedPreparedStatement.executeQuery(WrappedPreparedStatement.java:462)
[java] at org.infinispan.loaders.jdbc.DataManipulationHelper.loadSome(DataManipulationHelper.java:245)
[java] ... 25 more
{code}
This is caused by DataManipulationHelper class and its getLoadSomeRowsSql() method. SQL statement for SQL_SERVER needs parentheses around '?' character when substituting a variable in place of ? :
"SELECT TOP ? %s, %s FROM %s" -> "SELECT TOP (?) %s, %s FROM %s"
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 10 months
[JBoss JIRA] (ISPN-1577) Using HotRod with CacheLoader which needs Key2StringMappers tries to use a MarshalledValue as key
by Tristan Tarrant (Created) (JIRA)
Using HotRod with CacheLoader which needs Key2StringMappers tries to use a MarshalledValue as key
-------------------------------------------------------------------------------------------------
Key: ISPN-1577
URL: https://issues.jboss.org/browse/ISPN-1577
Project: Infinispan
Issue Type: Bug
Components: Loaders and Stores, Cache Server
Affects Versions: 5.1.0.BETA5
Reporter: Tristan Tarrant
Assignee: Galder Zamarreño
Priority: Minor
Fix For: 5.1.0.CR1
Trying to access a key in a cache via HotRod causes an UnsupportedKeyTypeException. This is because the ByteArrayKey is wrapped by a MarshalledValue, and not unmarshalled before the Key2StringMapper can check whether it is a supported type
The stack trace is as follows:
10:42:55,836 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (HotRodServerWorker-2-10) ISPN000136: Execution error: org.infinispan.loaders.keymappers.UnsupportedKeyTypeException: Unsupported key type: 'org.infinispan.marshall.MarshalledValue' on key: MarshalledValue{instance=ByteArrayKey{data=ByteArray{size=8, hashCode=241dbc8b, array=0x033e057465616d73..}}, serialized=false, cachedHashCode=-1429957546}@1c455c33
at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:201)
at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:87)
at org.infinispan.loaders.LockSupportCacheStore.load(LockSupportCacheStore.java:127) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:130) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeededAndUpdateStats(CacheLoaderInterceptor.java:192) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.CacheLoaderInterceptor.visitGetKeyValueCommand(CacheLoaderInterceptor.java:89) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.EntryWrappingInterceptor.visitGetKeyValueCommand(EntryWrappingInterceptor.java:103) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:95) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:95) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.MarshalledValueInterceptor.visitGetKeyValueCommand(MarshalledValueInterceptor.java:191) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.TxInterceptor.enlistReadAndInvokeNext(TxInterceptor.java:192) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:187) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:95) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.CacheMgmtInterceptor.visitGetKeyValueCommand(CacheMgmtInterceptor.java:84) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:95) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.IsMarshallableInterceptor.visitGetKeyValueCommand(IsMarshallableInterceptor.java:84) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:107) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:67) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:95) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:318) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.CacheImpl.containsKey(CacheImpl.java:247) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.CacheImpl.containsKey(CacheImpl.java:240) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.AbstractDelegatingCache.containsKey(AbstractDelegatingCache.java:242) [infinispan-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.server.hotrod.Decoder10$.customReadKey(Decoder10.scala:197) [infinispan-server-hotrod-5.1.0-SNAPSHOT.jar:]
at org.infinispan.server.hotrod.HotRodDecoder.customDecodeKey(HotRodDecoder.scala:151) [infinispan-server-hotrod-5.1.0-SNAPSHOT.jar:]
at org.infinispan.server.core.AbstractProtocolDecoder.decodeKey(AbstractProtocolDecoder.scala:118) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.server.core.AbstractProtocolDecoder.decode(AbstractProtocolDecoder.scala:69) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.server.core.AbstractProtocolDecoder.decode(AbstractProtocolDecoder.scala:44) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
at org.jboss.netty.handler.codec.replay.CustomReplayingDecoder.callDecode(CustomReplayingDecoder.java:250) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
at org.jboss.netty.handler.codec.replay.CustomReplayingDecoder.messageReceived(CustomReplayingDecoder.java:223) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
at org.infinispan.server.core.AbstractProtocolDecoder.messageReceived(AbstractProtocolDecoder.scala:351) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80) [netty-3.2.5.Final.jar:]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.2.5.Final.jar:]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) [netty-3.2.5.Final.jar:]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274) [netty-3.2.5.Final.jar:]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) [netty-3.2.5.Final.jar:]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349) [netty-3.2.5.Final.jar:]
at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280) [netty-3.2.5.Final.jar:]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200) [netty-3.2.5.Final.jar:]
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.2.5.Final.jar:]
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44) [netty-3.2.5.Final.jar:]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_29]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_29]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_29]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 10 months
[JBoss JIRA] (ISPN-1572) JdbcStringBasedCacheStore throws java.lang.ArrayIndexOutOfBoundsException when logging that certain key type is unsupported and the key length is short
by Martin Gencur (Created) (JIRA)
JdbcStringBasedCacheStore throws java.lang.ArrayIndexOutOfBoundsException when logging that certain key type is unsupported and the key length is short
-------------------------------------------------------------------------------------------------------------------------------------------------------
Key: ISPN-1572
URL: https://issues.jboss.org/browse/ISPN-1572
Project: Infinispan
Issue Type: Bug
Affects Versions: 5.1.0.BETA5
Reporter: Martin Gencur
Assignee: Galder Zamarreño
I tried to store key "key1" via HotRod client and the key was supposed to be stored in a DB. However, I got this exception:
{code}
[java] 10:58:56,944 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (HotRodServerWorker-1-1) ISPN000136: Execution error: java.lang.ArrayIndexOutOfBoundsException: 5
[java] at org.infinispan.util.Util.toHexString(Util.java:437) [infinispan-commons-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.util.Util.printArray(Util.java:415) [infinispan-commons-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.util.ByteArrayKey.toString(ByteArrayKey.java:74) [infinispan-commons-5.1.0-SNAPSHOT.jar:]
[java] at java.lang.String.valueOf(String.java:2826) [:1.6.0_21]
[java] at java.lang.StringBuilder.append(StringBuilder.java:115) [:1.6.0_21]
[java] at org.infinispan.loaders.keymappers.UnsupportedKeyTypeException.<init>(UnsupportedKeyTypeException.java:38) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:195)
[java] at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:87)
[java] at org.infinispan.loaders.LockSupportCacheStore.load(LockSupportCacheStore.java:127) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:130) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.CacheLoaderInterceptor.visitPutKeyValueCommand(CacheLoaderInterceptor.java:79) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.ActivationInterceptor.visitPutKeyValueCommand(ActivationInterceptor.java:60) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:188) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:137) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.locking.OptimisticLockingInterceptor.visitPutKeyValueCommand(OptimisticLockingInterceptor.java:108) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:133) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:214) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.TxInterceptor.visitPutKeyValueCommand(TxInterceptor.java:152) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:115) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:119) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:104) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:64) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:61) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:318) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:917) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.CacheImpl.put(CacheImpl.java:631) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.CacheImpl.put(CacheImpl.java:623) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.AbstractDelegatingCache.put(AbstractDelegatingCache.java:114) [infinispan-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.server.core.AbstractProtocolDecoder.put(AbstractProtocolDecoder.scala:187) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.server.core.AbstractProtocolDecoder.decodeValue(AbstractProtocolDecoder.scala:141) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.server.core.AbstractProtocolDecoder.decode(AbstractProtocolDecoder.scala:71) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.server.core.AbstractProtocolDecoder.decode(AbstractProtocolDecoder.scala:44) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
[java] at org.jboss.netty.handler.codec.replay.CustomReplayingDecoder.callDecode(CustomReplayingDecoder.java:250) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
[java] at org.jboss.netty.handler.codec.replay.CustomReplayingDecoder.messageReceived(CustomReplayingDecoder.java:223) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
[java] at org.infinispan.server.core.AbstractProtocolDecoder.messageReceived(AbstractProtocolDecoder.scala:351) [infinispan-server-core-5.1.0-SNAPSHOT.jar:]
[java] at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80) [netty-3.2.5.Final.jar:]
[java] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) [netty-3.2.5.Final.jar:]
[java] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) [netty-3.2.5.Final.jar:]
[java] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274) [netty-3.2.5.Final.jar:]
[java] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) [netty-3.2.5.Final.jar:]
[java] at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349) [netty-3.2.5.Final.jar:]
[java] at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280) [netty-3.2.5.Final.jar:]
[java] at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200) [netty-3.2.5.Final.jar:]
[java] at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.2.5.Final.jar:]
[java] at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44) [netty-3.2.5.Final.jar:]
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_21]
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_21]
[java] at java.lang.Thread.run(Thread.java:619) [:1.6.0_21]
{code}
After I extended the key to "keykeykey1" I got the following:
{code}
[java] 12:17:36,066 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (MemcachedServerWorker-1-1) ISPN000136: Execution error: org.infinispan.loaders.keymappers.UnsupportedKeyTypeException: Unsupported key type: 'org.infinispan.util.ByteArrayKey' on key: ByteArrayKey{data=ByteArray{size=13, hashCode=6c1ef8f5, array=0x033e0a6b65796b65..}}
[java] at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:195)
[java] at org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore.getLockFromKey(JdbcStringBasedCacheStore.java:87)
[java] at org.infinispan.loaders.LockSupportCacheStore.load(LockSupportCacheStore.java:127) [infinispan-core-5.1.0-SNAPSHOT.jar:]
....
{code}
IMO, this is caused by implementation of printArray and toHexString methods of org.infinispan.util.Util class.
printArray() calls sb.append(toHexString(array, 8)); and toHexString does not check that the number 8 is out of bounds of the array when the key name is short.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 10 months