SMB path with a + sign not able to write to location

I am attempting to write to an SMB path that includes a plus symbol and no matter how I attempt to alter the path it fails to write the file.

‘smb://xxx.xxx.xxx.xxx:xxxxx/dir1/dir_2/dir_3/dir_4/A+A/dir_5/filename.csv’

I have attempted to put %2B instead of the + symbol, a parameter that is only +, a parameter that was A+A, using double quotes around the entire path with ‘%2B’ instead of +, using double quotes around the entire path with ‘+’ instead of just +, using \+, using \%2B, and a bunch of other variations.

What is the correct syntax and why is this not in the documentation anywhere?

Which Snap are you using and is the expression toggle (the = sign) selected or not? We’d want to make sure it’s not a bug in the Snap.

File Writer Snap, is there another one to use? Yes the expression toggle is selected.

That is the correct Snap.
The expression toggle should only be selected if you are using the expression language to build your path.
For a straight-forward SMB path, you would just enter it into the field.

If you’ve tried that and it still doesn’t work, then our Support team may need to take a look.

That does not work either.

For anyone that is paying attention, trying to use an escape character prior to the + symbol does not work either like the \+ or '\+'. It appears that this is broken.

If your path is static, then what @dmiller suggested should work. Would you mind sharing what the result is when you tried that? Is there an error message or is the file being written to the incorrect location?

As i previously stated in the prior post it is not working at all even hard coding the path and undoing the expression toggle. Please see the error message below.

Failed to write to smb://xxx.xxx.xxx.xxx:xxxxxx/dir1/dir_2/dir_3/dir_4/A+A/dir_5/filename.csv

Resolution:
Check for URL syntax and file access permission

Reason:
Possible reasons can be failure in URL connection or file access denial, detail: The system cannot find the path specified.
Hide Details…
SD Writer[9b0f59f0-c42c-4e1d-81b0-feae2b322a67 – 2a78e505-d90c-47a7-b30c-7ac7c5d75d38]
com.snaplogic.snap.api.SnapDataException: Failed to write to smb://xxx.xxx.xxx.xxx:xxxxxx/dir1/dir_2/dir_3/dir_4/A+A/dir_5/filename.csv
at com.snaplogic.snaps.binary.AbstractWriter.throwExceptionCantWrite(AbstractWriter.java:551)
at com.snaplogic.snaps.binary.AbstractWriter.writeData(AbstractWriter.java:462)
at com.snaplogic.snaps.binary.AbstractWriter.process(AbstractWriter.java:318)
at com.snaplogic.snaps.binary.AbstractWriter.doWork(AbstractWriter.java:277)
at com.snaplogic.snap.api.SimpleBinarySnap.execute(SimpleBinarySnap.java:57)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.executeSnap(SnapRunnableImpl.java:772)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.execute(SnapRunnableImpl.java:518)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.doRun(SnapRunnableImpl.java:838)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.access$000(SnapRunnableImpl.java:114)
at com.snaplogic.cc.snap.common.SnapRunnableImpl$1.run(SnapRunnableImpl.java:361)
at com.snaplogic.cc.snap.common.SnapRunnableImpl$1.run(SnapRunnableImpl.java:357)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.call(SnapRunnableImpl.java:356)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.call(SnapRunnableImpl.java:114)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: jcifs.smb.SmbException: The system cannot find the path specified.
at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
at jcifs.smb.SmbTransport.send(SmbTransport.java:663)
at jcifs.smb.SmbSession.send(SmbSession.java:238)
at jcifs.smb.SmbTree.send(SmbTree.java:119)
at jcifs.smb.SmbFile.send(SmbFile.java:775)
at jcifs.smb.SmbFile.open0(SmbFile.java:989)
at jcifs.smb.SmbFile.open(SmbFile.java:1006)
at jcifs.smb.SmbFileOutputStream.(SmbFileOutputStream.java:142)
at jcifs.smb.SmbFileOutputStream.(SmbFileOutputStream.java:97)
at jcifs.smb.SmbFileOutputStream.(SmbFileOutputStream.java:82)
at jcifs.smb.SmbFileOutputStream.(SmbFileOutputStream.java:54)
at com.snaplogic.snap.api.fs.smb.SmbUrlConnection.getOutputStream(SmbUrlConnection.java:62)
at com.snaplogic.snaps.binary.AbstractWriter.initOutputStream(AbstractWriter.java:687)
at com.snaplogic.snaps.binary.AbstractWriter.writeData(AbstractWriter.java:426)
… 20 more

