diff --git a/build.gradle b/build.gradle
index 64f0bda..3756158 100644
--- a/build.gradle
+++ b/build.gradle
@@ -333,7 +333,7 @@
     // include all directories which contain files that are included in releases
     includes.add("examples/**")
     includes.add("excelant/**")
-    includes.add("integrationtest/**")
+    includes.add("poi-integration/**")
     includes.add("legal/**")
     includes.add("main/**")
     includes.add("maven/**")
diff --git a/jenkins/create_jobs.groovy b/jenkins/create_jobs.groovy
index af67405..f841b78 100644
--- a/jenkins/create_jobs.groovy
+++ b/jenkins/create_jobs.groovy
@@ -453,7 +453,7 @@
                     }
                     ant {
                         targets(['run'] + (poijob.properties ?: []))
-                        buildFile('integrationtest/build.xml')
+                        buildFile('poi-integration/build.xml')
                         // Properties did not work, so I had to use targets instead
                         //properties(poijob.properties ?: '')
                         antInstallation(antRT)
@@ -470,7 +470,7 @@
                     }
                 }
                 // in archive, junit and jacoco publishers, matches beneath build/*/build/... are for Gradle-build results
-                archiveArtifacts('build/dist/*.tar.gz,build/findbugs.html,build/coverage/**,integrationtest/build/test-results/**,*/build/libs/*.jar')
+                archiveArtifacts('build/dist/*.tar.gz,build/findbugs.html,build/coverage/**,poi-integration/build/test-results/**,*/build/libs/*.jar')
                 warnings(['Java Compiler (javac)', 'JavaDoc Tool'], null) {
                     resolveRelativePaths()
                 }
diff --git a/poi/src/main/java/org/apache/poi/hssf/record/common/FeatFormulaErr2.java b/poi/src/main/java/org/apache/poi/hssf/record/common/FeatFormulaErr2.java
index f7330fd..bdf9f06 100644
--- a/poi/src/main/java/org/apache/poi/hssf/record/common/FeatFormulaErr2.java
+++ b/poi/src/main/java/org/apache/poi/hssf/record/common/FeatFormulaErr2.java
@@ -33,7 +33,7 @@
 /**
  * Title: FeatFormulaErr2 (Formula Evaluation Shared Feature) common record part
  * <P>
- * This record part specifies Formula Evaluation & Error Ignoring data
+ * This record part specifies Formula Evaluation &amp; Error Ignoring data
  *  for a sheet, stored as part of a Shared Feature. It can be found in
  *  records such as {@link FeatRecord}.
  * For the full meanings of the flags, see pages 669 and 670
diff --git a/poi/src/main/java/org/apache/poi/poifs/common/POIFSBigBlockSize.java b/poi/src/main/java/org/apache/poi/poifs/common/POIFSBigBlockSize.java
index 1e8b1b1..efb35ac 100644
--- a/poi/src/main/java/org/apache/poi/poifs/common/POIFSBigBlockSize.java
+++ b/poi/src/main/java/org/apache/poi/poifs/common/POIFSBigBlockSize.java
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 
 package org.apache.poi.poifs.common;
 
@@ -28,30 +28,30 @@
 {
    private int bigBlockSize;
    private short headerValue;
-   
+
    protected POIFSBigBlockSize(int bigBlockSize, short headerValue) {
       this.bigBlockSize = bigBlockSize;
       this.headerValue = headerValue;
    }
-   
+
    public int getBigBlockSize() {
       return bigBlockSize;
    }
-   
+
    /**
-    * Returns the value that gets written into the 
+    * Returns the value that gets written into the
     *  header.
     * Is the power of two that corresponds to the
-    *  size of the block, eg 512 => 9
+    *  size of the block, eg 512 =&gt; 9
     */
    public short getHeaderValue() {
       return headerValue;
    }
-   
+
    public int getPropertiesPerBlock() {
       return bigBlockSize / POIFSConstants.PROPERTY_SIZE;
    }
-   
+
    public int getBATEntriesPerBlock() {
       return bigBlockSize / LittleEndianConsts.INT_SIZE;
    }
diff --git a/sonar/integration-test/pom.xml b/sonar/integration-test/pom.xml
index 01e75d9..583d28e 100644
--- a/sonar/integration-test/pom.xml
+++ b/sonar/integration-test/pom.xml
@@ -31,7 +31,7 @@
                             <outputDirectory>${basedir}/src/test/java</outputDirectory>
                             <resources>
                                 <resource>
-                                    <directory>../../integrationtest/src/test/java</directory>
+                                    <directory>../../poi-integration/src/test/java</directory>
                                 </resource>
                                 <resource>
                                     <directory>../../main/src/test/java</directory>
@@ -43,7 +43,7 @@
                                     </includes>
                                 </resource>
                                 <resource>
-                                    <directory>../../integrationtest/src/test/resources</directory>
+                                    <directory>../../poi-integration/src/test/resources</directory>
                                 </resource>
                             </resources>
                         </configuration>
