summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/ReferenceFactory.java
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2007-04-27 08:31:47 +0000
committerMatthew Newhook <matthew@zeroc.com>2007-04-27 08:31:47 +0000
commit49e46bc0f64b88e16aa9c0ecd8c6ed10914e75d0 (patch)
tree26730fcae5d683183069533d5603425de1162e0c /java/src/IceInternal/ReferenceFactory.java
parentfile run.py was initially added on branch R3_2_branch. (diff)
downloadice-49e46bc0f64b88e16aa9c0ecd8c6ed10914e75d0.tar.bz2
ice-49e46bc0f64b88e16aa9c0ecd8c6ed10914e75d0.tar.xz
ice-49e46bc0f64b88e16aa9c0ecd8c6ed10914e75d0.zip
http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=2118
Diffstat (limited to 'java/src/IceInternal/ReferenceFactory.java')
-rw-r--r--java/src/IceInternal/ReferenceFactory.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/java/src/IceInternal/ReferenceFactory.java b/java/src/IceInternal/ReferenceFactory.java
index dfb8c4b4d12..8cd07cfa7c7 100644
--- a/java/src/IceInternal/ReferenceFactory.java
+++ b/java/src/IceInternal/ReferenceFactory.java
@@ -471,6 +471,7 @@ public final class ReferenceFactory
throw e;
}
+ String adapterstr = null;
end = IceUtil.StringUtil.checkQuote(s, beg);
if(end == -1)
{
@@ -485,14 +486,25 @@ public final class ReferenceFactory
{
end = s.length();
}
+ adapterstr = s.substring(beg, end);
}
else
{
beg++; // Skip leading quote
+ adapterstr = s.substring(beg, end);
+ end++; // Skip trailing quote
}
+ if(end != s.length() && IceUtil.StringUtil.findFirstNotOf(s, delim, end) != -1)
+ {
+ Ice.ProxyParseException e = new Ice.ProxyParseException();
+ e.str = s;
+ throw e;
+ }
+
Ice.StringHolder token = new Ice.StringHolder();
- if(!IceUtil.StringUtil.unescapeString(s, beg, end, token) || token.value.length() == 0)
+ if(!IceUtil.StringUtil.unescapeString(adapterstr, 0, adapterstr.length(), token) ||
+ token.value.length() == 0)
{
Ice.ProxyParseException e = new Ice.ProxyParseException();
e.str = s;