0 Replies Latest reply: Feb 3, 2014 4:37 PM by GoColts RSS

    AdobeDriveRuntimeException with direct file link access

    GoColts Community Member

      I have a special use case with which I'm running into an Adobe Drive error and am looking for some guidance.  We have a custom Adobe Drive connector.  The main UI to our system is browser-based.  Most of our Adobe Drive users are Illustrator users. 

       

      The desired use case is to be able to click a link in the browser UI and open the file from Adobe Drive.  For example, in the browser UI there would be a "local" link to "file:///Z:/Root1/ChildA1/ChildB1/ChildC1/ChildD1/DesignFile.ai".  My problem is that clicking this link results in an AdobeDriveRuntimeException unless the user has previously navigated to at least the "ChildB1" in Windows Explorer/Finder or opened the file from within Illustrator (i.e., go to File->Open and enter the path "Z:\Root1\ChildA1\ChildB1\ChildC1\ChildD1\DesignFile.ai" or navigate to the file and open it).  The error is a message like

       

      FATAL IFSConnection - NASTY Runtime exception for Request: CREATE

      com.adobe.drive.biz.filesystem.FileSystemException: com.adobe.drive.model.exception.AdobeDriveRuntimeException: Failed to retrieve parent (path=/Root1/ChildA1/ChildB1/ChildC1)  (full stack trace below)

       

      When the user clicks on the link (e.g., file:///Z:/Root1/ChildA1/ChildB1/ChildC1/ChildD1/DesignFile.ai), Adobe Drive calls our GetAssetsHandler for "/Root1/ChildA1/ChildB1/ChildC1/ChildD1/".  The handler creates the Update Recipe, which includes the parent ID of "/Root1/ChildA1/ChildB1/ChildC1".  But it is looking like Adobe Drive has no record of "/Root1/ChildA1/ChildB1/ChildC1" and so it throws the Exception. 

       

      Is there any way to force Adobe Drive to ask our connector about the unknown parent?  Or is there some way for our connector to detect that Drive doesn't know about an Asset and provide the needed information?

       

      Thanks.  Here is the full stack trace of the error I'm seeing:

       

      2014/02/03 15:52:50,986 [IFSConnection-1] FATAL IFSConnection - NASTY Runtime exception for Request: CREATE

      com.adobe.drive.biz.filesystem.FileSystemException: com.adobe.drive.model.exception.AdobeDriveRuntimeException: Failed to retrieve parent (path=/Root1/ChildA1/ChildB1/ChildC1)

          at com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemSe rvice.java:1762)

          at com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemSe rvice.java:1727)

          at com.adobe.drive.internal.biz.filesystem.FileSystemService.lookupByPath(FileSystemService. java:562)

          at com.adobe.drive.internal.biz.filesystem.FileSystemService.lookupByPath(FileSystemService. java:555)

          at com.adobe.drive.ifs.job.CreateHandler$1.call(CreateHandler.java:122)

          at com.adobe.drive.ifs.job.CreateHandler$1.call(CreateHandler.java:1)

          at com.adobe.drive.model.context.Context.run(Context.java:88)

          at com.adobe.drive.ifs.internal.IFSConnection.dispatch(IFSConnection.java:187)

          at com.adobe.drive.ifs.internal.IFSConnection.run(IFSConnection.java:142)

      Caused by: com.adobe.drive.model.exception.AdobeDriveRuntimeException: Failed to retrieve parent (path=/Root1/ChildA1/ChildB1/ChildC1)

          at com.adobe.drive.model.synchronization.DataModelUpdater.updateParentHierarchy(DataModelUpd ater.java:1204)

          at com.adobe.drive.model.synchronization.DataModelUpdater.internalUpdateAsset(DataModelUpdat er.java:520)

          at com.adobe.drive.model.synchronization.DataModelUpdater.updateAsset(DataModelUpdater.java: 150)

          at com.adobe.drive.model.synchronization.ChangeRecipeVisitor.processUpdateRecipe(ChangeRecip eVisitor.java:188)

          at com.adobe.drive.connector.api.recipe.UpdateRecipe.accept(UpdateRecipe.java:88)

          at com.adobe.drive.connector.api.recipe.RemoteResponse.accept(RemoteResponse.java:68)

          at com.adobe.drive.internal.data.manager.DataManager$12.run(DataManager.java:3119)

          at com.adobe.drive.data.internal.persistence.PersistenceRunner$3.run(PersistenceRunner.java: 306)

          at com.adobe.drive.data.internal.persistence.PersistenceRunner$2.runWithTransaction(Persiste nceRunner.java:186)

          at com.adobe.drive.data.internal.persistence.PersistenceModificationCallable.run(Persistence ModificationCallable.java:71)

          at com.adobe.drive.data.internal.persistence.PersistenceRunner.run(PersistenceRunner.java:11 9)

          at com.adobe.drive.data.internal.persistence.PersistenceRunner.runWithTransaction(Persistenc eRunner.java:181)

          at com.adobe.drive.data.internal.persistence.PersistenceRunner.runWithTransaction(Persistenc eRunner.java:174)

          at com.adobe.drive.internal.data.manager.DataManager.execute(DataManager.java:3135)

          at com.adobe.drive.internal.data.manager.DataManager.execute(DataManager.java:3058)

          at com.adobe.drive.internal.data.manager.DataManager.getAssetFromConnector(DataManager.java: 1715)

          at com.adobe.drive.internal.data.manager.DataManager.getAsset(DataManager.java:1636)

          at com.adobe.drive.internal.biz.filesystem.FileSystemService$6.execute(FileSystemService.jav a:573)

          at com.adobe.drive.internal.biz.filesystem.FileSystemService$6.execute(FileSystemService.jav a:1)

          at com.adobe.drive.internal.biz.filesystem.FileSystemService$FSCallable.run(FileSystemServic e.java:1793)

          at com.adobe.drive.data.internal.persistence.PersistenceRunner$2.runWithTransaction(Persiste nceRunner.java:186)

          at com.adobe.drive.data.internal.persistence.PersistenceModificationCallable.run(Persistence ModificationCallable.java:71)

          at com.adobe.drive.data.internal.persistence.PersistenceRunner.run(PersistenceRunner.java:11 9)

          at com.adobe.drive.data.internal.persistence.PersistenceRunner.runWithTransaction(Persistenc eRunner.java:181)

          at com.adobe.drive.internal.biz.filesystem.FileSystemService.runWithTransaction(FileSystemSe rvice.java:1748)

          ... 8 more