code: public static IPath getSourceBundlePath(Bundle bundle, IPath bundleLocation) {
  		IPath sourcesPath = null;
  		// Not an essential functionality, make it robust
  		try {
  			final IPath srcFolderPath = getSourceRootProjectFolderPath(bundle);
  			if (srcFolderPath == null) {
  				//common case, jar file.
  				final IPath bundlesParentFolder = bundleLocation.removeLastSegments(1);
  				final String binaryJarName = bundleLocation.lastSegment();
  				final String symbolicName = bundle.getSymbolicName();
  				final String sourceJarName = binaryJarName.replace(symbolicName,
  						symbolicName.concat(SOURCE_SUFIX));
  				final IPath potentialSourceJar = bundlesParentFolder.append(sourceJarName);
  				if (potentialSourceJar.toFile().exists()) {
  					sourcesPath = potentialSourceJar;
  				}
  			} else {
  				sourcesPath = srcFolderPath;
  			}
  		} catch (Throwable t) {
  			throw new RuntimeException(t);
  		}
  
  		return sourcesPath;
  	}
docs: Replies the source location for the given bundle.
  
  <p>The source location is usually the root folder where the source code of the bundle is located.
  
  <p>We can't use P2Utils and we can't use SimpleConfiguratorManipulator because of
  API breakage between 3.5 and 4.2.
  So we do a bit EDV (Computer data processing) ;-)
  
  @param bundle the bundle for which the source location must be computed.
  @param bundleLocation the location of the bundle, as replied by {@link #getBundlePath(Bundle)}.
  @return the path to the source folder of the bundle, or {@code null} if undefined.
  @see #getBundlePath(Bundle)