Error Fingerprint[0] = efp:com.snaplogic.snaps.binary.-lWIUNSy
Error Fingerprint[1] = efp:jcifs.smb.3K8snBx2
SD Writer[9b0f59f0-c42c-4e1d-81b0-feae2b322a67 – 2a78e505-d90c-47a7-b30c-7ac7c5d75d38]
java.lang.Throwable
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(Unknown Source)
at java.util.concurrent.Semaphore.acquire(Unknown Source)
at com.snaplogic.cc.snap.view.binary.SpillablePipe$SourceChannel.read(SpillablePipe.java:596)
at com.snaplogic.cc.snap.common.ViewImpl$CountingChannel.read(ViewImpl.java:653)
at sun.nio.ch.ChannelInputStream.read(Unknown Source)
at sun.nio.ch.ChannelInputStream.read(Unknown Source)
at sun.nio.ch.ChannelInputStream.read(Unknown Source)
at java.io.InputStream.read(Unknown Source)
at com.snaplogic.snaps.binary.AbstractWriter.consume(AbstractWriter.java:739)
at com.snaplogic.snaps.binary.AbstractWriter.writeData(AbstractWriter.java:466)
at com.snaplogic.snaps.binary.AbstractWriter.process(AbstractWriter.java:318)
at com.snaplogic.snaps.binary.AbstractWriter.doWork(AbstractWriter.java:277)
at com.snaplogic.snap.api.SimpleBinarySnap.execute(SimpleBinarySnap.java:57)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.executeSnap(SnapRunnableImpl.java:772)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.execute(SnapRunnableImpl.java:518)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.doRun(SnapRunnableImpl.java:838)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.access$000(SnapRunnableImpl.java:114)
at com.snaplogic.cc.snap.common.SnapRunnableImpl$1.run(SnapRunnableImpl.java:361)
at com.snaplogic.cc.snap.common.SnapRunnableImpl$1.run(SnapRunnableImpl.java:357)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.call(SnapRunnableImpl.java:356)
at com.snaplogic.cc.snap.common.SnapRunnableImpl.call(SnapRunnableImpl.java:114)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Error Fingerprint[0] = efp:sun.misc.cX2oMOaw

Thanks for sharing the error. I can file a bug report with this information.

Can you confirm that you are able to write to other paths without the A+A directory? I’d like to isolate the problem to that in particular.

Sorry about the inconvenience and hopefully the issue can be resolved promptly.

@tlikarish, it is typical of the responses i get on this board. I have several outstanding issues on these boards, that I got tired of asking the same question in different ways only for snaplogic employees to ask if i took a step that was in the chain three responses prior.

(For example your Excel snaps didn’t work correctly previously. With out responding to my chain that it was being worked on or that it was fixed in an update, I had to find out for myself that my issue that I brought up to you all, on this board, was fixed.)

Yes, it works fine if I take the plus out.

As the name would suggest, these boards are more of a community forum, not product support. If you’re expecting timely responses or dedicated support resources, then probably best to contact SnapLogic support and your TAM if necessary.

@christwr, I understand that, but I don’t know 100% that I have the syntax right because your existing documentation online does not cover it specifically. So how would I know if it is a technical issue (bug) or if I am just using the wrong syntax?

Trust me, I am not expecting timely responses on here, but i would expect that if an employee responds it would not be to let me chase my tail.

@doug.fossler , could you please try again replacing + with a space or %20
Let me know if that works.
Thanks.

Jayakrishnan,

Depending on if the expression toggle is set or not, a space or %20 work fine, that is not my issue. I am attempting to write a plus symbol (+) in the file path.

Thanks,

@doug.fossler , let me know the directory name. Is it ‘A+A’ or is it ‘A A’ ? If the directory name is ‘A+A’ then there might be some bug in the SnapLogic snap. But if its ‘A A’ , i think a uri path space is to be encoded as %20 instead of +. Some systems like a browser can resolve + back to a space but some cannot. Maybe that’s the reason why you are getting an error message like “The system cannot find the path specified.”