Bug 395366 - JDT Building Resource Copy Filter reseted on startup
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java
index 1ad248b..2e37837 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/LaunchingPreferenceInitializer.java
@@ -52,7 +52,32 @@
if(dnode == null) {
return;
}
- dnode.put(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, launchFilter);
+ //check to see if another plug-in has contributed to these defaults as well
+ //https://bugs.eclipse.org/bugs/show_bug.cgi?id=395366
+ String val = dnode.get(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, (String)null);
+ if(val != null && !"".equals(val)) { //$NON-NLS-1$
+ String[] filters = val.split(","); //$NON-NLS-1$
+ StringBuffer buff = new StringBuffer();
+ boolean found = false;
+ for (int i = 0; i < filters.length; i++) {
+ if(launchFilter.equals(val)) {
+ found = true;
+ break;
+ }
+ String filter = filters[i].trim();
+ buff.append(filter);
+ if(i < filters.length-1) {
+ buff.append(',');
+ }
+ }
+ if(!found) {
+ launchFilter = buff.append(',').append(launchFilter).toString();
+ dnode.put(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, launchFilter);
+ }
+ }
+ else {
+ dnode.put(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, launchFilter);
+ }
try {
dnode.flush();