commit dd5f51691b3834e8c1bc5f86a13a15fb88b63364
Author: gil <puntogil(a)libero.it>
Date: Fri May 9 09:33:43 2014 +0200
fix rhbz#1095339
mvel-2.1.6.Final-java8.patch | 42 ++++++++++++++++++++++++++++++++++++++++++
mvel.spec | 22 ++++++++++++++++------
2 files changed, 58 insertions(+), 6 deletions(-)
---
diff --git a/mvel-2.1.6.Final-java8.patch b/mvel-2.1.6.Final-java8.patch
new file mode 100644
index 0000000..e68fd95
--- /dev/null
+++ b/mvel-2.1.6.Final-java8.patch
@@ -0,0 +1,42 @@
+--- src/main/java/org/mvel2/util/JITClassLoader.java 2013-06-18 17:03:49.000000000 +0200
++++ src/main/java/org/mvel2/util/JITClassLoader.java-gil 2014-05-09 09:12:50.590882174
+0200
+@@ -18,38 +18,14 @@
+
+ package org.mvel2.util;
+
+-import sun.misc.Unsafe;
+-
+ import java.lang.reflect.Field;
+
+ public class JITClassLoader extends ClassLoader implements MVELClassLoader {
+- private static boolean sunJVM;
+- private static Object sunUnsafe;
+-
+- static {
+- try {
+- Field f = Unsafe.class.getDeclaredField("theUnsafe");
+- f.setAccessible(true);
+- sunUnsafe = f.get(null);
+- sunJVM = true;
+- }
+- catch (Throwable t) {
+- // t.printStackTrace();
+- sunJVM = false;
+- }
+- }
+-
+-
+ public JITClassLoader(ClassLoader classLoader) {
+ super(classLoader);
+ }
+
+ public Class<?> defineClassX(String className, byte[] b, int off, int len) {
+- if (sunJVM) {
+- return ((Unsafe) sunUnsafe).defineClass(className, b, off, len);
+- }
+- else {
+- return super.defineClass(className, b, off, len);
+- }
++ return super.defineClass(className, b, off, len);
+ }
+ }
diff --git a/mvel.spec b/mvel.spec
index 56fd517..207f120 100644
--- a/mvel.spec
+++ b/mvel.spec
@@ -1,17 +1,19 @@
%global namedreltag .Final
%global namedversion %{version}%{?namedreltag}
+
Name: mvel
Version: 2.1.6
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: MVFLEX Expression Language
License: ASL 2.0
Url:
http://mvel.codehaus.org/
Source0:
https://github.com/mvel/mvel/archive/%{name}2-%{namedversion}.tar.gz
-
Source1: %{name}-script
Patch0: %{name}-2.1.6.Final-use-system-asm.patch
# remove tests which require internal objectweb-asm libraries
Patch1: %{name}-2.1.6.Final-tests.patch
+# See
https://bugzilla.redhat.com/show_bug.cgi?id=1095339
+Patch2: %{name}-2.1.6.Final-java8.patch
BuildRequires: java-devel
@@ -46,6 +48,7 @@ find . -name "*.class" -delete
rm ASM-LICENSE.txt
%patch0 -p1
%patch1 -p1
+%patch2 -p0
# Uwanted
%pom_remove_plugin :maven-source-plugin
@@ -57,19 +60,23 @@ sed -i 's/\r//' LICENSE.txt
# fix non ASCII chars
native2ascii -encoding UTF8 src/main/java/org/mvel2/sh/ShellSession.java
src/main/java/org/mvel2/sh/ShellSession.java
+cp -p %{SOURCE1} .
+%if %{fedora} > 20
+sed -i "s|objectweb-asm/|objectweb-asm3/|" %{name}-script
+%endif
+
%build
%mvn_file :%{name}2 %{name}
-# some test at random fails
-%mvn_build -- -Dmaven.test.failure.ignore=true
+%mvn_build
%install
%mvn_install
mkdir -p %{buildroot}%{_bindir}
-install -pm 755 %{SOURCE1} %{buildroot}%{_bindir}/%{name}
+install -pm 755 %{name}-script %{buildroot}%{_bindir}/%{name}
-install -m 644 target/%{name}2-%{namedversion}-tests.jar
%{buildroot}%{_javadir}/%{name}-tests.jar
+install -m 644 target/%%{name}2-%%{namedversion}-tests.jar
%%{buildroot}%%{_javadir}/%%{name}-tests.jar
%files -f .mfiles
%{_bindir}/%{name}
@@ -80,6 +87,9 @@ install -m 644 target/%{name}2-%{namedversion}-tests.jar
%{buildroot}%{_javadir}
%doc LICENSE.txt
%changelog
+* Fri May 09 2014 gil cattaneo <puntogil(a)libero.it> 2.1.6-2
+- fix rhbz#1095339
+
* Mon Sep 16 2013 gil cattaneo <puntogil(a)libero.it> 2.1.6-1
- update to 2.1.6.Final