Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2015-05-05 06:43:37 -0400
committerPascal Rapicault2016-01-02 16:37:54 -0500
commit2608885d67a3a99406a8cf1bc660241c3574dcfa (patch)
treeeede74565ebabede00dc799b91b5ef2ed20cd45d
parentd9057d09f6b96fd8b9988299d3eb5131f9a79a98 (diff)
downloadrt.equinox.p2-2608885d67a3a99406a8cf1bc660241c3574dcfa.tar.gz
rt.equinox.p2-2608885d67a3a99406a8cf1bc660241c3574dcfa.tar.xz
rt.equinox.p2-2608885d67a3a99406a8cf1bc660241c3574dcfa.zip
Bug 466249 - Propagate more exceptions to ease problem analysis
We often get problem reports with stack traces that "end" somewhere in p2 even though it's obvious from looking at these places that there was a causing exception. These causing exceptions are often not propagated with the new exception that p2 creates and throws. I'm not sure if that's on purpose or just an oversight. I've prepared a proposal to enhance these places and make it easier to analyze the problems that users report. Change-Id: Iaa53448c53c18301113b42dbe80558eccec49e8e Signed-off-by: Eike Stepper <stepper@esc-net.de>
-rw-r--r--bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxBundlesState.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.java8
-rw-r--r--bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/FileUtils.java12
-rw-r--r--bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/DirectorApplication.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileLock.java6
-rw-r--r--bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java8
-rw-r--r--bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/ProxiesDialog.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java11
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/p2/metadata/io/IUDeserializer.java8
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/VersionParser.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ClassFunction.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/VersionRange.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/persistence/CompositeParser.java8
-rw-r--r--bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/repository/CacheManager.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Util.java4
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/persistence/P2FParser.java8
20 files changed, 65 insertions, 30 deletions
diff --git a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxBundlesState.java b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxBundlesState.java
index 97f044a48..5f73c62f3 100644
--- a/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxBundlesState.java
+++ b/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxBundlesState.java
@@ -436,7 +436,7 @@ public class EquinoxBundlesState implements BundlesState {
location = new URI(bundles[i].getLocation());
} catch (URISyntaxException e) {
e.printStackTrace();
- throw new IllegalStateException("BundleDescription conversion problem" + e.getMessage()); //$NON-NLS-1$ //TODO path_fun
+ throw new IllegalStateException("BundleDescription conversion problem" + e.getMessage(), e); //$NON-NLS-1$ //TODO path_fun
}
String fragmentHost = null;
BundleInfo original = bundleInfoMap.get(location);
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java
index f9c74b9e3..308419a91 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java
@@ -567,7 +567,7 @@ public class SimpleArtifactRepository extends AbstractArtifactRepository impleme
FileInputStream fis = new FileInputStream(zipFile);
totalArtifactSize += FileUtils.copyStream(fis, true, destination, false);
} catch (IOException e) {
- return reportStatus(descriptor, destination, new Status(IStatus.ERROR, Activator.ID, e.getMessage()));
+ return reportStatus(descriptor, destination, new Status(IStatus.ERROR, Activator.ID, e.getMessage(), e));
} finally {
if (zipFile != null)
zipFile.delete();
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.java
index 12e41b06c..9208cb3f3 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.java
+++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepositoryIO.java
@@ -313,9 +313,13 @@ public class SimpleArtifactRepositoryIO {
theRepository = repositoryHandler.getRepository();
}
} catch (SAXException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
} catch (ParserConfigurationException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
} finally {
stream.close();
}
diff --git a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/FileUtils.java b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/FileUtils.java
index aef923c76..1d81d8117 100644
--- a/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/FileUtils.java
+++ b/bundles/org.eclipse.equinox.p2.core/src/org/eclipse/equinox/internal/p2/core/helpers/FileUtils.java
@@ -64,7 +64,9 @@ public class FileUtils {
try {
return untarFile(zipFile, outputDir);
} catch (TarException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
}
}
InputStream in = new FileInputStream(zipFile);
@@ -72,7 +74,9 @@ public class FileUtils {
return unzipStream(in, zipFile.length(), outputDir, null, null);
} catch (IOException e) {
// add the file name to the message
- throw new IOException(NLS.bind(Messages.Util_Error_Unzipping, zipFile, e.getMessage()));
+ IOException ioException = new IOException(NLS.bind(Messages.Util_Error_Unzipping, zipFile, e.getMessage()));
+ ioException.initCause(e);
+ throw ioException;
} finally {
in.close();
}
@@ -88,7 +92,9 @@ public class FileUtils {
return unzipStream(in, zipFile.length(), outputDir, taskName, monitor);
} catch (IOException e) {
// add the file name to the message
- throw new IOException(NLS.bind(Messages.Util_Error_Unzipping, zipFile, e.getMessage()));
+ IOException ioException = new IOException(NLS.bind(Messages.Util_Error_Unzipping, zipFile, e.getMessage()));
+ ioException.initCause(e);
+ throw ioException;
} finally {
in.close();
}
diff --git a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/DirectorApplication.java b/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/DirectorApplication.java
index 1d077beaf..4984f2be6 100644
--- a/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/DirectorApplication.java
+++ b/bundles/org.eclipse.equinox.p2.director.app/src/org/eclipse/equinox/internal/p2/director/app/DirectorApplication.java
@@ -179,7 +179,7 @@ public class DirectorApplication implements IApplication, ProvisioningListener {
try {
uris.add(URIUtil.fromString(urlSpecs[i]));
} catch (URISyntaxException e) {
- throw new ProvisionException(NLS.bind(Messages.unable_to_parse_0_to_uri_1, urlSpecs[i], e.getMessage()));
+ throw new ProvisionException(NLS.bind(Messages.unable_to_parse_0_to_uri_1, urlSpecs[i], e.getMessage()), e);
}
}
diff --git a/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileLock.java b/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileLock.java
index 70080ff80..11058450f 100644
--- a/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileLock.java
+++ b/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/ProfileLock.java
@@ -43,11 +43,11 @@ public class ProfileLock {
location.set(url, false, LOCK_FILENAME);
return location;
} catch (MalformedURLException e) {
- throw new IllegalArgumentException(NLS.bind(Messages.SimpleProfileRegistry_Bad_profile_location, e.getLocalizedMessage()));
+ throw new IllegalArgumentException(NLS.bind(Messages.SimpleProfileRegistry_Bad_profile_location, e.getLocalizedMessage()), e);
} catch (IllegalStateException e) {
throw e;
} catch (IOException e) {
- throw new IllegalStateException(e.getLocalizedMessage());
+ throw new IllegalStateException(e.getLocalizedMessage(), e);
}
}
@@ -105,7 +105,7 @@ public class ProfileLock {
lockHolder = current;
} catch (IOException e) {
- throw new IllegalStateException(NLS.bind(Messages.SimpleProfileRegistry_Profile_not_locked_due_to_exception, e.getLocalizedMessage()));
+ throw new IllegalStateException(NLS.bind(Messages.SimpleProfileRegistry_Profile_not_locked_due_to_exception, e.getLocalizedMessage()), e);
}
return true;
}
diff --git a/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java b/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java
index 2efe605c4..8c98a4c74 100644
--- a/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java
+++ b/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java
@@ -731,9 +731,13 @@ public class SimpleProfileRegistry implements IProfileRegistry, IAgentService {
xmlReader.parse(new InputSource(stream));
profileHandlers.put(profileHandler.getProfileId(), profileHandler);
} catch (SAXException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
} catch (ParserConfigurationException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
} finally {
stream.close();
}
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
index ef67932fc..1cc2a9ee3 100644
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
@@ -76,7 +76,7 @@ public class ExtensionLocationArtifactRepository extends AbstractRepository<IArt
} catch (ProvisionException e) {
//unexpected
e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
+ throw new IllegalStateException(e.getMessage(), e);
}
}
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
index 271a9a17d..dbf0b6ebf 100644
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
+++ b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationMetadataRepository.java
@@ -75,7 +75,7 @@ public class ExtensionLocationMetadataRepository extends AbstractMetadataReposit
} catch (ProvisionException e) {
//unexpected
e.printStackTrace();
- throw new IllegalStateException(e.getMessage());
+ throw new IllegalStateException(e.getMessage(), e);
}
}
diff --git a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/ProxiesDialog.java b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/ProxiesDialog.java
index d03552a89..19a2ad4cc 100644
--- a/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/ProxiesDialog.java
+++ b/bundles/org.eclipse.equinox.p2.installer/src/org/eclipse/equinox/internal/p2/installer/ui/ProxiesDialog.java
@@ -19,6 +19,7 @@ import org.eclipse.core.net.proxy.IProxyData;
import org.eclipse.core.net.proxy.IProxyService;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.equinox.internal.p2.core.helpers.LogHelper;
import org.eclipse.equinox.internal.p2.installer.InstallerActivator;
import org.eclipse.equinox.internal.p2.installer.Messages;
import org.eclipse.swt.SWT;
@@ -244,6 +245,7 @@ public final class ProxiesDialog {
openMessage(Messages.ProxiesDialog_ServiceNotAvailableMessage, SWT.ICON_ERROR | SWT.OK);
}
} catch (Exception e) {
+ LogHelper.log(new Status(IStatus.ERROR, InstallerActivator.PI_INSTALLER, e.getMessage(), e));
openMessage(Messages.ProxiesDialog_FailedToSetProxyMessage + e.getLocalizedMessage(), SWT.ICON_ERROR | SWT.OK);
}
}
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java
index 6ee813b62..485594bab 100644
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java
+++ b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/internal/p2/metadata/repository/MetadataRepositoryIO.java
@@ -211,10 +211,15 @@ public class MetadataRepositoryIO {
theRepository = repositoryHandler.getRepository();
}
} catch (SAXException e) {
- if (!(e.getException() instanceof OperationCanceledException))
- throw new IOException(e.getMessage());
+ if (!(e.getException() instanceof OperationCanceledException)) {
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
+ }
} catch (ParserConfigurationException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
} finally {
monitor.done();
stream.close();
diff --git a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/p2/metadata/io/IUDeserializer.java b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/p2/metadata/io/IUDeserializer.java
index 0f8493bae..63ace1841 100644
--- a/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/p2/metadata/io/IUDeserializer.java
+++ b/bundles/org.eclipse.equinox.p2.metadata.repository/src/org/eclipse/equinox/p2/metadata/io/IUDeserializer.java
@@ -66,9 +66,13 @@ public class IUDeserializer {
}
throw new IOException(status.toString());
} catch (ParserConfigurationException configException) {
- throw new IOException(configException.getMessage());
+ IOException ioException = new IOException(configException.getMessage());
+ ioException.initCause(configException);
+ throw ioException;
} catch (SAXException saxException) {
- throw new IOException(saxException.getMessage());
+ IOException ioException = new IOException(saxException.getMessage());
+ ioException.initCause(saxException);
+ throw ioException;
}
}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/VersionParser.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/VersionParser.java
index 9b46f07ac..3b71bec6d 100644
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/VersionParser.java
+++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/VersionParser.java
@@ -150,7 +150,7 @@ public abstract class VersionParser {
fmt = VersionFormat.compile(version, pos, end);
pos = end + 1;
} catch (VersionFormatException e) {
- throw new IllegalArgumentException(e.getMessage());
+ throw new IllegalArgumentException(e.getMessage(), e);
}
if (pos == maxPos) {
// This was a raw version with format but no original
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ClassFunction.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ClassFunction.java
index ddef52293..87e9bfee1 100644
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ClassFunction.java
+++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/ClassFunction.java
@@ -29,7 +29,7 @@ public final class ClassFunction extends Function {
try {
return Class.forName((String) arg);
} catch (ClassNotFoundException e) {
- throw new IllegalArgumentException(e.getMessage());
+ throw new IllegalArgumentException(e.getMessage(), e);
}
}
diff --git a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/VersionRange.java b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/VersionRange.java
index 1dc0b1039..34d3d81b5 100644
--- a/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/VersionRange.java
+++ b/bundles/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/p2/metadata/VersionRange.java
@@ -263,7 +263,7 @@ public class VersionRange implements Serializable {
position[0] = end + 1;
return VersionFormat.compile(versionRange, pos, end);
} catch (VersionFormatException e) {
- throw new IllegalArgumentException(e.getMessage());
+ throw new IllegalArgumentException(e.getMessage(), e);
}
}
diff --git a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/persistence/CompositeParser.java b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/persistence/CompositeParser.java
index a112f8b86..02471aeed 100644
--- a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/persistence/CompositeParser.java
+++ b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/persistence/CompositeParser.java
@@ -188,9 +188,13 @@ public class CompositeParser extends XMLParser implements XMLConstants {
theState = repositoryHandler.getRepository();
}
} catch (SAXException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
} catch (ParserConfigurationException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
} finally {
stream.close();
}
diff --git a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/repository/CacheManager.java b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/repository/CacheManager.java
index 97c239d24..5cc681886 100644
--- a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/repository/CacheManager.java
+++ b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/internal/p2/repository/CacheManager.java
@@ -239,7 +239,7 @@ public class CacheManager {
if (status == null)
throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, NLS.bind(Messages.CacheManager_FailedCommunicationWithRepo_0, repositoryLocation), e));
else if (status.getException() instanceof FileNotFoundException)
- throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, status.getMessage(), null));
+ throw new ProvisionException(new Status(IStatus.ERROR, Activator.ID, ProvisionException.REPOSITORY_NOT_FOUND, status.getMessage(), status.getException()));
throw new ProvisionException(status);
}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
index bd2c0e508..192f34c40 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.eclipse/src/org/eclipse/equinox/internal/p2/touchpoint/eclipse/EclipseTouchpoint.java
@@ -208,7 +208,7 @@ public class EclipseTouchpoint extends Touchpoint {
if (c != null)
c = Class.forName("org.eclipse.osgi.service.resolver.PlatformAdmin"); //$NON-NLS-1$
} catch (ClassNotFoundException e) {
- LogHelper.log(Util.createError(NLS.bind(Messages.publisher_not_available, e.getMessage())));
+ LogHelper.log(Util.createError(NLS.bind(Messages.publisher_not_available, e.getMessage()), e));
return null;
}
diff --git a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Util.java b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Util.java
index 9130e0dab..f20bafb0e 100644
--- a/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Util.java
+++ b/bundles/org.eclipse.equinox.p2.touchpoint.natives/src/org/eclipse/equinox/internal/p2/touchpoint/natives/Util.java
@@ -99,7 +99,9 @@ public class Util {
return unzipStream(in, zipFile.length(), outputDir, path, includePatterns, excludePatterns, store, taskName, monitor);
} catch (IOException e) {
// add the file name to the message
- throw new IOException(NLS.bind(Messages.Util_Error_Unzipping, zipFile, e.getMessage()));
+ IOException ioException = new IOException(NLS.bind(Messages.Util_Error_Unzipping, zipFile, e.getMessage()));
+ ioException.initCause(e);
+ throw ioException;
} finally {
in.close();
}
diff --git a/bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/persistence/P2FParser.java b/bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/persistence/P2FParser.java
index 24c2f74e6..bf0743fe8 100644
--- a/bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/persistence/P2FParser.java
+++ b/bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/persistence/P2FParser.java
@@ -211,9 +211,13 @@ public class P2FParser extends XMLParser implements P2FConstants {
xmlReader.setContentHandler(new P2FDocHandler(P2F_ELEMENT, p2fHandler));
xmlReader.parse(new InputSource(stream));
} catch (SAXException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
} catch (ParserConfigurationException e) {
- throw new IOException(e.getMessage());
+ IOException ioException = new IOException(e.getMessage());
+ ioException.initCause(e);
+ throw ioException;
} finally {
stream.close();
}

Back to the top