Skip to content

Commit 1540776

Browse files
authored
Fix IndexOutOfBoundsException invoking expansion service (#34428)
1 parent 5832c61 commit 1540776

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

sdks/java/expansion-service/src/main/java/org/apache/beam/sdk/expansion/service/ExpansionService.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -580,10 +580,8 @@ private Map<String, TransformProvider> loadRegisteredTransforms() {
580580

581581
@VisibleForTesting
582582
/*package*/ ExpansionApi.ExpansionResponse expand(ExpansionApi.ExpansionRequest request) {
583-
LOG.info(
584-
"Expanding '{}' with URN '{}'",
585-
request.getTransform().getUniqueName(),
586-
request.getTransform().getSpec().getUrn());
583+
final String urn = request.getTransform().getSpec().getUrn();
584+
LOG.info("Expanding '{}' with URN '{}'", request.getTransform().getUniqueName(), urn);
587585
LOG.debug("Full transform: {}", request.getTransform());
588586
Set<String> existingTransformIds = request.getComponents().getTransformsMap().keySet();
589587

@@ -625,8 +623,6 @@ private Map<String, TransformProvider> loadRegisteredTransforms() {
625623
}
626624
}));
627625

628-
String urn = request.getTransform().getSpec().getUrn();
629-
630626
TransformProvider transformProvider = getRegisteredTransforms().get(urn);
631627
if (transformProvider == null) {
632628
if (getUrn(ExpansionMethods.Enum.JAVA_CLASS_LOOKUP).equals(urn)) {
@@ -649,8 +645,7 @@ private Map<String, TransformProvider> loadRegisteredTransforms() {
649645
? transformProvider
650646
: ExpansionServiceSchemaTransformProvider.of();
651647
} else {
652-
throw new UnsupportedOperationException(
653-
"Unknown urn: " + request.getTransform().getSpec().getUrn());
648+
throw new UnsupportedOperationException("Unknown urn: " + urn);
654649
}
655650
}
656651

@@ -814,6 +809,10 @@ public void close() throws Exception {
814809
}
815810

816811
public static void main(String[] args) throws Exception {
812+
if (args.length < 1) {
813+
printUsage();
814+
System.exit(1);
815+
}
817816
int port = Integer.parseInt(args[0]);
818817
System.out.println("Starting expansion service at localhost:" + port);
819818

@@ -874,6 +873,10 @@ public static void main(String[] args) throws Exception {
874873
server.awaitTermination();
875874
}
876875

876+
private static void printUsage() {
877+
System.err.println("Usage: java -jar <expansion-service-jar> port [pipeline-options]");
878+
}
879+
877880
private static class NotRunnableRunner extends PipelineRunner<PipelineResult> {
878881
public static NotRunnableRunner fromOptions(PipelineOptions opts) {
879882
return new NotRunnableRunner();

0 commit comments

Comments
 (0)