You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2016/10/31 07:25:55 UTC

svn commit: r1767222 - in /jackrabbit/commons/filevault/trunk: parent/ vault-core/ vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/ vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/

Author: tripod
Date: Mon Oct 31 07:25:55 2016
New Revision: 1767222

URL: http://svn.apache.org/viewvc?rev=1767222&view=rev
Log:
trivial: add some findbugs annotations

Modified:
    jackrabbit/commons/filevault/trunk/parent/pom.xml
    jackrabbit/commons/filevault/trunk/vault-core/pom.xml
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/DependencyHandling.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageDefinition.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageManager.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageDefinitionImpl.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java

Modified: jackrabbit/commons/filevault/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/parent/pom.xml?rev=1767222&r1=1767221&r2=1767222&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/parent/pom.xml (original)
+++ jackrabbit/commons/filevault/trunk/parent/pom.xml Mon Oct 31 07:25:55 2016
@@ -310,6 +310,12 @@
                 <version>1.2.12</version>
                 <scope>provided</scope>
             </dependency>
+            <dependency>
+                <groupId>com.google.code.findbugs</groupId>
+                <artifactId>jsr305</artifactId>
+                <version>3.0.1</version>
+                <scope>provided</scope>
+            </dependency>
 
             <!-- other -->
             <!-- osgi stuff -->

Modified: jackrabbit/commons/filevault/trunk/vault-core/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/pom.xml?rev=1767222&r1=1767221&r2=1767222&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/pom.xml (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/pom.xml Mon Oct 31 07:25:55 2016
@@ -165,6 +165,11 @@
             <artifactId>commons-io</artifactId>
             <scope>provided</scope>
         </dependency>
+        <dependency>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>jsr305</artifactId>
+            <scope>provided</scope>
+        </dependency>
 
         <!-- osgi stuff -->
         <dependency>

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/DependencyHandling.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/DependencyHandling.java?rev=1767222&r1=1767221&r2=1767222&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/DependencyHandling.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/DependencyHandling.java Mon Oct 31 07:25:55 2016
@@ -47,7 +47,6 @@ public enum DependencyHandling {
      * Full dependency checks are enforced. Packages with missing or uninstalled dependencies are not installed and
      * packages that are dependencies of other packages cannot be un-installed.
      */
-    STRICT,
-
+    STRICT
 
 }

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java?rev=1767222&r1=1767221&r2=1767222&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java Mon Oct 31 07:25:55 2016
@@ -19,6 +19,8 @@ package org.apache.jackrabbit.vault.pack
 
 import java.io.IOException;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
 import javax.jcr.Node;
 import javax.jcr.Property;
 import javax.jcr.RepositoryException;
@@ -56,6 +58,7 @@ public interface JcrPackage extends Comp
      *         not valid.
      * @throws RepositoryException if an error occurrs
      */
+    @CheckForNull
     JcrPackageDefinition getDefinition() throws RepositoryException;
 
     /**
@@ -68,6 +71,7 @@ public interface JcrPackage extends Comp
      * Returns the underlying node
      * @return the node
      */
+    @CheckForNull
     Node getNode();
 
     /**
@@ -83,6 +87,7 @@ public interface JcrPackage extends Comp
      * @throws RepositoryException if an error occurs
      * @throws IOException if an I/O error occurs
      */
+    @Nonnull
     VaultPackage getPackage() throws RepositoryException, IOException;
 
     /**
@@ -95,7 +100,7 @@ public interface JcrPackage extends Comp
      * @throws IOException if an I/O error occurs
      * @since 2.3.14
      */
-    void extract(ImportOptions opts)
+    void extract(@Nonnull ImportOptions opts)
             throws RepositoryException, PackageException, IOException;
 
     /**
@@ -110,7 +115,7 @@ public interface JcrPackage extends Comp
      *
      * @since 2.3.14
      */
-    void install(ImportOptions opts)
+    void install(@Nonnull ImportOptions opts)
             throws RepositoryException, PackageException, IOException;
 
     /**
@@ -120,6 +125,7 @@ public interface JcrPackage extends Comp
      * @throws RepositoryException if an error accessing the repository occurrs
      * @since 3.1.32
      */
+    @Nonnull
     Dependency[] getUnresolvedDependencies() throws RepositoryException;
 
     /**
@@ -128,6 +134,7 @@ public interface JcrPackage extends Comp
      * @throws RepositoryException if an error accessing the repository occurrs
      * @since 3.1.32
      */
+    @Nonnull
     PackageId[] getResolvedDependencies() throws RepositoryException;
 
     /**
@@ -135,7 +142,7 @@ public interface JcrPackage extends Comp
      *
      * @param opts export options
      * @param replace if {@code true} any existing snapshot is replaced.
-     * @return a package that represents the snapshot of this package.
+     * @return a package that represents the snapshot of this package or {@code null} if it wasn't created.
      * @throws RepositoryException if a repository error during installation occurs.
      * @throws PackageException if an error during packaging occurs
      * @throws IllegalStateException if the package is not valid.
@@ -143,7 +150,8 @@ public interface JcrPackage extends Comp
      *
      * @since 2.0
      */
-    JcrPackage snapshot(ExportOptions opts, boolean replace)
+    @CheckForNull
+    JcrPackage snapshot(@Nonnull ExportOptions opts, boolean replace)
             throws RepositoryException, PackageException, IOException;
 
     /**
@@ -153,6 +161,7 @@ public interface JcrPackage extends Comp
      *
      * @since 2.0
      */
+    @CheckForNull
     JcrPackage getSnapshot() throws RepositoryException;
 
     /**
@@ -168,7 +177,7 @@ public interface JcrPackage extends Comp
      *
      * @since 2.3.14
      */
-    void uninstall(ImportOptions opts)
+    void uninstall(@Nonnull ImportOptions opts)
             throws RepositoryException, PackageException, IOException;
 
     /**
@@ -213,6 +222,7 @@ public interface JcrPackage extends Comp
      * @return the jcr:data property
      * @throws RepositoryException if an error occurrs
      */
+    @CheckForNull
     Property getData() throws RepositoryException;
 
     /**
@@ -220,6 +230,7 @@ public interface JcrPackage extends Comp
      * @return the definition node.
      * @throws RepositoryException if an error occurrs
      */
+    @CheckForNull
     Node getDefNode() throws RepositoryException;
 
 }
