Skip to content

Commit af69acc

Browse files
committed
Adding in some extra checks for the ConnectionDetails forNewNode method to provide some reasonable fallbacks if the node passed in is unknown.
1 parent 05dbf32 commit af69acc

File tree

4 files changed

+17
-6
lines changed

4 files changed

+17
-6
lines changed

ds3-sdk/src/main/java/com/spectralogic/ds3client/ConnectionDetailsImpl.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,14 @@ public ConnectionDetailsImpl build() {
7070
}
7171

7272
public static ConnectionDetails newForNode(final Node node, final ConnectionDetails connectionDetails) {
73-
final Builder connectionBuilder = builder(node.getEndpoint(), connectionDetails.getCredentials())
74-
.withRedirectRetries(connectionDetails.getRetries())
73+
final Builder connectionBuilder;
74+
if (node.getEndpoint() == null || node.getEndpoint().equals("FAILED_TO_DETERMINE_DATAPATH_IP_ADDRESS")) {
75+
connectionBuilder = builder(connectionDetails.getEndpoint(), connectionDetails.getCredentials());
76+
}
77+
else {
78+
connectionBuilder = builder(node.getEndpoint(), connectionDetails.getCredentials());
79+
}
80+
connectionBuilder.withRedirectRetries(connectionDetails.getRetries())
7581
.withHttps(connectionDetails.isHttps())
7682
.withCertificateVerification(connectionDetails.isCertificateVerification())
7783
.withBufferSize(connectionDetails.getBufferSize())
@@ -137,4 +143,8 @@ public boolean isCertificateVerification() {
137143
return certificateVerification;
138144
}
139145

146+
public String toString() {
147+
return "Endpoint: " + this.endpoint + " | Https?: " + this.https;
148+
}
149+
140150
}

ds3-sdk/src/main/java/com/spectralogic/ds3client/Ds3ClientImpl.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,7 @@ public ModifyJobResponse modifyJob(final ModifyJobRequest request) throws IOExce
127127
@Override
128128
public Ds3Client newForNode(final Node node) {
129129
final ConnectionDetails newConnectionDetails = ConnectionDetailsImpl.newForNode(node, this.getConnectionDetails());
130-
final NetworkClient netClient = new NetworkClientImpl(newConnectionDetails);
131-
132-
return new Ds3ClientImpl(netClient);
130+
final NetworkClient newNetClient = new NetworkClientImpl(newConnectionDetails);
131+
return new Ds3ClientImpl(newNetClient);
133132
}
134133
}

ds3-sdk/src/main/java/com/spectralogic/ds3client/NetworkClientImpl.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import java.io.Closeable;
4040
import java.io.IOException;
4141
import java.io.InputStream;
42+
import java.lang.AssertionError;
4243
import java.net.MalformedURLException;
4344
import java.net.URI;
4445
import java.net.URL;
@@ -57,6 +58,7 @@ class NetworkClientImpl implements NetworkClient {
5758
final private ConnectionDetails connectionDetails;
5859

5960
NetworkClientImpl(final ConnectionDetails connectionDetails) {
61+
if (connectionDetails == null) throw new AssertionError(connectionDetails);
6062
this.connectionDetails = connectionDetails;
6163
}
6264

ds3-sdk/src/main/java/com/spectralogic/ds3client/networking/ConnectionDetails.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@ public interface ConnectionDetails {
4040
* Returns true if the network layer should perform certificate authentication for SSL. False will disable
4141
* certificate authentication.
4242
*/
43-
boolean isCertificateVerification();
43+
public boolean isCertificateVerification();
4444
}

0 commit comments

Comments
 (0)