[xmvn: 3/3] Fix upgrade path scriptlet
Stanislav Ochotnicky
sochotni at fedoraproject.org
Fri May 24 15:29:13 UTC 2013
commit 4619d3276362a715e091bcdd8787200a395edeee
Author: Stanislav Ochotnicky <sochotnicky at redhat.com>
Date: Fri May 24 17:24:19 2013 +0200
Fix upgrade path scriptlet
- Add patch to fix NPE when debugging is disabled
...ul-when-unboxing-Boolean-that-can-be-null.patch | 120 ++++++++++++++++++++
xmvn.spec | 13 ++-
2 files changed, 131 insertions(+), 2 deletions(-)
---
diff --git a/0001-Be-careful-when-unboxing-Boolean-that-can-be-null.patch b/0001-Be-careful-when-unboxing-Boolean-that-can-be-null.patch
new file mode 100644
index 0000000..1e7f360
--- /dev/null
+++ b/0001-Be-careful-when-unboxing-Boolean-that-can-be-null.patch
@@ -0,0 +1,120 @@
+From ccc197d9503267243cc4427d60dd360e1953d4c1 Mon Sep 17 00:00:00 2001
+From: Mikolaj Izdebski <mizdebsk at redhat.com>
+Date: Fri, 24 May 2013 17:15:36 +0200
+Subject: [PATCH] Be careful when unboxing Boolean that can be null
+
+Add explicit check for null value when unboxing Booleans that can be
+null. Also extract duplicated code to a utility class.
+---
+ .../maven/resolver/DefaultArtifactBlacklist.java | 4 +--
+ .../maven/resolver/DefaultResolver.java | 4 +--
+ .../fedoraproject/maven/utils/LoggingUtils.java | 30 ++++++++++++++++++++++
+ .../maven/rpminstall/plugin/InstallMojo.java | 4 +--
+ 4 files changed, 36 insertions(+), 6 deletions(-)
+ create mode 100644 xmvn-core/src/main/java/org/fedoraproject/maven/utils/LoggingUtils.java
+
+diff --git a/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/DefaultArtifactBlacklist.java b/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/DefaultArtifactBlacklist.java
+index 451f71e..a6502be 100644
+--- a/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/DefaultArtifactBlacklist.java
++++ b/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/DefaultArtifactBlacklist.java
+@@ -26,6 +26,7 @@ import org.codehaus.plexus.logging.Logger;
+ import org.fedoraproject.maven.config.Configurator;
+ import org.fedoraproject.maven.config.ResolverSettings;
+ import org.fedoraproject.maven.model.Artifact;
++import org.fedoraproject.maven.utils.LoggingUtils;
+
+ /**
+ * @author Mikolaj Izdebski
+@@ -113,8 +114,7 @@ public class DefaultArtifactBlacklist
+ {
+ Set<Artifact> aliasBlacklist = new TreeSet<>();
+ ResolverSettings settings = configurator.getConfiguration().getResolverSettings();
+- int loggerThreshold = settings.isDebug() ? Logger.LEVEL_DEBUG : Logger.LEVEL_WARN;
+- logger.setThreshold( Math.min( logger.getThreshold(), loggerThreshold ) );
++ LoggingUtils.setLoggerThreshold( logger, settings.isDebug() );
+
+ for ( String prefix : settings.getPrefixes() )
+ {
+diff --git a/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/DefaultResolver.java b/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/DefaultResolver.java
+index 7fb51c5..c6a82ad 100644
+--- a/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/DefaultResolver.java
++++ b/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/DefaultResolver.java
+@@ -31,6 +31,7 @@ import org.fedoraproject.maven.repository.Layout;
+ import org.fedoraproject.maven.repository.Repository;
+ import org.fedoraproject.maven.repository.SingletonRepository;
+ import org.fedoraproject.maven.utils.AtomicFileCounter;
++import org.fedoraproject.maven.utils.LoggingUtils;
+
+ /**
+ * @author Mikolaj Izdebski
+@@ -90,8 +91,7 @@ public class DefaultResolver
+ initializeBisect();
+
+ ResolverSettings settings = configurator.getConfiguration().getResolverSettings();
+- int loggerThreshold = settings.isDebug() ? Logger.LEVEL_DEBUG : Logger.LEVEL_WARN;
+- logger.setThreshold( Math.min( logger.getThreshold(), loggerThreshold ) );
++ LoggingUtils.setLoggerThreshold( logger, settings.isDebug() );
+
+ resolvers.add( new LocalResolver( settings ) );
+
+diff --git a/xmvn-core/src/main/java/org/fedoraproject/maven/utils/LoggingUtils.java b/xmvn-core/src/main/java/org/fedoraproject/maven/utils/LoggingUtils.java
+new file mode 100644
+index 0000000..7dcd265
+--- /dev/null
++++ b/xmvn-core/src/main/java/org/fedoraproject/maven/utils/LoggingUtils.java
+@@ -0,0 +1,30 @@
++/*-
++ * Copyright (c) 2012-2013 Red Hat, Inc.
++ *
++ * 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 org.fedoraproject.maven.utils;
++
++import org.codehaus.plexus.logging.Logger;
++
++/**
++ * @author Mikolaj Izdebski
++ */
++public class LoggingUtils
++{
++ public static void setLoggerThreshold( Logger logger, Boolean debugSetting )
++ {
++ int threshold = debugSetting != null && debugSetting ? Logger.LEVEL_DEBUG : Logger.LEVEL_WARN;
++ logger.setThreshold( Math.min( logger.getThreshold(), threshold ) );
++ }
++}
+diff --git a/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/InstallMojo.java b/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/InstallMojo.java
+index a8bf55d..1f53a49 100644
+--- a/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/InstallMojo.java
++++ b/xmvn-mojo/src/main/java/org/fedoraproject/maven/rpminstall/plugin/InstallMojo.java
+@@ -44,6 +44,7 @@ import org.fedoraproject.maven.installer.DefaultPackage;
+ import org.fedoraproject.maven.installer.Installer;
+ import org.fedoraproject.maven.installer.ProjectInstallationException;
+ import org.fedoraproject.maven.installer.ProjectInstaller;
++import org.fedoraproject.maven.utils.LoggingUtils;
+
+ /**
+ * @author Mikolaj Izdebski
+@@ -124,8 +125,7 @@ public class InstallMojo
+ {
+ Configuration configuration = configurator.getConfiguration();
+ settings = configuration.getInstallerSettings();
+- int loggerThreshold = settings.isDebug() ? Logger.LEVEL_DEBUG : Logger.LEVEL_WARN;
+- logger.setThreshold( Math.min( logger.getThreshold(), loggerThreshold ) );
++ LoggingUtils.setLoggerThreshold( logger, settings.isDebug() );
+
+ Map<String, DefaultPackage> packages = new TreeMap<>();
+
+--
+1.8.1.4
+
diff --git a/xmvn.spec b/xmvn.spec
index cb3cd79..e5177b8 100644
--- a/xmvn.spec
+++ b/xmvn.spec
@@ -1,12 +1,15 @@
Name: xmvn
Version: 0.5.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Local Extensions for Apache Maven
License: ASL 2.0
URL: http://mizdebsk.fedorapeople.org/xmvn
BuildArch: noarch
Source0: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.xz
+# from upstream commit ccc197d to fix NPE
+Patch0: 0001-Be-careful-when-unboxing-Boolean-that-can-be-null.patch
+
BuildRequires: maven-local
BuildRequires: beust-jcommander
BuildRequires: cglib
@@ -41,6 +44,8 @@ This package provides %{summary}.
%prep
%setup -q
+%patch0 -p1
+
# Add cglib test dependency as a workaround for rhbz#911365
%pom_add_dep cglib:cglib::test %{name}-core
@@ -112,7 +117,7 @@ cp -P %{_datadir}/maven/conf/settings.xml %{buildroot}%{_datadir}/%{name}/conf/
%pre
# we are changing symlink to dir, workaround RPM issues
for dir in conf boot;do
-[ $1 -eq 1 ] && [ -L %{_datadir}/%{name}/$dir ] && \
+[ $1 -ge 1 ] && [ -L %{_datadir}/%{name}/$dir ] && \
rm -f %{_datadir}/%{name}/$dir || :
done
@@ -126,6 +131,10 @@ done
%doc LICENSE NOTICE
%changelog
+* Fri May 24 2013 Stanislav Ochotnicky <sochotnicky at redhat.com> - 0.5.0-2
+- Fix upgrade path scriptlet
+- Add patch to fix NPE when debugging is disabled
+
* Fri May 24 2013 Stanislav Ochotnicky <sochotnicky at redhat.com> - 0.5.0-1
- Update to upstream version 0.5.0
More information about the scm-commits
mailing list