\ No newline at end of file

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageDefinition.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageDefinition.java?rev=1767222&r1=1767221&r2=1767222&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageDefinition.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageDefinition.java Mon Oct 31 07:25:55 2016
@@ -20,6 +20,9 @@ package org.apache.jackrabbit.vault.pack
 import java.io.IOException;
 import java.util.Calendar;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 
@@ -27,7 +30,6 @@ import org.apache.jackrabbit.vault.fs.ap
 import org.apache.jackrabbit.vault.fs.api.WorkspaceFilter;
 import org.apache.jackrabbit.vault.fs.config.MetaInf;
 import org.apache.jackrabbit.vault.fs.io.AccessControlHandling;
-import org.apache.jackrabbit.vault.fs.io.Archive;
 
 /**
  * Specifies the interface of a package definition stored in the repository.
@@ -182,12 +184,14 @@ public interface JcrPackageDefinition {
      * Returns the underlying node
      * @return the node
      */
+    @Nonnull
     Node getNode();
 
     /**
      * Returns the package id
      * @return the package id
      */
+    @Nonnull
     PackageId getId();
 
     /**
@@ -196,7 +200,7 @@ public interface JcrPackageDefinition {
      * @param autoSave if {@code true} the changes are saved automatically.
      * @since 2.2
      */
-    void setId(PackageId id, boolean autoSave);
+    void setId(@Nonnull PackageId id, boolean autoSave);
 
     /**
      * Checks if this definition is unwrapped, i.e. if the definition structured
@@ -220,7 +224,7 @@ public interface JcrPackageDefinition {
      * @throws RepositoryException if an error occurs
      * @throws IOException if an I/O error occurs
      */
-    void unwrap(VaultPackage pack, boolean force, boolean autoSave)
+    void unwrap(@Nullable VaultPackage pack, boolean force, boolean autoSave)
                     throws RepositoryException, IOException;
 
     /**
@@ -228,12 +232,13 @@ public interface JcrPackageDefinition {
      * @param listener the listener
      * @throws RepositoryException if an error occurrs
      */
-    void dumpCoverage(ProgressTrackerListener listener) throws RepositoryException;
+    void dumpCoverage(@Nonnull ProgressTrackerListener listener) throws RepositoryException;
 
     /**
      * Returns the dependencies stored in this definition
      * @return the dependencies
      */
+    @Nonnull
     Dependency[] getDependencies();
 
     /**
@@ -241,21 +246,23 @@ public interface JcrPackageDefinition {
      * @param name the name of the property.
      * @return the property value or {@code null} if it does not exist.
      */
-    String get(String name);
+    @CheckForNull
+    String get(@Nonnull String name);
 
     /**
      * Generic method to retrieve a boolean property of this definition.
      * @param name the name of the property.
      * @return the property value or {@code null} if it does not exist.
      */
-    boolean getBoolean(String name);
+    boolean getBoolean(@Nonnull String name);
 
     /**
      * Generic method to retrieve a date property of this definition.
      * @param name the name of the property.
      * @return the property value or {@code null} if it does not exist.
      */
-    Calendar getCalendar(String name);
+    @CheckForNull
+    Calendar getCalendar(@Nonnull String name);
 
     /**
      * Generic method to set a string property to this definition.
@@ -263,7 +270,7 @@ public interface JcrPackageDefinition {
      * @param value the value or {@code null} to clear the property
      * @param autoSave if {@code true} the modifications are saved automatically.
      */
-    void set(String name, String value, boolean autoSave);
+    void set(@Nonnull String name, @Nullable String value, boolean autoSave);
 
     /**
      * Generic method to set a date property to this definition.
@@ -271,7 +278,7 @@ public interface JcrPackageDefinition {
      * @param value the value or {@code null} to clear the property
      * @param autoSave if {@code true} the modifications are saved automatically.
      */
-    void set(String name, Calendar value, boolean autoSave);
+    void set(@Nonnull String name, @Nullable Calendar value, boolean autoSave);
 
     /**
      * Generic method to set a boolean property to this definition.
@@ -279,14 +286,14 @@ public interface JcrPackageDefinition {
      * @param value the value
      * @param autoSave if {@code true} the modifications are saved automatically.
      */
-    void set(String name, boolean value, boolean autoSave);
+    void set(@Nonnull String name, boolean value, boolean autoSave);
 
     /**
      * Touches the last modified and last modified by property.
      * @param now calendar or {@code null}
      * @param autoSave if {@code true} the modifications are saved automatically.
      */
-    void touch(Calendar now, boolean autoSave);
+    void touch(@Nullable Calendar now, boolean autoSave);
 
     /**
      * Sets the filter to this definition and stores it in a node representation.
@@ -294,30 +301,34 @@ public interface JcrPackageDefinition {
      * @param filter the filter to set
      * @param autoSave if {@code true} the modifications are saved automatically.
      */
-    void setFilter(WorkspaceFilter filter, boolean autoSave);
+    void setFilter(@Nullable WorkspaceFilter filter, boolean autoSave);
 
     /**
      * Returns the last modified date
      * @return the last modified date
      */
+    @CheckForNull
     Calendar getLastModified();
 
     /**
      * Returns the last modified user id
      * @return the last modified user id
      */
+    @CheckForNull
     String getLastModifiedBy();
 
     /**
      * Returns the created date
      * @return the created date
      */
+    @CheckForNull
     Calendar getCreated();
 
     /**
      * Returns the creator user id
      * @return the creator
      */
+    @CheckForNull
     String getCreatedBy();
 
     /**
@@ -325,6 +336,7 @@ public interface JcrPackageDefinition {
      * @return the last wrapped date
      * @since 2.2.22
      */
+    @CheckForNull
     Calendar getLastWrapped();
 
     /**
@@ -332,30 +344,35 @@ public interface JcrPackageDefinition {
      * @return the wrapper
      * @since 2.2.22
      */
+    @CheckForNull
     String getLastWrappedBy();
 
     /**
      * Returns the last unwrapped date
      * @return the last unwrapped date
      */
+    @CheckForNull
     Calendar getLastUnwrapped();
 
     /**
      * Returns the last unwrapped user id
      * @return the last unwrapped user id
      */
+    @CheckForNull
     String getLastUnwrappedBy();
 
     /**
      * Returns the date when the package was unpacked
      * @return the unpacked date
      */
+    @CheckForNull
     Calendar getLastUnpacked();
 
     /**
      * Returns the user id who unpacked the package
      * @return the unpacked user id
      */
+    @CheckForNull
     String getLastUnpackedBy();
 
     /**
@@ -378,12 +395,14 @@ public interface JcrPackageDefinition {
      * @return the access control handling or {@code null}
      * @since 2.3.2
      */
+    @CheckForNull
     AccessControlHandling getAccessControlHandling();
 
     /**
      * Returns the description of this package
      * @return the description
      */
+    @CheckForNull
     String getDescription();
 
     /**
@@ -397,6 +416,7 @@ public interface JcrPackageDefinition {
      * @return the meta inf
      * @throws RepositoryException if an error occurs.
      */
+    @Nonnull
     MetaInf getMetaInf() throws RepositoryException;
 
 }
\ No newline at end of file

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageManager.java?rev=1767222&r1=1767221&r2=1767222&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageManager.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackageManager.java Mon Oct 31 07:25:55 2016
@@ -23,6 +23,9 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.List;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.jcr.ItemExistsException;
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
@@ -43,7 +46,8 @@ public interface JcrPackageManager exten
      * @throws RepositoryException if an error occurs
      * @since 2.3.22
      */
-    JcrPackage open(PackageId id) throws RepositoryException;
+    @CheckForNull
+    JcrPackage open(@Nonnull PackageId id) throws RepositoryException;
 
     /**
      * Opens a package that is based on the given node.
@@ -53,7 +57,8 @@ public interface JcrPackageManager exten
      *         valid.
      * @throws RepositoryException if an error occurs
      */
-    JcrPackage open(Node node) throws RepositoryException;
+    @CheckForNull
+    JcrPackage open(@Nonnull Node node) throws RepositoryException;
 
     /**
      * Opens a package that is based on the given node. If {@code allowInvalid}
@@ -67,7 +72,8 @@ public interface JcrPackageManager exten
      *         valid unless {@code allowInvalid} is {@code true}.
      * @throws RepositoryException if an error occurs
      */
-    JcrPackage open(Node node, boolean allowInvalid) throws RepositoryException;
+    @CheckForNull
+    JcrPackage open(@Nonnull Node node, boolean allowInvalid) throws RepositoryException;
 
     /**
      * Finds the id of the package that matches the given dependency best.
@@ -81,7 +87,8 @@ public interface JcrPackageManager exten
      *
      * @since 2.4.6
      */
-    PackageId resolve(Dependency dependency, boolean onlyInstalled) throws RepositoryException;
+    @CheckForNull
+    PackageId resolve(@Nonnull Dependency dependency, boolean onlyInstalled) throws RepositoryException;
 
     /**
      * Returns the package ids of installed packages that depend on the given package.
@@ -92,7 +99,8 @@ public interface JcrPackageManager exten
      *
      * @since 3.1.32
      */
-    PackageId[] usage(PackageId id) throws RepositoryException;
+    @Nonnull
+    PackageId[] usage(@Nonnull PackageId id) throws RepositoryException;
 
     /**
      * Uploads a package. The location is chosen from the installation path of
@@ -106,11 +114,12 @@ public interface JcrPackageManager exten
      *        deleted when the package is closed
      * @param replace if {@code true} existing packages are replaced.
      * @param nameHint hint for the name if package does not provide one
-     * @return the new jcr package or {@code null} if not installed
+     * @return the new jcr package
      * @throws RepositoryException if an error occurrs
      * @throws IOException if an I/O error occurrs
      */
-    JcrPackage upload(File file, boolean isTmpFile, boolean replace, String nameHint)
+    @Nonnull
+    JcrPackage upload(@Nonnull File file, boolean isTmpFile, boolean replace, @Nullable String nameHint)
             throws RepositoryException, IOException;
 
     /**
@@ -131,7 +140,8 @@ public interface JcrPackageManager exten
      * @throws RepositoryException if an error occurrs
      * @throws IOException if an I/O error occurrs
      */
-    JcrPackage upload(File file, boolean isTmpFile, boolean replace, String nameHint, boolean strict)
+    @Nonnull
+    JcrPackage upload(@Nonnull File file, boolean isTmpFile, boolean replace, @Nullable String nameHint, boolean strict)
             throws RepositoryException, IOException;
 
     /**
@@ -148,7 +158,8 @@ public interface JcrPackageManager exten
      * @throws RepositoryException if an error occurrs
      * @throws IOException if an I/O error occurrs
      */
-    JcrPackage upload(InputStream in, boolean replace) throws RepositoryException, IOException;
+    @Nonnull
+    JcrPackage upload(@Nonnull InputStream in, boolean replace) throws RepositoryException, IOException;
 
     /**
      * Uploads a package. The location is chosen from the installation path of
@@ -165,18 +176,20 @@ public interface JcrPackageManager exten
      * @throws RepositoryException if an error occurrs
      * @throws IOException if an I/O error occurrs
      */
-    JcrPackage upload(InputStream in, boolean replace, boolean strict) throws RepositoryException, IOException;
+    @Nonnull
+    JcrPackage upload(@Nonnull InputStream in, boolean replace, boolean strict) throws RepositoryException, IOException;
 
     /**
      * Creates a new package below the given folder.
      *
-     * @param folder parent folder
+     * @param folder parent folder or {@code null} for the package root
      * @param name name of the new package
      * @return a new jcr package
      * @throws RepositoryException if a repository error occurrs
      * @throws IOException if an I/O exception occurs
      */
