Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 558442 - =www-servers/resin-4.0.44: does not compile with a JDK < 1.8
Summary: =www-servers/resin-4.0.44: does not compile with a JDK < 1.8
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Server (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Java team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-22 23:20 UTC by Jose Quinteiro
Modified: 2015-11-13 21:41 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jose Quinteiro 2015-08-22 23:20:05 UTC
www-servers/resin-4.0.44 fails to compile with javac < 1.8

Reproducible: Always

Steps to Reproduce:
1.try to emerge www-servers/resin-4.0.44

Actual Results:  
emerge fails with a compilation error

Expected Results:  
resin should install normally

GENTOO_VM=icedtea-7  CLASSPATH="" JAVA_HOME="/usr/lib64/icedtea7"
JAVACFLAGS="-source 1.6 -target 1.6" COMPILER="javac"

Portage 2.2.20.1 (python 2.7.9-final-0, default/linux/amd64/13.0, gcc-4.8.4, glibc-2.20-r2, 3.18.12-gentoo x86_64)
=================================================================
System uname: Linux-3.18.12-gentoo-x86_64-Intel-R-_Core-TM-2_Quad_CPU_@_2.66GHz-with-gentoo-2.2
KiB Mem:     8116704 total,   1353952 free
KiB Swap:     208832 total,        32 free
Timestamp of repository gentoo: Sat, 22 Aug 2015 08:30:01 +0000
sh bash 4.3_p39
ld GNU ld (Gentoo 2.24 p1.4) 2.24
ccache version 3.1.9 [enabled]
app-shells/bash:          4.3_p39::gentoo
dev-java/java-config:     2.2.0::gentoo
dev-lang/perl:            5.20.2::gentoo
dev-lang/python:          2.7.9-r1::gentoo, 3.3.5-r1::gentoo, 3.4.1::gentoo
dev-util/ccache:          3.1.9-r4::gentoo
dev-util/cmake:           3.2.2::gentoo
dev-util/pkgconfig:       0.28-r2::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.17::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.69::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo
sys-devel/binutils:       2.24-r3::gentoo
sys-devel/gcc:            4.8.4::gentoo
sys-devel/gcc-config:     1.7.3::gentoo
sys-devel/libtool:        2.4.6::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 3.18::gentoo (virtual/os-headers)
sys-libs/glibc:           2.20-r2::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="X acl amd64 avahi berkdb branding bzip2 caps cgi cli cracklib crypt curl cxx dedicated dovecot-sasl dri dv fastcgi fftw fortran gd gdbm git iconv imap jpeg jpeg2k ldap lua mjpeg mmx mmxext modules mp3 mpeg multilib ncurses nls nptl objc openmp pam pcre perl php png polarssl postgres ppds readline samba sasl seccomp session spell sse sse2 ssl subversion tcpd tls unicode usb vhosts xml xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi geo gzip limit_conn limit_req map memcached proxy referer rewrite scgi split_clients ssi upstream_ip_hash userid uwsgi auth_pam" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="sis vesa vga" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Jose Quinteiro 2015-08-22 23:22:09 UTC
resin-kernel:

module:
    [mkdir] Created dir: /var/tmp/portage/www-servers/resin-4.0.44/work/resin-4.0.44/modules/kernel/classes
     [copy] Copying 9 files to /var/tmp/portage/www-servers/resin-4.0.44/work/resin-4.0.44/modules/kernel/classes
    [javac] Compiling 1394 source files to /var/tmp/portage/www-servers/resin-4.0.44/work/resin-4.0.44/modules/kernel/classes
    [javac] /var/tmp/portage/www-servers/resin-4.0.44/work/resin-4.0.44/modules/kernel/src/com/caucho/config/reflect/VarType.java:36: error: cannot find symbol
    [javac] import java.lang.reflect.AnnotatedType;
    [javac]                         ^
    [javac]   symbol:   class AnnotatedType
    [javac]   location: package java.lang.reflect
    [javac] /var/tmp/portage/www-servers/resin-4.0.44/work/resin-4.0.44/modules/kernel/src/com/caucho/config/reflect/VarType.java:193: error: cannot find symbol
    [javac]   public AnnotatedType[] getAnnotatedBounds() {
    [javac]          ^
    [javac]   symbol:   class AnnotatedType
    [javac]   location: class VarType<D>
    [javac]   where D is a type-variable:
    [javac]     D extends GenericDeclaration declared in class VarType
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 2 errors

https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AnnotatedType.html

Note "
Since:
    1.8 "
Comment 2 Anton Bolshakov 2015-08-25 01:49:31 UTC
resin depends on >=virtual/jre-1.6 which seems incorrect.

virtual/jdk:1.8 is not stable and requires dev-java/oracle-jdk-bin only

to make it worse, the stable version 1.8.0.51 is no longer available for download. It need to be bumped to 1.8.0.60.

So it's kind of dead-end for now.

Really nice job java team!
Comment 3 Patrice Clement gentoo-dev 2015-08-25 06:03:05 UTC
(In reply to Anton Bolshakov from comment #2)
> resin depends on >=virtual/jre-1.6 which seems incorrect.
> 
> virtual/jdk:1.8 is not stable and requires dev-java/oracle-jdk-bin only
> 
> to make it worse, the stable version 1.8.0.51 is no longer available for
> download. It need to be bumped to 1.8.0.60.
> 
> So it's kind of dead-end for now.
> 
> Really nice job java team!

Anton, how about getting off your high horse for a minute and contributing in an intelligent way?
Comment 4 Anton Bolshakov 2015-08-25 06:40:15 UTC
(In reply to Patrice Clement from comment #3)
> Anton, how about getting off your high horse for a minute and contributing
> in an intelligent way?

Sorry, I might sounded upset because I am: my stable setup is broken.

So anyway, I can confirm it compiles with dev-java/oracle-jdk-bin:1.8

Please bump java, stabilize virtual, change the ebuild to pull virtual:1.8.
Unless there is a better solution.

I will also file an upstream bug report. They are the one who broke it in-between minor releases.
Comment 5 Anton Bolshakov 2015-08-25 06:50:52 UTC
http://bugs.caucho.com/view.php?id=5940
Comment 6 James Le Cuirot gentoo-dev 2015-08-25 06:58:03 UTC
(In reply to Anton Bolshakov from comment #4)
> Please bump java, stabilize virtual, change the ebuild to pull virtual:1.8.
> Unless there is a better solution.

Stabilizing the virtual is a big deal and we have a few more battles to fight before we can do that. There's still a fair few packages, some of them important, that don't build under Java 8.
Comment 7 Patrice Clement gentoo-dev 2015-08-25 08:09:15 UTC
Here's a possible workaround that seems to be working fine:
$ diff -u resin-4.0.44.ebuild resin-4.0.44-r1.ebuild
--- resin-4.0.44.ebuild 2015-08-25 09:05:42.256000000 +0000
+++ resin-4.0.44-r1.ebuild      2015-08-25 09:05:58.278000000 +0000
@@ -1,4 +1,4 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$

@@ -16,7 +16,7 @@
 SLOT="0"
 IUSE="admin doc"

-KEYWORDS="amd64 x86"
+KEYWORDS="~amd64 ~x86"

 CDEPEND="dev-java/resin-servlet-api:3.0
        dev-java/jsr101:0
@@ -48,7 +48,6 @@
 glassfish-deployment-api-1.2"

 PATCHES=(
-       "${FILESDIR}"/"${PV}"/VarType.java.patch
        "${FILESDIR}"/"${PV}"/resin-compile.patch
        "${FILESDIR}"/"${PV}"/build.xml.patch
 )
@@ -60,6 +59,13 @@
 }

 src_prepare() {
+       local vm_version=$(java-pkg_get-vm-version)
+
+       # #558442.
+       if [[ "${vm_version}" == "1.8" ]]; then
+               PATCHES+=("${FILESDIR}"/"${PV}"/VarType.java.patch)
+       fi
+
        epatch "${PATCHES[@]}"

$ cat files/4.0.44/VarType.java.patch
--- modules/kernel/src/com/caucho/config/reflect/VarType.java.orig      2015-08-12 21:05:11.892000000 +0000
+++ modules/kernel/src/com/caucho/config/reflect/VarType.java   2015-08-12 21:06:04.475000000 +0000
@@ -33,6 +33,7 @@
 import java.lang.reflect.GenericDeclaration;
 import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
+import java.lang.reflect.AnnotatedType;
 import java.util.Set;

 import com.caucho.inject.Module;
@@ -188,7 +189,23 @@

     return sb.toString();
   }
-
+
+  public AnnotatedType[] getAnnotatedBounds() {
+      return null;
+  }
+
+  public Annotation[] getDeclaredAnnotations() {
+      return null;
+  }
+
+  public Annotation[] getAnnotations() {
+      return null;
+  }
+
+  public <T extends Annotation> T getAnnotation(Class<T> klass) {
+      return null;
+  }
+
+  static class GenericDeclarationImpl implements GenericDeclaration {

I have added this patch because the AnnotatedType class declaration is required when compiling modules/kernel/src/com/caucho/config/reflect/VarType.java with Java 8. Otherwise you get strange errors about undeclared methods. It is a new class introduced in 1.8 which explains why it's upsetting compilers whose version is lower than 1.8.

https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AnnotatedType.html

Now, with this fix in place, I'm not experiencing the compilation failure anymore. See:
monsieurp@epsilon ~ $ eselect java-vm list
Available Java Virtual Machines:
  [1]   icedtea-7  system-vm user-vm
  [2]   icedtea-bin-6
  [3]   oracle-jdk-bin-1.8

>>> Completed installing resin-4.0.44-r1 into /var/tmp/portage/www-servers/resin-4.0.44/image/

Not a very optimal patch but we'll have to make do with it till 1.8 gets stabilised.
Comment 8 Patrice Clement gentoo-dev 2015-08-25 08:48:15 UTC
* commit 9d6fa49 (HEAD, origin/master, origin/HEAD, master)
| Author: Patrice Clement <monsieurp@gentoo.org>
| Date:   Tue Aug 25 09:45:34 2015 +0000
|
|     www-servers/resin: disable a patch that doesn't work with JDK versions lower than 1.8. Fixes bug 558442.
|
|     Package-Manager: portage-2.2.18
|     Signed-off-by: Patrice Clement <monsieurp@gentoo.org>
|
|  create mode 100644 www-servers/resin/resin-4.0.44-r1.ebuild

Give it a try and let me know. Thanks.
Comment 9 Anton Bolshakov 2015-08-25 15:49:19 UTC
Thanks a lot. The problem is fixed indeed.
Comment 10 Jose Quinteiro 2015-08-28 05:16:44 UTC
> $ cat files/4.0.44/VarType.java.patch
> --- modules/kernel/src/com/caucho/config/reflect/VarType.java.orig     
> 2015-08-12 21:05:11.892000000 +0000
> +++ modules/kernel/src/com/caucho/config/reflect/VarType.java   2015-08-12
> 21:06:04.475000000 +0000
> @@ -33,6 +33,7 @@
>  import java.lang.reflect.GenericDeclaration;
>  import java.lang.reflect.Type;
>  import java.lang.reflect.TypeVariable;
> +import java.lang.reflect.AnnotatedType;
>  import java.util.Set;
> 
>  import com.caucho.inject.Module;
> @@ -188,7 +189,23 @@
> 
>      return sb.toString();
>    }
> -
> +
> +  public AnnotatedType[] getAnnotatedBounds() {
> +      return null;
> +  }
> +
> +  public Annotation[] getDeclaredAnnotations() {
> +      return null;
> +  }
> +
> +  public Annotation[] getAnnotations() {
> +      return null;
> +  }
> +
> +  public <T extends Annotation> T getAnnotation(Class<T> klass) {
> +      return null;
> +  }
> +
> +  static class GenericDeclarationImpl implements GenericDeclaration {
> 
I'm sorry, but the best thing I can say about this patch is that it might be harmless.

It also might throw NPEs. Fortunately I don't need Resin right now, so I've uninstalled it.
Comment 11 James Le Cuirot gentoo-dev 2015-08-28 07:04:24 UTC
(In reply to Jose Quinteiro from comment #10)
> I'm sorry, but the best thing I can say about this patch is that it might be
> harmless.
> 
> It also might throw NPEs. Fortunately I don't need Resin right now, so I've
> uninstalled it.

I must admit I don't know the details but things like this usually crop up when new interface methods are added and in most cases, they aren't used by the package in question, so it probably is harmless. It's not great either but what do you suggest? We're simply not ready to stable the 1.8 virtuals yet.
Comment 12 Jose Quinteiro 2015-08-29 15:59:18 UTC
(In reply to James Le Cuirot from comment #11)
> (In reply to Jose Quinteiro from comment #10)
> > I'm sorry, but the best thing I can say about this patch is that it might be
> > harmless.
> > 
> > It also might throw NPEs. Fortunately I don't need Resin right now, so I've
> > uninstalled it.
> 
> I must admit I don't know the details but things like this usually crop up
> when new interface methods are added and in most cases, they aren't used by
> the package in question, so it probably is harmless. It's not great either
> but what do you suggest? We're simply not ready to stable the 1.8 virtuals
> yet.


Here's what I suggest.

1. Remove or hard-mask all the known-vulnerable versions of Resin. (It looks like this was already done).

2. Mark 4.0.44 unstable and make it DEPEND on java >= 1.8.

3. Go on the Resin mailing list, Google group, and bug tracker and write the following:

Hello,

I am the Gentoo maintainer for Resin. Gentoo Linux does not package a stable version of Resin right now.

We cannot stabilize 4.0.44 because it requires Java 1.8 to compile see (this bug). We cannot stabilize Java 1.8 because it breaks important packages see (relevant bug(s)). We will not package versions with serious known security vulnerabilities, see (relevant bug(s)).

4. Direct angry persons such as Mr. Bolshov in comment #4 to the Caucho developers.
Comment 13 James Le Cuirot gentoo-dev 2015-08-29 16:14:27 UTC
(In reply to Jose Quinteiro from comment #12)
> 2. Mark 4.0.44 unstable and make it DEPEND on java >= 1.8.

I won't do that until someone can prove there is a problem. monsieurp only bumped this because of the vulnerability and because it turned out to be much more easier than we both expected. Given how old the previous ebuild was, we were surprised to learn that anyone uses this at all and if it had proved any more difficult, we probably would have removed it from the tree until there was sufficient time and interest.

In any case, we intend to get 1.8 stable ASAP. We just can't do it right now.

> 3. Go on the Resin mailing list, Google group, and bug tracker and write the
> following:

They would most likely say tough, Java 7 has been EOL'd and your issues with stabilising Java 8 are not our problem. And frankly, I wouldn't blame them. Years of neglect to Gentoo Java means that we are behind where we should be on this. Java upstreams are rarely sympathetic to Gentoo anyway as they don't believe we should be building things from source.
Comment 14 Jose Quinteiro 2015-08-29 16:27:42 UTC
(In reply to James Le Cuirot from comment #13)
> (In reply to Jose Quinteiro from comment #12)
> I won't do that until someone can prove there is a problem. monsieurp only
> bumped this because of the vulnerability and because it turned out to be


And I won't install your code that might cause NPEs under obscure situations on my production environments.

This approach really disturbs me. What you've packaged up is not Caucho Resin 4.0.44, it's some hacked-up version of yours.

I would like some indication that what I'm doing is risky, like an unstable flag, for example.


> much more easier than we both expected. Given how old the previous ebuild
> was, we were surprised to learn that anyone uses this at all and if it had
> proved any more difficult, we probably would have removed it from the tree
> until there was sufficient time and interest.
>

I am sad about how Resin has failed to gain traction. I've been using it since the early 2000s, and it was a great little server. They did have some big wins, like Salesforce, but unfortunately, it does seem to be rotting away. Their mailing list and Google group are basically deserted, and it takes weeks to get a response on their bug tracker.

Resin's too big for you to fix. All you can do is see if there are some nerve endings left.


> In any case, we intend to get 1.8 stable ASAP. We just can't do it right now.
>

Great. There's no open-source version of 1.8 so I won't use it anyway. I've played the Oracle license game before, and the only way to win is not to play.


> 
> They would most likely say tough, Java 7 has been EOL'd and your issues with
> stabilising Java 8 are not our problem. And frankly, I wouldn't blame them.
> Years of neglect to Gentoo Java means that we are behind where we should be
> on this. Java upstreams are rarely sympathetic to Gentoo anyway as they
> don't believe we should be building things from source.

So we should just stop building from source? That's the whole reason I use Gentoo in the first place. If some Java project is not open to helping me build their source, I'll just stop using it.

And if Caucho doesn't wanna support Java 7, great, Resin will be marked unstable. One of the great things about Gentoo is that you can install just a few unstable packages in an otherwise stable system. I love the flexibility to manage my risk that way. What you're doing here is telling me that something is safe, when it's actually not.
Comment 15 Andrew John Hughes 2015-09-01 23:42:47 UTC
I'm struggling to follow this bug. The subject says resin won't build with < 1.8, yet the only error listed shows it failing to build *with* 1.8. So does it not actually build with any JDK?
Comment 16 James Le Cuirot gentoo-dev 2015-09-02 09:41:01 UTC
(In reply to Andrew John Hughes from comment #15)
> I'm struggling to follow this bug. The subject says resin won't build with <
> 1.8, yet the only error listed shows it failing to build *with* 1.8. So does
> it not actually build with any JDK?

I don't where you're getting that from?

(In reply to Jose Quinteiro from comment #14)
> I would like some indication that what I'm doing is risky, like an unstable
> flag, for example.

That is not an unreasonable request and I have therefore complied.

> I am sad about how Resin has failed to gain traction. I've been using it
> since the early 2000s, and it was a great little server. They did have some
> big wins, like Salesforce, but unfortunately, it does seem to be rotting
> away. Their mailing list and Google group are basically deserted, and it
> takes weeks to get a response on their bug tracker.

I didn't get that impression from the frequent number of releases but then I really don't know anything about it. It just seemed a shame to drop it.

> Great. There's no open-source version of 1.8 so I won't use it anyway. I've
> played the Oracle license game before, and the only way to win is not to
> play.

The reason for the wait is that if we marked it stable now, it would force people like you onto Oracle and there are clearly some strong opinions about that. If Java team had been quicker in picking up Java 8 (i.e. over a year ago) then we would have gone ahead anyway as we couldn't afford to wait for IcedTea but now that IcedTea is nearing release, we can at least use a prerelease, if not the final release.

> So we should just stop building from source? That's the whole reason I use
> Gentoo in the first place. If some Java project is not open to helping me
> build their source, I'll just stop using it.

It's good to hear you say so as we sometimes wonder whether it's really worth the effort, especially if it's not appreciated.
Comment 17 Anton Bolshakov 2015-10-18 01:02:08 UTC
Just to be clear, Resin does compile with java 7. It were Gentoo devs who introduced the patch for java 8 and it broke java7 support.

I've been using Resin for years on my production system and it is marked as "unstable" for no reason now. I expected a quick stabilisation but it hasn't happened after two months.

Please try your best not to break the stable setup.
Comment 18 Anton Bolshakov 2015-10-18 01:10:20 UTC
The upstream bug report is here:
http://bugs.caucho.com/view.php?id=5940
Comment 19 James Le Cuirot gentoo-dev 2015-10-18 08:32:28 UTC
(In reply to Anton Bolshakov from comment #17)
> Just to be clear, Resin does compile with java 7. It were Gentoo devs who
> introduced the patch for java 8 and it broke java7 support.
> 
> I've been using Resin for years on my production system and it is marked as
> "unstable" for no reason now. I expected a quick stabilisation but it hasn't
> happened after two months.

Are you actually serious? Both this bug report and the upstream bug report is clearly about the opposite and you even confirmed the fix yourself. We dropped it from stable to appease another user for a good reason that was clearly explained. We will not undo this until upstream address the issue or we stabilise Java 8 here but you can very easily workaround this in the meantime. There have been a couple of minor changes to the package since then that may or may not have caused it to break but these have nothing to do with the Java version. I have even just built it myself with Java 7 successfully.

 * resin-4.0.44-src.zip SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ]
 * Using: icedtea-bin-7
>>> Unpacking source...
>>> Unpacking resin-4.0.44-src.zip to /var/tmp/portage/www-servers/resin-4.0.44-r4/work
>>> Source unpacked in /var/tmp/portage/www-servers/resin-4.0.44-r4/work
>>> Preparing source in /var/tmp/portage/www-servers/resin-4.0.44-r4/work/resin-4.0.44 ...
...
...
BUILD SUCCESSFUL
Total time: 1 minute 7 seconds
>>> Source compiled.

So please kindly support your claims (i.e. file a new bug report with the details) and stop spreading lies about us to upstream.
Comment 20 James Le Cuirot gentoo-dev 2015-10-18 08:46:24 UTC
Arrgh okay okay, sorry, you were partially right and I do apologise for the strong words. I had forgotten that this bug report was filed after we have already patched Resin for Java 8 and the upstream bug report (which I now realise you filed) originally got it backwards as well. I still don't know why you're claiming it's now broken with 7 though. As I said, please file a new bug report with the details.
Comment 21 James Le Cuirot gentoo-dev 2015-10-18 08:50:13 UTC
And now my daughter has stopped nagging me, I also realise you're saying it *was* broken but it's not any more. Can I start today again please? :(
Comment 22 Jose Quinteiro 2015-10-20 02:54:10 UTC
(In reply to Anton Bolshakov from comment #17)
> Just to be clear, Resin does compile with java 7. It were Gentoo devs who
> introduced the patch for java 8 and it broke java7 support.
> 

No that's exactly backwards. Resin 4.0.44 does not compile with JDK 7 unless you apply the patch from the Gentoo dev.

> I've been using Resin for years on my production system and it is marked as
> "unstable" for no reason now.

No, the are reasons, and they're clearly explained in comment #14.
Comment 23 Anton Bolshakov 2015-10-25 08:03:46 UTC
(In reply to Jose Quinteiro from comment #22)

I dont think so. See the following commit:

disable a patch that doesn't work with JDK versions lower than 1.8. Fixes bug 558442.
https://gitweb.gentoo.org/repo/gentoo.git/commit/www-servers/resin?id=9d6fa4934b3afe77fb1f6889374cb302c4f94de2

the diff:
+	# #558442.
+	if [[ "${vm_version}" == "1.8" ]]; then
+		PATCHES+=("${FILESDIR}"/"${PV}"/VarType.java.patch)
+	fi
Comment 24 Anton Bolshakov 2015-10-25 08:12:04 UTC
(In reply to James Le Cuirot from comment #19)

> is clearly about the opposite and you even confirmed the fix yourself. We
> dropped it from stable to appease another user for a good reason that was
> clearly explained. We will not undo this until upstream address the issue or
> we stabilise Java 8 here but you can very easily workaround this in the

> <skip> Can I start today again please? :(

So after it is all clear now, it should be other way around.

It should be safe to make it back stable with Java 7 and wait for the upstream to accept the Java 8 patch.

Cheers,
Anton
Comment 25 Jose Quinteiro 2015-10-27 17:09:33 UTC
(In reply to Anton Bolshakov from comment #24)
> 
> So after it is all clear now, it should be other way around.
> 
> It should be safe to make it back stable with Java 7 and wait for the
> upstream to accept the Java 8 patch.
> 
> Cheers,
> Anton

My apologies, you are correct. I'm staggered that someone thought that adding this NPE-bait patch to Resin in order to get it to compile with Java 8 was a good idea.
Comment 26 Jose Quinteiro 2015-10-27 17:37:15 UTC
Next question. Why is Resin unstable now? This removes a dodgy Gentoo-provided patch. That can only lower risk. If it was stable with the patch, it should definitely be stable without it.
Comment 27 James Le Cuirot gentoo-dev 2015-10-27 17:45:29 UTC
(In reply to Jose Quinteiro from comment #26)
> Next question. Why is Resin unstable now? This removes a dodgy
> Gentoo-provided patch. That can only lower risk. If it was stable with the
> patch, it should definitely be stable without it.

Because you told us to?

"I would like some indication that what I'm doing is risky, like an unstable flag, for example."

I do intend to take Anton's suggestion and provide two revisions though, one with the patch and one without.
Comment 28 Jose Quinteiro 2015-10-27 17:51:54 UTC
(In reply to James Le Cuirot from comment #27)
> (In reply to Jose Quinteiro from comment #26)
> > Next question. Why is Resin unstable now? This removes a dodgy
> > Gentoo-provided patch. That can only lower risk. If it was stable with the
> > patch, it should definitely be stable without it.
> 
> Because you told us to?
> 
> "I would like some indication that what I'm doing is risky, like an unstable
> flag, for example."
> 
> I do intend to take Anton's suggestion and provide two revisions though, one
> with the patch and one without.

I appreciate your responsiveness, but it turns out I was completely wrong about the problem in particular and Resin in general.

Also, Mr. Clement marked it unstable before I even asked. See comment #7.

In any case, resin-compile.patch is giving me the heebie-jeebies, so maybe this shouldn't be stable anyway.
Comment 29 Anton Bolshakov 2015-11-13 21:12:32 UTC
The upstream just closed my bug report. They commented that the gentoo java8 patch is ugly and should not be used. 

Also, they seems fixed the issue in 4.0.47. Unfortunately, they didn't provided a separate patch so I guess we should just upgrade.
Comment 30 Anton Bolshakov 2015-11-13 21:15:22 UTC
BTW, please re-open the bug. "Compiles" does not mean "tested and works"
Comment 31 Anton Bolshakov 2015-11-13 21:41:38 UTC
Sorry the comment was by Joseq. The upstream just closed the bug and specified the fixed version