Tapestry
  1. Tapestry
  2. TAPESTRY-1840

Tapestry 5 does not compile with Java 6

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Trivial Trivial
    • Resolution: Fixed
    • Affects Version/s: 5.0
    • Fix Version/s: 5.0.8
    • Component/s: None
    • Labels:
      None

      Description

      I've tried downloading the sources for tapestry5 and build it just for curiosity's sake. Everytime i try to build it with java6 I get the error below. Haven't any of you tried building it with java6 yet? It's been like that for all releases of java6 i've tried.

      Anyway, it's probably not intended to stay that way. Inserting a cast at the assignment in the reported line will make it compile, but I have no idea if it is correct.

      [INFO] ----------------------------------------------------------------------------
      [INFO] Building Tapestry Inversion of Control Container
      [INFO] task-segment: [install]
      [INFO] ----------------------------------------------------------------------------
      [INFO] [resources:resources]
      [INFO] Using default encoding to copy filtered resources.
      [INFO] [compiler:compile]
      [INFO] Compiling 172 source files to E:\prosjekter\tapestry5svn\tapestry5\trunk\tapestry-ioc\target\classes
      [INFO] ------------------------------------------------------------------------
      [ERROR] BUILD FAILURE
      [INFO] ------------------------------------------------------------------------
      [INFO] Compilation failure
      E:\prosjekter\tapestry5svn\tapestry5\trunk\tapestry-ioc\src\main\java\org\apache\tapestry\ioc\internal\services\ChainBuilderImpl.java:[125,65] incompatible types
      found : java.lang.reflect.Constructor<?>
      required: java.lang.reflect.Constructor<T>

        Activity

        Hide
        Howard M. Lewis Ship added a comment -

        Being on a Mac, I don't have access to JDK 1.6 to investigate this

        That's actually a good thing, as it ensures compatibility with JDK 1.5.

        This represents some subtle and ugly change in generics between JDK 1.5 and 1.6. Without a JDK 1.6 compiler, it's hard for me to diagnose. Feel free to contribute a patch!

        Show
        Howard M. Lewis Ship added a comment - Being on a Mac, I don't have access to JDK 1.6 to investigate this That's actually a good thing, as it ensures compatibility with JDK 1.5. This represents some subtle and ugly change in generics between JDK 1.5 and 1.6. Without a JDK 1.6 compiler, it's hard for me to diagnose. Feel free to contribute a patch!
        Hide
        Zbigniew Ogledzki added a comment -

        Hello, Because I am trying to use it now and found this bug also I prepare a small patch, maybe you will like it
        It's a basic casting, nothing special.

        best regards, zgibek

        file::java5_to_6.patch:

        Index: ../trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ChainBuilderImpl.java
        ===================================================================
        — ../trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ChainBuilderImpl.java (revision 609060)
        +++ ../trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ChainBuilderImpl.java Sat Jan 05 07:48:09 CET 2008
        @@ -113,7 +113,7 @@
        {
        try

        { - Constructor<T> ctor = instanceClass.getConstructors()[0]; + Constructor<T> ctor = (Constructor<T>) instanceClass.getConstructors()[0]; return instanceClass.cast(ctor.newInstance(commands)); }
        Show
        Zbigniew Ogledzki added a comment - Hello, Because I am trying to use it now and found this bug also I prepare a small patch, maybe you will like it It's a basic casting, nothing special. – best regards, zgibek file::java5_to_6.patch: Index: ../trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ChainBuilderImpl.java =================================================================== — ../trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ChainBuilderImpl.java (revision 609060) +++ ../trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ChainBuilderImpl.java Sat Jan 05 07:48:09 CET 2008 @@ -113,7 +113,7 @@ { try { - Constructor<T> ctor = instanceClass.getConstructors()[0]; + Constructor<T> ctor = (Constructor<T>) instanceClass.getConstructors()[0]; return instanceClass.cast(ctor.newInstance(commands)); }

          People

          • Assignee:
            Howard M. Lewis Ship
            Reporter:
            Eirik Maus
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development