-    JcrPackage create(Node folder, String name)
+    @Nonnull
+    JcrPackage create(@Nullable Node folder, @Nonnull String name)
             throws RepositoryException, IOException;
 
     /**
@@ -189,7 +202,8 @@ public interface JcrPackageManager exten
      * @throws IOException if an I/O exception occurs
      * @since 2.2.5
      */
-    JcrPackage create(String group, String name)
+    @Nonnull
+    JcrPackage create(@Nonnull String group, @Nonnull String name)
             throws RepositoryException, IOException;
 
     /**
@@ -203,16 +217,17 @@ public interface JcrPackageManager exten
      * @throws IOException if an I/O exception occurs
      * @since 2.3
      */
-    JcrPackage create(String group, String name, String version)
+    @Nonnull
+    JcrPackage create(@Nonnull String group, @Nonnull String name, @Nullable String version)
             throws RepositoryException, IOException;
 
     /**
-     * Removes a package and its snaphost if present.
+     * Removes a package and its snapshots if present.
      * @param pack the package to remove
      * @throws RepositoryException if a repository error occurrs
      * @since 2.2.7
      */
-    void remove(JcrPackage pack) throws RepositoryException;
+    void remove(@Nonnull JcrPackage pack) throws RepositoryException;
 
     /**
      * Renames the given package with a new group id and name. Please note that
@@ -228,7 +243,8 @@ public interface JcrPackageManager exten
      *
      * @since 2.0
      */
-    JcrPackage rename(JcrPackage pack, String groupId, String name)
+    @Nonnull
+    JcrPackage rename(@Nonnull JcrPackage pack, @Nullable String groupId, @Nullable String name)
             throws PackageException, RepositoryException;
 
     /**
@@ -246,7 +262,8 @@ public interface JcrPackageManager exten
      *
      * @since 2.3
      */
-    JcrPackage rename(JcrPackage pack, String groupId, String name, String version)
+    @Nonnull
+    JcrPackage rename(@Nonnull JcrPackage pack, @Nullable String groupId, @Nullable String name, @Nullable String version)
             throws PackageException, RepositoryException;
 
     /**
@@ -257,7 +274,7 @@ public interface JcrPackageManager exten
      * @throws RepositoryException if a repository error occurs
      * @throws IOException if an I/O error occurs
      */
-    void assemble(JcrPackage pack, ProgressTrackerListener listener)
+    void assemble(@Nonnull JcrPackage pack, @Nullable ProgressTrackerListener listener)
             throws PackageException, RepositoryException, IOException;
 
     /**
@@ -269,8 +286,7 @@ public interface JcrPackageManager exten
      * @throws RepositoryException if a repository error occurs
      * @throws IOException if an I/O error occurs
      */
-    void assemble(Node packNode, JcrPackageDefinition definition,
-                         ProgressTrackerListener listener)
+    void assemble(@Nonnull Node packNode, @Nonnull JcrPackageDefinition definition, @Nullable ProgressTrackerListener listener)
             throws PackageException, RepositoryException, IOException;
 
     /**
@@ -282,8 +298,7 @@ public interface JcrPackageManager exten
      * @throws IOException if an I/O error occurs
      * @throws PackageException if a package error occurs
      */
-    void assemble(JcrPackageDefinition definition,
-                         ProgressTrackerListener listener, OutputStream out)
+    void assemble(@Nonnull JcrPackageDefinition definition, @Nullable ProgressTrackerListener listener, @Nonnull OutputStream out)
             throws IOException, RepositoryException, PackageException;
 
     /**
@@ -294,7 +309,7 @@ public interface JcrPackageManager exten
      * @throws RepositoryException if a repository error occurs
      * @throws IOException if an I/O error occurs
      */
-    void rewrap(JcrPackage pack, ProgressTrackerListener listener)
+    void rewrap(@Nonnull JcrPackage pack, @Nullable ProgressTrackerListener listener)
             throws PackageException, RepositoryException, IOException;
 
     /**
@@ -302,6 +317,7 @@ public interface JcrPackageManager exten
      * @return the package root node
      * @throws RepositoryException if an error occurs
      */
+    @Nonnull
     Node getPackageRoot() throws RepositoryException;
 
     /**
@@ -310,6 +326,7 @@ public interface JcrPackageManager exten
      * @return the package root node or {@code null} if not present and noCreate is {@code true}.
      * @throws RepositoryException if an error occurs
      */
