Index: model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java =================================================================== RCS file: /data/cvs/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java,v retrieving revision 1.100 diff -u -r1.100 PackageFragmentRoot.java --- model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java 28 May 2004 09:05:30 -0000 1.100 +++ model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java 3 Jun 2004 21:36:14 -0000 @@ -246,20 +246,19 @@ switch(member.getType()) { case IResource.FOLDER: + // recurse into sub folders even even parent not included as a sub folder could be included + // (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=65637) if (Util.isValidFolderNameForPackage(memberName)) { - boolean isMemberIncluded = !Util.isExcluded(member, inclusionPatterns, exclusionPatterns); - // keep looking inside as long as included already, or may have child included due to inclusion patterns - if (isMemberIncluded || inclusionPatterns != null) { - // eliminate binary output only if nested inside direct subfolders - if (javaProject.contains(member)) { - String newPrefix; - if (prefix.length() == 0) { - newPrefix = memberName; - } else { - newPrefix = prefix + "." + memberName; //$NON-NLS-1$ - } - computeFolderChildren((IFolder) member, isMemberIncluded, newPrefix, vChildren, inclusionPatterns, exclusionPatterns); + // eliminate binary output only if nested inside direct subfolders + if (javaProject.contains(member)) { + String newPrefix; + if (prefix.length() == 0) { + newPrefix = memberName; + } else { + newPrefix = prefix + "." + memberName; //$NON-NLS-1$ } + boolean isMemberIncluded = !Util.isExcluded(member, inclusionPatterns, exclusionPatterns); + computeFolderChildren((IFolder) member, isMemberIncluded, newPrefix, vChildren, inclusionPatterns, exclusionPatterns); } } break;