[397384] Ensure that empty as well as package-info.java is ignored.
diff --git a/org.eclipse.modisco.java.composition.discoverer/META-INF/MANIFEST.MF b/org.eclipse.modisco.java.composition.discoverer/META-INF/MANIFEST.MF
index da7c786..ae9de9a 100644
--- a/org.eclipse.modisco.java.composition.discoverer/META-INF/MANIFEST.MF
+++ b/org.eclipse.modisco.java.composition.discoverer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.modisco.java.composition.discoverer;singleton:=true
-Bundle-Version: 1.5.0.qualifier
+Bundle-Version: 1.5.4.qualifier
 Bundle-Activator: org.eclipse.modisco.java.composition.discoverer.Activator
 Bundle-Vendor: %Bundle-Vendor
 Require-Bundle: org.eclipse.ui,
diff --git a/org.eclipse.modisco.java.composition.discoverer/src/org/eclipse/modisco/java/composition/discoverer/AbstractDiscoverKDMSourceAndJavaModel.java b/org.eclipse.modisco.java.composition.discoverer/src/org/eclipse/modisco/java/composition/discoverer/AbstractDiscoverKDMSourceAndJavaModel.java
index 324781e..68d7fe1 100644
--- a/org.eclipse.modisco.java.composition.discoverer/src/org/eclipse/modisco/java/composition/discoverer/AbstractDiscoverKDMSourceAndJavaModel.java
+++ b/org.eclipse.modisco.java.composition.discoverer/src/org/eclipse/modisco/java/composition/discoverer/AbstractDiscoverKDMSourceAndJavaModel.java
@@ -423,11 +423,9 @@
 

 		// List all compilation unit in the model

 		List<CompilationUnit> compilationUnitList = new ArrayList<CompilationUnit>();

-		// bug 332068: we have to filter all compilation units named "package-info.java"

+		// The Bug 397384 fix ensures we have no compilation units named "package-info.java"

 		for (CompilationUnit cu : getJavaModel().getCompilationUnits()) {

-			if (!cu.getName().equals("package-info.java")) { //$NON-NLS-1$

-				compilationUnitList.add(cu);

-			} // else it is only javadoc or annotations for parent package

+			compilationUnitList.add(cu);

 		}

 

 		// List all Source File in the model

diff --git a/org.eclipse.modisco.java.discoverer.tests/META-INF/MANIFEST.MF b/org.eclipse.modisco.java.discoverer.tests/META-INF/MANIFEST.MF
index b4cf53b..9890f1a0 100644
--- a/org.eclipse.modisco.java.discoverer.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.modisco.java.discoverer.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %Bundle-Name

 Bundle-SymbolicName: org.eclipse.modisco.java.discoverer.tests;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.5.4.qualifier

 Bundle-Activator: org.eclipse.modisco.java.discoverer.tests.Activator

 Bundle-Vendor: %Bundle-Vendor

 Require-Bundle: org.eclipse.ui;bundle-version="3.5.0",

diff --git a/org.eclipse.modisco.java.discoverer.tests/pom.xml b/org.eclipse.modisco.java.discoverer.tests/pom.xml
index f8f4791..53850ee 100644
--- a/org.eclipse.modisco.java.discoverer.tests/pom.xml
+++ b/org.eclipse.modisco.java.discoverer.tests/pom.xml
@@ -26,7 +26,7 @@
   </parent>

   <groupId>org.eclipse.modisco</groupId>

   <artifactId>org.eclipse.modisco.java.discoverer.tests</artifactId>

-  <version>1.5.1-SNAPSHOT</version>

+  <version>1.5.4-SNAPSHOT</version>

   <packaging>eclipse-test-plugin</packaging>

    <build>

       <plugins>

diff --git a/org.eclipse.modisco.java.discoverer.tests/workspace/bug318631/src/Empty.java b/org.eclipse.modisco.java.discoverer.tests/workspace/bug318631/src/Empty.java
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/org.eclipse.modisco.java.discoverer.tests/workspace/bug318631/src/Empty.java
diff --git a/org.eclipse.modisco.java.discoverer/META-INF/MANIFEST.MF b/org.eclipse.modisco.java.discoverer/META-INF/MANIFEST.MF
index beb9706..4d99e46 100644
--- a/org.eclipse.modisco.java.discoverer/META-INF/MANIFEST.MF
+++ b/org.eclipse.modisco.java.discoverer/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-ActivationPolicy: lazy

 Bundle-Vendor: %Bundle-Vendor

 Bundle-SymbolicName: org.eclipse.modisco.java.discoverer;singleton:=true

-Bundle-Version: 1.5.1.qualifier

+Bundle-Version: 1.5.4.qualifier

 Bundle-Name: %Bundle-Name

 Bundle-RequiredExecutionEnvironment: JavaSE-1.8

 Require-Bundle: org.eclipse.modisco.infra.common.core,

diff --git a/org.eclipse.modisco.java.discoverer/src/org/eclipse/modisco/java/discoverer/internal/io/java/JDTVisitor.java b/org.eclipse.modisco.java.discoverer/src/org/eclipse/modisco/java/discoverer/internal/io/java/JDTVisitor.java
index 05bd8a1..99a9c06 100644
--- a/org.eclipse.modisco.java.discoverer/src/org/eclipse/modisco/java/discoverer/internal/io/java/JDTVisitor.java
+++ b/org.eclipse.modisco.java.discoverer/src/org/eclipse/modisco/java/discoverer/internal/io/java/JDTVisitor.java
@@ -733,18 +733,19 @@
 	@Override

 	public boolean visit(final org.eclipse.jdt.core.dom.CompilationUnit node) {

 		this.cuNode = node;

-

-		CompilationUnit element = this.factory.createCompilationUnit();

-		this.binding.put(node, element);

-

-		if (!this.isINCREMENTALDISCOVERING) {

-			// we check if any of the top-level types of this compilation unit

-			// are already defined in the model

-			for (Iterator<?> iterator = node.types().iterator(); iterator.hasNext();) {

-				if (isTypeAlreadyVisited((org.eclipse.jdt.core.dom.AbstractTypeDeclaration) iterator

-						.next())) {

-					this.isAlreadyVisited = true;

-					return false;

+		if (node.types().size() > 0) {	// Bug 397384 ignore empty files, Bug 332068 ignore package-info.java

+			CompilationUnit element = this.factory.createCompilationUnit();

+			this.binding.put(node, element);

+	

+			if (!this.isINCREMENTALDISCOVERING) {

+				// we check if any of the top-level types of this compilation unit

+				// are already defined in the model

+				for (Iterator<?> iterator = node.types().iterator(); iterator.hasNext();) {

+					if (isTypeAlreadyVisited((org.eclipse.jdt.core.dom.AbstractTypeDeclaration) iterator

+							.next())) {

+						this.isAlreadyVisited = true;

+						return false;

+					}

 				}

 			}

 		}