+    @CheckForNull
     Node getPackageRoot(boolean noCreate) throws RepositoryException;
 
     /**
@@ -318,6 +335,7 @@ public interface JcrPackageManager exten
      * @return a list of packages
      * @throws RepositoryException if an error occurs
      */
+    @Nonnull
     List<JcrPackage> listPackages() throws RepositoryException;
 
     /**
@@ -328,8 +346,8 @@ public interface JcrPackageManager exten
      * @return a list of packages
      * @throws RepositoryException if an error occurs
      */
-    List<JcrPackage> listPackages(WorkspaceFilter filter) throws RepositoryException;
-
+    @Nonnull
+    List<JcrPackage> listPackages(@Nullable WorkspaceFilter filter) throws RepositoryException;
 
     /**
      * Returns the list of all packages installed below the package root that
@@ -341,5 +359,6 @@ public interface JcrPackageManager exten
      * @return the list of packages
      * @throws RepositoryException if an error occurs
      */
-    List<JcrPackage> listPackages(String group, boolean built) throws RepositoryException;
+    @Nonnull
+    List<JcrPackage> listPackages(@Nullable String group, boolean built) throws RepositoryException;
 }
\ No newline at end of file

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageDefinitionImpl.java?rev=1767222&r1=1767221&r2=1767222&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageDefinitionImpl.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageDefinitionImpl.java Mon Oct 31 07:25:55 2016
@@ -24,6 +24,8 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.jcr.Node;
 import javax.jcr.Property;
 import javax.jcr.RepositoryException;
@@ -68,21 +70,24 @@ public class JcrPackageDefinitionImpl im
     /**
      * underlying node
      */
+    @Nonnull
     private Node defNode;
 
+    @Nullable
     private String userId;
 
     /**
      * Creates a new definition base on the underlying node.
      * @param definitionNode the definition node
      */
