diff --git a/.idea/libraries/winp.xml b/.idea/libraries/winp.xml index f86a5426c94b..ca5008ccc110 100644 --- a/.idea/libraries/winp.xml +++ b/.idea/libraries/winp.xml @@ -1,9 +1,11 @@ - + - + + + \ No newline at end of file diff --git a/build/scripts/libLicenses.gant b/build/scripts/libLicenses.gant index 52eefc21f4dc..c4b9f40dfd88 100644 --- a/build/scripts/libLicenses.gant +++ b/build/scripts/libLicenses.gant @@ -222,7 +222,7 @@ libraryLicense(name: "TestNG", version: "5.7 snapshot", license: "Apache 2.0", u libraryLicense(name: "Trilead SSH", libraryName: "trilead-ssh2", version: "build 213", license: "BSD style (see LICENSE.txt in trilead.jar)", url: "http://www.trilead.com/SSH_Library/") libraryLicense(name: "Trove4j", version: "1.1 (with patches by JetBrains)", license: "LGPL", url: "http://trove4j.sourceforge.net/", licenseUrl: "http://trove4j.sourceforge.net/html/license.html") libraryLicense(name: "Velocity", version: "1.7", license: "Apache 2.0", url: "http://velocity.apache.org/", licenseUrl: "http://velocity.apache.org/index.html") -libraryLicense(name: "winp", version: "1.16", license: "MIT", url: "http://winp.dev.java.net/", licenseUrl: "https://winp.dev.java.net/license.html") +libraryLicense(name: "winp", version: "1.16 (patched)", license: "MIT", url: "http://winp.dev.java.net/", licenseUrl: "https://winp.dev.java.net/license.html") libraryLicense(name: "Xalan", libraryName:"Xalan-2.7.1", version: "2.7.1", license: "Apache 2.0", url: "http://xml.apache.org/xalan-j/", licenseUrl: "http://xml.apache.org/xalan-j/") libraryLicense(name: "Xerces", version: "2.9.1", license: "Apache 2.0", url: "http://xerces.apache.org/xerces2-j/", licenseUrl: "http://xerces.apache.org/xerces2-j/") libraryLicense(name: "XML Commons (xml-apis.jar, resolver.jar)", version: "", license: "Apache 2.0, W3C Software License , public domain", url: "http://xml.apache.org/commons/", licenseUrl: "http://xml.apache.org/commons/licenses.html") diff --git a/java/compiler/openapi/src/com/intellij/openapi/compiler/ex/CompilerPathsEx.java b/java/compiler/openapi/src/com/intellij/openapi/compiler/ex/CompilerPathsEx.java index bb2d830651ce..963635775c68 100644 --- a/java/compiler/openapi/src/com/intellij/openapi/compiler/ex/CompilerPathsEx.java +++ b/java/compiler/openapi/src/com/intellij/openapi/compiler/ex/CompilerPathsEx.java @@ -30,6 +30,7 @@ import com.intellij.util.containers.OrderedSet; import gnu.trove.TObjectHashingStrategy; import java.io.File; +import java.util.Collection; import java.util.Set; public class CompilerPathsEx extends CompilerPaths { @@ -75,7 +76,7 @@ public class CompilerPathsEx extends CompilerPaths { } } - public static void visitFiles(final VirtualFile[] directories, final FileVisitor visitor) { + public static void visitFiles(final Collection directories, final FileVisitor visitor) { for (final VirtualFile outputDir : directories) { ApplicationManager.getApplication().runReadAction(new Runnable() { public void run() { diff --git a/java/debugger/impl/src/com/intellij/debugger/impl/HotSwapManager.java b/java/debugger/impl/src/com/intellij/debugger/impl/HotSwapManager.java index 1838d9d21458..9483a6668db2 100644 --- a/java/debugger/impl/src/com/intellij/debugger/impl/HotSwapManager.java +++ b/java/debugger/impl/src/com/intellij/debugger/impl/HotSwapManager.java @@ -20,14 +20,15 @@ import com.intellij.debugger.DebuggerManagerEx; import com.intellij.debugger.engine.DebuggerManagerThreadImpl; import com.intellij.debugger.engine.events.DebuggerCommandImpl; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.compiler.ex.CompilerPathsEx; import com.intellij.openapi.components.AbstractProjectComponent; +import com.intellij.openapi.fileTypes.StdFileTypes; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.OrderEnumerator; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.containers.HashMap; import org.jetbrains.annotations.NotNull; @@ -68,25 +69,58 @@ public class HotSwapManager extends AbstractProjectComponent { myTimeStamps.put(session, Long.valueOf(tStamp)); } - public Map scanForModifiedClasses(final DebuggerSession session, final HotSwapProgress progress) { + public Map scanForModifiedClasses(final DebuggerSession session, final HotSwapProgress progress, final boolean scanWithVFS) { DebuggerManagerThreadImpl.assertIsManagerThread(); - final List outputRoots = new ArrayList(); - ApplicationManager.getApplication().runReadAction(new Runnable() { - public void run() { - final List allClasses = OrderEnumerator.orderEntries(myProject).withoutSdk().withoutLibraries().getPathsList().getRootDirs(); - for (VirtualFile dir : VfsUtil.toVirtualFileArray(allClasses)) { - outputRoots.add(new File(dir.getPath())); - } - } - }); - final long timeStamp = getTimeStamp(session); final Map modifiedClasses = new HashMap(); - for (File root : outputRoots) { - final String rootPath = FileUtil.toCanonicalPath(root.getPath()); - collectModifiedClasses(root, rootPath, rootPath + "/", modifiedClasses, progress, timeStamp); + + if (scanWithVFS) { + ApplicationManager.getApplication().runReadAction(new Runnable() { + public void run() { + final List allDirs = OrderEnumerator.orderEntries(myProject).withoutSdk().withoutLibraries().getPathsList().getRootDirs(); + CompilerPathsEx.visitFiles(allDirs, new CompilerPathsEx.FileVisitor() { + protected void acceptDirectory(final VirtualFile file, final String fileRoot, final String filePath) { + if (!progress.isCancelled()) { + progress.setText(DebuggerBundle.message("progress.hotswap.scanning.path", filePath)); + super.acceptDirectory(file, fileRoot, filePath); + } + } + + protected void acceptFile(VirtualFile file, String fileRoot, String filePath) { + if (progress.isCancelled()) { + return; + } + if (file.getTimeStamp() > timeStamp && StdFileTypes.CLASS.equals(file.getFileType())) { + //noinspection HardCodedStringLiteral + if (SystemInfo.isFileSystemCaseSensitive ? filePath.endsWith(CLASS_EXTENSION) : StringUtil.endsWithIgnoreCase(filePath, CLASS_EXTENSION)) { + progress.setText(DebuggerBundle.message("progress.hotswap.scanning.path", filePath)); + //noinspection HardCodedStringLiteral + final String qualifiedName = filePath.substring(fileRoot.length() + 1, filePath.length() - CLASS_EXTENSION.length()).replace('/', '.'); + modifiedClasses.put(qualifiedName, new HotSwapFile(new File(filePath))); + } + } + } + }); + } + }); } + else { + final List outputRoots = new ArrayList(); + ApplicationManager.getApplication().runReadAction(new Runnable() { + public void run() { + final List allDirs = OrderEnumerator.orderEntries(myProject).withoutSdk().withoutLibraries().getPathsList().getRootDirs(); + for (VirtualFile dir : allDirs) { + outputRoots.add(new File(dir.getPath())); + } + } + }); + for (File root : outputRoots) { + final String rootPath = FileUtil.toCanonicalPath(root.getPath()); + collectModifiedClasses(root, rootPath, rootPath + "/", modifiedClasses, progress, timeStamp); + } + } + return modifiedClasses; } @@ -158,7 +192,7 @@ public class HotSwapManager extends AbstractProjectComponent { } - public static Map> scanForModifiedClasses(final List sessions, final HotSwapProgress swapProgress) { + public static Map> scanForModifiedClasses(final List sessions, final HotSwapProgress swapProgress, final boolean scanWithVFS) { final Map> modifiedClasses = new HashMap>(); final MultiProcessCommand scanClassesCommand = new MultiProcessCommand(); @@ -174,7 +208,7 @@ public class HotSwapManager extends AbstractProjectComponent { scanClassesCommand.addCommand(debuggerSession.getProcess(), new DebuggerCommandImpl() { protected void action() throws Exception { swapProgress.setDebuggerSession(debuggerSession); - final Map sessionClasses = getInstance(swapProgress.getProject()).scanForModifiedClasses(debuggerSession, swapProgress); + final Map sessionClasses = getInstance(swapProgress.getProject()).scanForModifiedClasses(debuggerSession, swapProgress, scanWithVFS); if (!sessionClasses.isEmpty()) { modifiedClasses.put(debuggerSession, sessionClasses); } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/HotSwapUIImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/HotSwapUIImpl.java index 5404b04f8f99..ff744dbad2d4 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/HotSwapUIImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/HotSwapUIImpl.java @@ -16,6 +16,7 @@ package com.intellij.debugger.ui; import com.intellij.CommonBundle; +import com.intellij.compiler.CompilerWorkspaceConfiguration; import com.intellij.debugger.DebuggerBundle; import com.intellij.debugger.DebuggerManagerEx; import com.intellij.debugger.impl.DebuggerSession; @@ -157,11 +158,16 @@ public class HotSwapUIImpl extends HotSwapUI implements ProjectComponent{ return; } - final HotSwapProgressImpl findClassesProgress = generatedPaths == null? new HotSwapProgressImpl(myProject) : null; + final boolean isServerMode = CompilerWorkspaceConfiguration.getInstance(myProject).useCompileServer(); + final boolean shouldPerformScan = !isServerMode || generatedPaths == null; + + final HotSwapProgressImpl findClassesProgress = shouldPerformScan ? new HotSwapProgressImpl(myProject) : null; ApplicationManager.getApplication().executeOnPooledThread(new Runnable() { public void run() { - final Map> modifiedClasses = generatedPaths == null? scanForModifiedClassesWithProgress(sessions, findClassesProgress) : HotSwapManager.findModifiedClasses(sessions, generatedPaths); + final Map> modifiedClasses = shouldPerformScan? + scanForModifiedClassesWithProgress(sessions, findClassesProgress, !isServerMode) : + HotSwapManager.findModifiedClasses(sessions, generatedPaths); final Application application = ApplicationManager.getApplication(); if (modifiedClasses.isEmpty()) { @@ -216,12 +222,12 @@ public class HotSwapUIImpl extends HotSwapUI implements ProjectComponent{ }); } - private static Map> scanForModifiedClassesWithProgress(final List sessions, final HotSwapProgressImpl progress) { + private static Map> scanForModifiedClassesWithProgress(final List sessions, final HotSwapProgressImpl progress, final boolean scanWithVFS) { final Ref>> result = Ref.create(null); ProgressManager.getInstance().runProcess(new Runnable() { public void run() { try { - result.set(HotSwapManager.scanForModifiedClasses(sessions, progress)); + result.set(HotSwapManager.scanForModifiedClasses(sessions, progress, scanWithVFS)); } finally { progress.finished(); diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java index 3d5cc6306f28..4a0ed7347583 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java @@ -157,6 +157,9 @@ public class GenericsHighlightUtil { if (pparent instanceof PsiTypeElement) { PsiElement variable = pparent.getParent(); if (variable instanceof PsiVariable) { + if (targetParametersNum == 0) { + QuickFixAction.registerQuickFixAction(highlightInfo, new RemoveTypeArgumentsFix(variable), null); + } VariableParameterizedTypeFix.registerIntentions(highlightInfo, (PsiVariable)variable, referenceParameterList); } } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveTypeArgumentsFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveTypeArgumentsFix.java new file mode 100644 index 000000000000..d0a5eea3c48b --- /dev/null +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveTypeArgumentsFix.java @@ -0,0 +1,75 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.codeInsight.daemon.impl.quickfix; + +import com.intellij.codeInsight.intention.HighPriorityAction; +import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement; +import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.project.Project; +import com.intellij.psi.*; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * User: anna + * Date: 1/18/12 + */ +public class RemoveTypeArgumentsFix extends LocalQuickFixAndIntentionActionOnPsiElement implements HighPriorityAction { + private static final Logger LOGGER = Logger.getInstance("#" + RemoveTypeArgumentsFix.class.getName()); + + public RemoveTypeArgumentsFix(@Nullable PsiElement element) { + super(element); + } + + @NotNull + @Override + public String getText() { + return "Remove type arguments"; + } + + @NotNull + @Override + public String getFamilyName() { + return getText(); + } + + @Override + public boolean isAvailable(@NotNull Project project, + @NotNull PsiFile file, + @NotNull PsiElement startElement, + @NotNull PsiElement endElement) { + return startElement instanceof PsiVariable && startElement.isValid() && ((PsiVariable)startElement).getTypeElement() != null; + } + + @Override + public void invoke(@NotNull Project project, + @NotNull PsiFile file, + @Nullable("is null when called from inspection") Editor editor, + @NotNull PsiElement startElement, + @NotNull PsiElement endElement) { + final PsiVariable psiVariable = (PsiVariable)startElement; + final PsiTypeElement typeElement = psiVariable.getTypeElement(); + LOGGER.assertTrue(typeElement != null); + final PsiJavaCodeReferenceElement referenceElement = typeElement.getInnermostComponentReferenceElement(); + if (referenceElement != null) { + final PsiReferenceParameterList parameterList = referenceElement.getParameterList(); + if (parameterList != null) { + parameterList.delete(); + } + } + } +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments/afterRemoveAll.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments/afterRemoveAll.java new file mode 100644 index 000000000000..6717f0845c70 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments/afterRemoveAll.java @@ -0,0 +1,7 @@ +// "Remove type arguments" "true" +abstract class SomeClass implements Some { + public abstract void doSomething(K key, Node root); +} +class Node {} +interface Some{} + diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments/beforeRemoveAll.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments/beforeRemoveAll.java new file mode 100644 index 000000000000..b80e08c65436 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments/beforeRemoveAll.java @@ -0,0 +1,7 @@ +// "Remove type arguments" "true" +abstract class SomeClass implements Some { + public abstract void doSomething(K key, Node root); +} +class Node {} +interface Some{} + diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments/beforeRemoveUnavailable.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments/beforeRemoveUnavailable.java new file mode 100644 index 000000000000..23363b2c6613 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments/beforeRemoveUnavailable.java @@ -0,0 +1,7 @@ +// "Remove type arguments" "false" +abstract class SomeClass implements Some { + public abstract void doSomething(K key, Node root); +} +class Node {} +interface Some{} + diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/RemoveTypeArgumentsTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/RemoveTypeArgumentsTest.java new file mode 100644 index 000000000000..cd1a096e0d96 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/RemoveTypeArgumentsTest.java @@ -0,0 +1,25 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.codeInsight.daemon.quickFix; + +public class RemoveTypeArgumentsTest extends LightQuickFixTestCase { + public void test() throws Exception { doAllTests(); } + + @Override + protected String getBasePath() { + return "/codeInsight/daemonCodeAnalyzer/quickFix/removeTypeArguments"; + } +} diff --git a/lib/required_for_dist.txt b/lib/required_for_dist.txt index d08f4b185b8c..6e5ed206d18f 100644 --- a/lib/required_for_dist.txt +++ b/lib/required_for_dist.txt @@ -37,7 +37,7 @@ sanselan-0.98-snapshot.jar serviceMessages.jar trove4j.jar velocity.jar -winp-1.16.jar +winp-1.16-patched.jar xbean.jar xerces.jar xmlrpc-2.0.jar diff --git a/lib/src/winp-1.16-patched-src.zip b/lib/src/winp-1.16-patched-src.zip new file mode 100644 index 000000000000..fb96ffb2ea2a Binary files /dev/null and b/lib/src/winp-1.16-patched-src.zip differ diff --git a/lib/winp-1.16-patched.jar b/lib/winp-1.16-patched.jar new file mode 100644 index 000000000000..36dca5299f50 Binary files /dev/null and b/lib/winp-1.16-patched.jar differ diff --git a/lib/winp-1.16.jar b/lib/winp-1.16.jar deleted file mode 100644 index 6011ea71e8c5..000000000000 Binary files a/lib/winp-1.16.jar and /dev/null differ diff --git a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java index 9ab6b99af4ba..24f74774c628 100644 --- a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java +++ b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java @@ -1275,7 +1275,8 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp final PsiElement rootElement = treeStructure.getRootPsiElement(); final SelectionModel selection = myEditor.getSelectionModel(); PsiElement rootPsiElement = treeStructure.getRootPsiElement(); - int baseOffset = rootPsiElement.getTextRange().getStartOffset(); + final TextRange textRange = rootPsiElement.getTextRange(); + int baseOffset = textRange != null ? textRange.getStartOffset() : 0; final int start = selection.getSelectionStart()+baseOffset; final int end = selection.getSelectionEnd()+baseOffset - 1; final PsiElement element = diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java index 9a20cb09ec2e..76422cc6e8e1 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java @@ -114,7 +114,7 @@ public class IdeFrameImpl extends JFrame implements IdeFrame, DataProvider { // http://lists.apple.com/archives/java-dev/2009/Dec/msg00240.html if (SystemInfo.isMac) setIconImage(null); // enable fullscreen titlebar button - if (SystemInfo.isMacOSLion) FullScreenUtilities.setWindowCanFullScreen(this, true); + if (SystemInfo.isMacOSLion && MacMainFrameDecorator.FULL_SCREEN_AVAILABLE) FullScreenUtilities.setWindowCanFullScreen(this, true); MouseGestureManager.getInstance().add(this); } diff --git a/platform/platform-impl/src/com/intellij/ui/mac/MacMainFrameDecorator.java b/platform/platform-impl/src/com/intellij/ui/mac/MacMainFrameDecorator.java index 8b7c0e64d534..ddc17b3a4fd3 100644 --- a/platform/platform-impl/src/com/intellij/ui/mac/MacMainFrameDecorator.java +++ b/platform/platform-impl/src/com/intellij/ui/mac/MacMainFrameDecorator.java @@ -53,6 +53,7 @@ public class MacMainFrameDecorator implements UISettingsListener, Disposable { public static final Key SHOULD_OPEN_IN_FULLSCREEN = Key.create("mac.should.open.in.fullscreen"); public static final String FULL_SCREEN = "Idea.Is.In.FullScreen.Mode.Now"; + public static final boolean FULL_SCREEN_AVAILABLE = SystemInfo.isJavaVersionAtLeast("1.6.0_29"); private static boolean SHOWN = false; @@ -136,6 +137,8 @@ public class MacMainFrameDecorator implements UISettingsListener, Disposable { }); try { if (SystemInfo.isMacOSLion) { + if (!FULL_SCREEN_AVAILABLE) return; + FullScreenUtilities.addFullScreenListenerTo(frame, new FullScreenAdapter() { @Override public void windowEnteredFullScreen(AppEvent.FullScreenEvent event) { diff --git a/platform/util/src/com/intellij/Patches.java b/platform/util/src/com/intellij/Patches.java index 998639c91ba6..8008080b4b12 100644 --- a/platform/util/src/com/intellij/Patches.java +++ b/platform/util/src/com/intellij/Patches.java @@ -106,8 +106,6 @@ public class Patches { /** * Lion eAWT FullScreen mode leads to visual artifacts - * - * @see com.intellij.util.concurrency.LockFactory */ public static final boolean APPLE_BUG_ID_10207064 = SystemInfo.isMac && (!SystemInfo.isMacOSLeopard || !SystemInfo.isJavaVersionAtLeast("1.6.0_30")); diff --git a/platform/util/src/com/intellij/util/lang/ClassPath.java b/platform/util/src/com/intellij/util/lang/ClassPath.java index ec363dae33d7..5055c0ad4a49 100644 --- a/platform/util/src/com/intellij/util/lang/ClassPath.java +++ b/platform/util/src/com/intellij/util/lang/ClassPath.java @@ -119,7 +119,7 @@ class ClassPath { List loaders = myCache.getLoaders(s); for (int j = 0, size = loaders.size(); j < size; ++j ) { final Loader loader = loaders.get(j); - if (!myCache.loaderHasName(s, loader)) continue; + //if (!myCache.loaderHasName(s, loader)) continue; final Resource resource = loader.getResource(s, flag); if (resource != null) { if (ourDumpOrder) {