# ignite-sprint-3 avoid StringIndexOutOfBoundsException (ignite-657)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e182c34b Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e182c34b Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e182c34b Branch: refs/heads/ignite-645 Commit: e182c34bde3321f7fb8e9af471bc0dfa2a938f65 Parents: 07683c9 Author: sboikov <sboi...@gridgain.com> Authored: Tue Mar 31 15:34:05 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Tue Mar 31 15:34:05 2015 +0300 ---------------------------------------------------------------------- .../cache/transactions/IgniteTxLocalAdapter.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e182c34b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java index ca85838..e552619 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java @@ -3067,17 +3067,20 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter if (!cctx.txCompatible(this, activeCacheIds, cacheCtx)) { StringBuilder cacheNames = new StringBuilder(); + int idx = 0; + for (Integer activeCacheId : activeCacheIds) { cacheNames.append(cctx.cacheContext(activeCacheId).name()); - cacheNames.append(", "); + if (idx++ < activeCacheIds.size() - 1) + cacheNames.append(", "); } - cacheNames.setLength(cacheNames.length() - 2); - throw new IgniteCheckedException("Failed to enlist new cache to existing transaction " + - "(cache configurations are not compatible) [activeCaches=[" + cacheNames + - "], cacheName=" + cacheCtx.name() + ", txSystem=" + system() + + "(cache configurations are not compatible) [" + + "activeCaches=[" + cacheNames + "]" + + ", cacheName=" + cacheCtx.name() + + ", txSystem=" + system() + ", cacheSystem=" + cacheCtx.system() + ']'); } else