[lockfile] Fix a bug introduced by 338136 causing empty lock entries.

When CIPD template is used, the lockfile format change introduced in
338136 may produce emtpy lock entries. This change fixes this issue.

Bug: 41089
Change-Id: I80149fce6f66e63b2014cfda918939309ed55a57
diff --git a/project/project.go b/project/project.go
index 0066aed..7215c07 100644
--- a/project/project.go
+++ b/project/project.go
@@ -1202,10 +1202,24 @@
 			}
 			for _, v := range pkgs {
 				if _, ok := pkgsWithMultiVersionsMap[v.Name]; ok {
-					lockKey := PackageLockKey(v.Name + KeySeparator + v.Version)
-					lockEntry := pkgLocks[lockKey]
-					lockEntry.LocalPath = v.Path
-					pkgLocks[lockKey] = lockEntry
+					plats, err := v.GetPlatforms()
+					if err != nil {
+						return nil, nil, err
+					}
+					expandedNames, err := cipd.Expand(v.Name, plats)
+					if err != nil {
+						return nil, nil, err
+					}
+					for _, expandedName := range expandedNames {
+						lockKey := PackageLockKey(expandedName + KeySeparator + v.Version)
+						lockEntry, ok := pkgLocks[lockKey]
+						if !ok {
+							jirix.Logger.Errorf("lock key not found in pkgLocks: %v, package: %+v", lockKey, v)
+							return nil, nil, err
+						}
+						lockEntry.LocalPath = v.Path
+						pkgLocks[lockKey] = lockEntry
+					}
 				}
 			}
 		}