[
https://issues.apache.org/jira/browse/JCLOUDS-1504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17897781#comment-17897781
]
Matthew Bellew commented on JCLOUDS-1504:
-----------------------------------------
I'm not setup to build jclouds, but I believe either of these changes would fix
the problem.
public static String expand(String template, Map<String, ?> variables) {
if (checkNotNull(template, "template").length() < 3)
return template.toString(); // skip expansion if there's no valid
variables set. ex. \{a} is the first valid
checkNotNull(variables, "variables for %s", template);
>>> if (variables.isEmpty())
>>> return;
boolean inVar = false;
StringBuilder var = new StringBuilder();
StringBuilder builder = new StringBuilder();
for (char c : Lists.charactersOf(template)) {
switch (c) {
case '{':
if (inVar) {
builder.append('{');
builder.append(var);
var.setLength(0);
}
inVar = true;
break;
case '}':
String key = var.toString();
Object value = variables.get(var.toString());
if (inVar) {
if (value != null)
builder.append(value);
else
builder.append('\{').append(key).append('}');
} else {
builder.append('}');
}
var.setLength(0);
inVar = false;
break;
default:
if (inVar)
var.append(c);
else
builder.append(c);
}
}
>>> builder.append(var);
return builder.toString();
}
}
> BlobStore.list(container, ListContainerOptions) returns collection containing
> null elements
> --------------------------------------------------------------------------------------------
>
> Key: JCLOUDS-1504
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1504
> Project: jclouds
> Issue Type: Bug
> Reporter: Енчо Белезирев
> Priority: Blocker
> Attachments: jclouds-wire.log, jclouds.log
>
>
> Hello,
> I am SAP developer and we are using jclouds for the communication with our
> blob stores.
> We have issue with the querying of the StorageMetadata for some blobs. We are
> using the method from the BlobStore -
> {code:java}
> PageSet<? extends StorageMetadata> list(String container,
> ListContainerOptions options);{code}
> However, when we are using the method, we are providing
> ListContainerOptions.Builder.withDetails() because we want to take directly
> the userMetadata field from the StorageMetadata object and to use it later
> on. Here comes the problem, sometimes, when the method is being executed, the
> list that is being returned contains null objects. This is a problem because
> we want each StorageMetadata to be non-null.
> I have validated our entries in the container and it seemed that there are no
> suspicious entries in it(which might cause the issue).
> Could you share some information what could have caused the issue and
> eventually, is there a way to workaround this?
>
> We are using aws-s3 implementation of the blob store.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)