From 11d34bf0e62de49d8f44ebaabd3b8c19bfde4a2b Mon Sep 17 00:00:00 2001 From: David McKnight Date: Wed, 5 Mar 2008 22:14:05 +0000 Subject: [PATCH] [221601][dstore] xmlparser needs to be able to handle very large attributes --- .../dstore/internal/core/util/XMLparser.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/internal/core/util/XMLparser.java b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/internal/core/util/XMLparser.java index 18c3c11578d..bf943afdd02 100644 --- a/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/internal/core/util/XMLparser.java +++ b/rse/plugins/org.eclipse.dstore.core/src/org/eclipse/dstore/internal/core/util/XMLparser.java @@ -13,6 +13,7 @@ * * Contributors: * David McKnight (IBM) [220123][dstore] Configurable timeout on irresponsiveness + * David McKnight (IBM) [221601][dstore] xmlparser needs to be able to handle very large attributes *******************************************************************************/ package org.eclipse.dstore.internal.core.util; @@ -395,12 +396,18 @@ public class XMLparser default: break; } - + if (offset >= _maxBuffer) { - done = true; + int newMaxBuffer = 2 * _maxBuffer; + byte[] newBuffer = new byte[newMaxBuffer]; + for (int i = 0; i < _maxBuffer; i++){ + newBuffer[i] = _byteBuffer[i]; + } + + _maxBuffer = newMaxBuffer; + _byteBuffer = newBuffer; } - _byteBuffer[offset] = aByte; offset++; }