Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-2141

NullPointerExceptions under JDK 1.5 due to underlying ThreadLocal bug

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.10
    • Fix Version/s: 5.0.11
    • Component/s: tapestry-ioc
    • Labels:
      None
    • Environment:
      jre 1.5

      Description

      There is a ThreadLocal bug that might be a source of problems for following code:

      here is a non trivial example that is broken,
      I'll try to make a trivial one that fails

      a simple page with test link
      <t:eventlink event="test">test</t:eventlink>

      page:
      @Inject private HibernateSessionManager _sessionManager;
      @Inject private ThreadCleanupHub _cleanupHub;

      public void onTest(){
      new Thread(new Runnable(){
      public void run()

      { User user = (User) _sessionManager.getSession().load(User.class, Long.valueOf(1L)); user.setName(user.getName()+"1"); _cleanupHub.cleanup(); }

      }).start();
      }

      for java 1.5 this code fails to save data (threadCleanupHub looses listener list )
      and it works fo 1.6

      here's a link to articles about this bug
      http://crazybob.org/2006/07/hard-core-java-threadlocal.html

      and the bug
      http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5025230

      it also makes this snippet not working
      http://wiki.apache.org/tapestry/Tapestry5HowToRunTaskInThread

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                hlship Howard M. Lewis Ship
                Reporter:
                hrgdavor Davor Hrg
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: