Uploaded image for project: 'jclouds'
  1. jclouds
  2. JCLOUDS-1015

BlobStore.putBlob throws RuntimeException with filesystem provider on localized Windows

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.9.1
    • Fix Version/s: 2.1.0, 2.0.1
    • Component/s: jclouds-blobstore
    • Environment:
      Microsoft Windows (tested on 7 and 10), Java 7 and 8.

      Description

      When using the filesystem provider on a localized Windows system putBlob consistenly throws a RuntimeException. The put operation does succeed, however, meaning a viable workaround is to catch-and-ignore.

      The cause of the Exception is a UserPrincipalNotFoundException which is thrown in org.jclouds.filesystem.util.Utils while trying to resolve the Windows 'Everyone' user group using UserPrincipalLookupService.lookupPrincipalByName.

      Turns out the 'Everyone' group/user is only actually available on Windows systems set to an English locale, whilst other locales will likely have localized names for the group (tested on Norwegian Windows in which the Everyone group is known as "Alle").

      The only ubiquitous reference to any of the built-in groups or users on a Windows system are the SIDs. For example, 'Everyone' is known as 'S-1-1-0'.
      Unfortunately, the API exposed in java.nio.file doesn't accept SIDs for lookup, meaning there is, as far as I can tell, no pure Java solution to resolving the UserPrincipal without knowing the (localized) name.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                zack-s Zack Shoylev
                Reporter:
                halvdanhg Halvdan Hoem Grelland
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: