From 7198dfa3293c2defb43be0a7f76c986803b6cf9f Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Mon, 12 Sep 2016 10:55:51 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-transfer/data-transfer-library@131283 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../transfer/library/transferers/Transferer.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/gcube/data/transfer/library/transferers/Transferer.java b/src/main/java/org/gcube/data/transfer/library/transferers/Transferer.java index 988d2a2..4ab1cbf 100644 --- a/src/main/java/org/gcube/data/transfer/library/transferers/Transferer.java +++ b/src/main/java/org/gcube/data/transfer/library/transferers/Transferer.java @@ -13,6 +13,7 @@ import org.gcube.data.transfer.library.faults.InvalidDestinationException; import org.gcube.data.transfer.library.faults.InvalidSourceException; import org.gcube.data.transfer.library.faults.RemoteServiceException; import org.gcube.data.transfer.library.faults.SourceNotSetException; +import org.gcube.data.transfer.library.faults.UnreachableNodeException; import org.gcube.data.transfer.library.model.LocalSource; import org.gcube.data.transfer.library.model.Source; import org.gcube.data.transfer.library.model.StorageSource; @@ -121,9 +122,13 @@ public abstract class Transferer { } } - protected void checkDestination() throws InvalidDestinationException,DestinationNotSetException{ + protected void checkDestination() throws InvalidDestinationException,DestinationNotSetException, UnreachableNodeException{ if(destination==null) throw new DestinationNotSetException(); - // perform checks + if(!destination.getPersistenceId().equals(Destination.DEFAULT_PERSISTENCE_ID)){ + Set availablePersistenceIds=getDestinationCapabilities().getAvailablePersistenceIds(); + if(!availablePersistenceIds.contains(destination.getPersistenceId())) + throw new InvalidDestinationException("Declared persistence id "+destination.getPersistenceId()+" not found. Available are "+availablePersistenceIds); + } } protected void checkSource() throws SourceNotSetException, InvalidSourceException{ @@ -145,11 +150,11 @@ public abstract class Transferer { } - public TransferCapabilities getDestinationCapabilities() throws InitializationException { + public TransferCapabilities getDestinationCapabilities() throws UnreachableNodeException { try{ return client.getCapabilties(); }catch(Exception e){ - throw new InitializationException(e); + throw new UnreachableNodeException(e); } }