Bug 426333 - CoreException logging hides stack traces in several locations
Summary: CoreException logging hides stack traces in several locations
Status: NEW
Alias: None
Product: Sirius
Classification: Modeling
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 minor (vote)
Target Milestone: ---   Edit
Assignee: Project inbox CLA
QA Contact:
URL:
Whiteboard: trivial
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2014-01-22 06:30 EST by Felix Dorner CLA
Modified: 2014-01-22 11:16 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Dorner CLA 2014-01-22 06:30:47 EST
I found several places in Sirius master that uses a discouraged pattern to log CoreException statuses. For example, in MarkerUtil:

 public static void removeMarkerFor(IResource resource, String type) {
        try {
            if (resource != null && resource.exists()) {
                resource.deleteMarkers(type, false, IResource.DEPTH_ZERO);
            }
        } catch (final CoreException e) {
            DslCommonPlugin.getDefault().getLog().log(e.getStatus());
        }
    }


Javadoc for CoreException.getStatus() discourages to directly pass the status object to the logger, because it hides exception traces, and missing stack traces makes folks grumpy :)

Fortunately, the javadoc also gives an example how to correctly log core exceptions. Please use the javadoc's advice and replace corresponding bad usages.

Here's a list of files where I found the antipattern used:

$ grep -r -H log\(e.getStatus .

./plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/diagramtype/Dia
gramTypeDescriptorRegistry.java
./plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/logger/Mar
kerRuntimeLoggerImpl.java
./plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/modelingpr
oject/manager/InitializeModelingProjectJob.java
./plugins/org.eclipse.sirius.common/src/org/eclipse/sirius/common/tools/api/util
/EclipseUtil.java
./plugins/org.eclipse.sirius.common/src/org/eclipse/sirius/common/tools/api/util
/MarkerUtil.java
./plugins/org.eclipse.sirius.common/src/org/eclipse/sirius/common/tools/api/util
/MarkerUtil.java
./plugins/org.eclipse.sirius.eef.adapters/src/org/eclipse/sirius/eef/section/Sir
iusFilteringSectionDescriptor.java
./plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/views/modele
xplorerview/resourcelistener/MarkerDeletionJob.java
./plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/internal/views/c
ommon/modelingproject/OpenRepresentationsFileJob.java
Comment 1 Esteban DUGUEPEROUX CLA 2014-01-22 07:18:58 EST
Indeed it is a good remark, we will correct it. Thanks.