Lines 168-174
Link Here
|
168 |
String path = resourceName.substring(0, lastSlash); |
168 |
String path = resourceName.substring(0, lastSlash); |
169 |
if (path.length() == 0) |
169 |
if (path.length() == 0) |
170 |
path = "/"; //$NON-NLS-1$ |
170 |
path = "/"; //$NON-NLS-1$ |
171 |
String file = resourceName.substring(lastSlash + 1); |
171 |
String file = sanitizeEntryName(resourceName.substring(lastSlash + 1)); |
172 |
Enumeration entryPaths = bundle.findEntries(path, file, false); |
172 |
Enumeration entryPaths = bundle.findEntries(path, file, false); |
173 |
if (entryPaths != null && entryPaths.hasMoreElements()) |
173 |
if (entryPaths != null && entryPaths.hasMoreElements()) |
174 |
return (URL) entryPaths.nextElement(); |
174 |
return (URL) entryPaths.nextElement(); |
Lines 176-181
Link Here
|
176 |
return delegate.getResource(name); |
176 |
return delegate.getResource(name); |
177 |
} |
177 |
} |
178 |
|
178 |
|
|
|
179 |
private String sanitizeEntryName(String name) { |
180 |
StringBuffer buffer = null; |
181 |
for (int i = 0; i < name.length(); i++) { |
182 |
char c = name.charAt(i); |
183 |
switch (c) { |
184 |
case '*' : |
185 |
case '\\' : |
186 |
// we need to escape '*' and '\' |
187 |
if (buffer == null) { |
188 |
buffer = new StringBuffer(name.length() + 16); |
189 |
buffer.append(name.substring(0, i)); |
190 |
} |
191 |
buffer.append('\\').append(c); |
192 |
break; |
193 |
default : |
194 |
if (buffer != null) |
195 |
buffer.append(c); |
196 |
break; |
197 |
} |
198 |
} |
199 |
return (buffer == null) ? name : buffer.toString(); |
200 |
} |
201 |
|
179 |
public InputStream getResourceAsStream(String name) { |
202 |
public InputStream getResourceAsStream(String name) { |
180 |
try { |
203 |
try { |
181 |
URL resourceURL = getResource(name); |
204 |
URL resourceURL = getResource(name); |