-    public JcrPackageDefinitionImpl(Node definitionNode) {
+    public JcrPackageDefinitionImpl(@Nonnull Node definitionNode) {
         this.defNode = definitionNode;
     }
 
     /**
      * {@inheritDoc}
      */
+    @Nonnull
     public Node getNode() {
         return defNode;
     }
@@ -838,9 +843,7 @@ public class JcrPackageDefinitionImpl im
     private String getUserId() {
         if (userId == null) {
             try {
-                if (defNode != null) {
-                    userId = defNode.getSession().getUserID();
-                }
+                userId = defNode.getSession().getUserID();
             } catch (RepositoryException e) {
                 // ignore
             }

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java?rev=1767222&r1=1767221&r2=1767222&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java Mon Oct 31 07:25:55 2016
@@ -28,6 +28,9 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
 
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.jcr.Binary;
 import javax.jcr.Node;
 import javax.jcr.Property;
@@ -45,13 +48,13 @@ import org.apache.jackrabbit.vault.fs.io
 import org.apache.jackrabbit.vault.fs.io.ZipArchive;
 import org.apache.jackrabbit.vault.packaging.CyclicDependencyException;
 import org.apache.jackrabbit.vault.packaging.Dependency;
+import org.apache.jackrabbit.vault.packaging.DependencyException;
 import org.apache.jackrabbit.vault.packaging.DependencyHandling;
 import org.apache.jackrabbit.vault.packaging.DependencyUtil;
 import org.apache.jackrabbit.vault.packaging.ExportOptions;
 import org.apache.jackrabbit.vault.packaging.JcrPackage;
 import org.apache.jackrabbit.vault.packaging.JcrPackageDefinition;
 import org.apache.jackrabbit.vault.packaging.JcrPackageManager;
-import org.apache.jackrabbit.vault.packaging.DependencyException;
 import org.apache.jackrabbit.vault.packaging.PackageException;
 import org.apache.jackrabbit.vault.packaging.PackageId;
 import org.apache.jackrabbit.vault.packaging.SubPackageHandling;
@@ -80,35 +83,30 @@ public class JcrPackageImpl implements J
     /**
      * underlying node
      */
+    @Nullable
     private Node node;
 
     /**
      * underlying package
      */
+    @Nullable
     private ZipVaultPackage pack;
 
     /**
      * underlying definition
      */
+    @Nullable
     private JcrPackageDefinitionImpl def;
 
-    public JcrPackageImpl(JcrPackageManagerImpl mgr, Node node) throws RepositoryException {
+    public JcrPackageImpl(@Nonnull JcrPackageManagerImpl mgr, @Nullable Node node) throws RepositoryException {
         this.mgr = mgr;
         this.node = node;
     }
 
-    protected JcrPackageImpl(JcrPackageManagerImpl mgr, Node node, ZipVaultPackage pack) throws RepositoryException {
-        this.mgr = mgr;
-        this.node = node;
-        this.pack = pack;
-    }
-
-    protected JcrPackageImpl(JcrPackageManagerImpl mgr, Node node, ZipVaultPackage pack, JcrPackageDefinitionImpl def)
-            throws RepositoryException {
+    protected JcrPackageImpl(@Nonnull JcrPackageManagerImpl mgr, @Nullable Node node, @Nullable ZipVaultPackage pack) throws RepositoryException {
         this.mgr = mgr;
         this.node = node;
         this.pack = pack;
-        this.def = def;
     }
 
     /**
@@ -184,10 +182,8 @@ public class JcrPackageImpl implements J
             if (getSize() == 0) {
                 return false;
             }
-            if (getDefinition() == null) {
-                return true;
-            }
-            return !def.isModified();
+            final JcrPackageDefinition def = getDefinition();
+            return def == null || !def.isModified();
         } catch (RepositoryException e) {
             log.warn("Error during isSealed()", e);
             return false;
@@ -204,6 +200,9 @@ public class JcrPackageImpl implements J
         if (jDef == null) {
             return true;
         }
+        if (node == null) {
+            return false;
+        }
         PackageId id = jDef.getId();
         PackageId cId = new PackageId(node.getPath());
         // compare installation paths since non-conform version numbers might
@@ -232,8 +231,14 @@ public class JcrPackageImpl implements J
         if (isValid()) {
             return;
         }
+        if (node == null) {
+            return;
+        }
         VaultPackage pack = getPackage();
         Node content = getContent();
+        if (content == null) {
+            return;
+        }
         boolean ok = false;
         try {
             content.addMixin(NT_VLT_PACKAGE);
@@ -272,6 +277,7 @@ public class JcrPackageImpl implements J
      * @throws RepositoryException If a repository error occurrs.
      * @throws IOException if an i/o error occurrs.
      */
+    @Nonnull
     protected VaultPackage getPackage(boolean forceFileArchive) throws RepositoryException, IOException {
         if (forceFileArchive && pack != null && !(pack.getArchive() instanceof ZipArchive)) {
             pack.close();
@@ -496,7 +502,7 @@ public class JcrPackageImpl implements J
         for (Dependency dep: def.getDependencies()) {
             if (mgr.resolve(dep, true) == null) {
                 unresolved.add(dep);
-            };
+            }
         }
         return unresolved.toArray(new Dependency[unresolved.size()]);
     }
@@ -515,7 +521,7 @@ public class JcrPackageImpl implements J
             PackageId id = mgr.resolve(dep, true);
             if (id != null) {
                 resolved.add(id);
-            };
+            }
         }
         return resolved.toArray(new PackageId[resolved.size()]);
     }
@@ -526,6 +532,9 @@ public class JcrPackageImpl implements J
      */
     private void installDependencies(Set<PackageId> processed, ImportOptions opts, boolean createSnapshot, boolean replaceSnapshot)
             throws PackageException, RepositoryException, IOException {
+        if (def == null) {
+            return;
+        }
         List<Dependency> unresolved = new LinkedList<Dependency>();
         List<JcrPackageImpl> uninstalled = new LinkedList<JcrPackageImpl>();
         for (Dependency dep: def.getDependencies()) {
@@ -577,6 +586,9 @@ public class JcrPackageImpl implements J
      */
     private void uninstallUsages(Set<PackageId> processed, ImportOptions opts)
             throws PackageException, RepositoryException, IOException {
+        if (def == null) {
+            return;
+        }
         PackageId[] usage = mgr.usage(getDefinition().getId());
         if (usage.length > 0 && opts.getDependencyHandling() == DependencyHandling.STRICT) {
             String msg = String.format("Refusing to uninstall package %s. it is still used by: %s", def.getId(), Arrays.toString(usage));
@@ -615,8 +627,12 @@ public class JcrPackageImpl implements J
      * @throws PackageException if an error occurrs.
      * @throws IOException if an error occurrs.
      */
-    private JcrPackage snapshot(ExportOptions opts, boolean replace, AccessControlHandling acHandling)
+    @CheckForNull
+    private JcrPackage snapshot(@Nonnull ExportOptions opts, boolean replace, @Nullable AccessControlHandling acHandling)
             throws RepositoryException, PackageException, IOException {
+        if (node == null) {
+            return null;
+        }
         PackageId id = getSnapshotId();
         Node packNode = getPackageNode(id);
         if (packNode != null) {
@@ -658,7 +674,11 @@ public class JcrPackageImpl implements J
      * @return the package node
      * @throws RepositoryException if an error occurs
      */
+    @CheckForNull
     private Node getPackageNode(PackageId id) throws RepositoryException {
+        if (node == null) {
+            return null;
+        }
         if (node.getSession().nodeExists(id.getInstallationPath())) {
             return node.getSession().getNode(id.getInstallationPath());
         } else if (node.getSession().nodeExists(id.getInstallationPath() + ".zip")) {
@@ -803,23 +823,27 @@ public class JcrPackageImpl implements J
      * @return the jcr:content node
      * @throws RepositoryException if an error occurrs
      */
+    @CheckForNull
     private Node getContent() throws RepositoryException {
-        return node.getNode(JcrConstants.JCR_CONTENT);
+        return node == null ? null : node.getNode(JcrConstants.JCR_CONTENT);
     }
 
     /**
      * {@inheritDoc}
      */
+    @CheckForNull
     public Property getData() throws RepositoryException {
-        return getContent().getProperty(JcrConstants.JCR_DATA);
+        Node content = getContent();
+        return content == null ? null : content.getProperty(JcrConstants.JCR_DATA);
     }
 
     /**
      * {@inheritDoc}
      */
+    @CheckForNull
     public Node getDefNode() throws RepositoryException {
         Node content = getContent();
-        return content.hasNode(NN_VLT_DEFINITION)
+        return content != null && content.hasNode(NN_VLT_DEFINITION)
                 ? content.getNode(NN_VLT_DEFINITION)
                 : null;
     }

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java?rev=1767222&r1=1767221&r2=1767222&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java Mon Oct 31 07:25:55 2016
@@ -25,13 +25,13 @@ import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.util.Calendar;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
-import java.util.Set;
 import java.util.TreeSet;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.jcr.Binary;
 import javax.jcr.ItemExistsException;
 import javax.jcr.Node;
@@ -272,11 +272,9 @@ public class JcrPackageManagerImpl exten
         JcrPackage jcrPack = null;
         try {
             jcrPack = createNew(parent, pid, bin, archive);
-            if (jcrPack != null) {
-                JcrPackageDefinitionImpl def = (JcrPackageDefinitionImpl) jcrPack.getDefinition();
-                if (state != null) {
-                    def.setState(state);
-                }
+            JcrPackageDefinitionImpl def = (JcrPackageDefinitionImpl) jcrPack.getDefinition();
+            if (state != null) {
+                def.setState(state);
             }
             return jcrPack;
         } finally {
@@ -354,11 +352,9 @@ public class JcrPackageManagerImpl exten
         JcrPackage jcrPack = null;
         try {
             jcrPack = createNew(parent, pid, pack, false);
-            if (jcrPack != null) {
-                JcrPackageDefinitionImpl def = (JcrPackageDefinitionImpl) jcrPack.getDefinition();
-                if (state != null) {
-                    def.setState(state);
-                }
+            JcrPackageDefinitionImpl def = (JcrPackageDefinitionImpl) jcrPack.getDefinition();
+            if (state != null) {
+                def.setState(state);
             }
             return jcrPack;
         } finally {
@@ -423,7 +419,8 @@ public class JcrPackageManagerImpl exten
      *
      * @since 2.3.0
      */
-    public JcrPackage createNew(Node parent, PackageId pid, VaultPackage pack, boolean autoSave)
+    @Nonnull
+    public JcrPackage createNew(@Nonnull Node parent, @Nonnull PackageId pid, @Nullable VaultPackage pack, boolean autoSave)
             throws RepositoryException, IOException {
         Node node = parent.addNode(Text.getName(pid.getInstallationPath() + ".zip"), JcrConstants.NT_FILE);
         Node content = node.addNode(JcrConstants.JCR_CONTENT, JcrConstants.NT_RESOURCE);
@@ -469,7 +466,8 @@ public class JcrPackageManagerImpl exten
      *
      * @since 3.1
      */
-    public JcrPackage createNew(Node parent, PackageId pid, Binary bin, MemoryArchive archive)
+    @Nonnull
+    public JcrPackage createNew(@Nonnull Node parent, @Nonnull PackageId pid, @Nonnull Binary bin, @Nonnull MemoryArchive archive)
             throws RepositoryException, IOException {
         Node node = parent.addNode(Text.getName(pid.getInstallationPath() + ".zip"), JcrConstants.NT_FILE);
         Node content = node.addNode(JcrConstants.JCR_CONTENT, JcrConstants.NT_RESOURCE);