Sure, I talk about component classes. Sorry for the unclear message.

I played with the bug and reproduced it in the simple form.

It happens when I put an inner class of the page into environment and
use @Environmental.
It does not happen when I refactor that inner class out of the page.
It does not happen when I use environment.peek()

--------------------------------------------------------------------
SimplePage.java
--------------------------------------------------------------------

package mytapp.pages;

import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.Environment;

public class SimplePage {

        public class InnerClass {
                public String toString() {
                        return "InnerClass";
                }
        }

        @Inject
        private Environment environment;

        void beginRender() {
                environment.push( InnerClass.class, new InnerClass() );
        }

        void afterRender() {
                environment.pop( InnerClass.class );
        }
}

--------------------------------------------------------------------
SimplePage.tml
--------------------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd";>
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd";>
  <head>
    <title>Simple title</title>
  </head>
  <body>
  <p>Simple text</p>

  <p><t:SimpleComponent/></p>

  </body>
</html>

--------------------------------------------------------------------
SimpleComponent.java
--------------------------------------------------------------------

package mytapp.components;

import mytapp.pages.SimplePage.InnerClass;

import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.annotations.Environmental;

public class SimpleComponent {

        @Environmental
        private InnerClass innerClass;

        // UNCOMMENT THIS TO WORK
        // @Inject
        // private Environment environment;

        void beginRender( MarkupWriter writer ) {
                // UNCOMMENT THIS TO WORK
                // InnerClass innerClass = environment.peek( InnerClass.class );

                writer.write( "SimpleComponent " + innerClass.toString() );
        }
}

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to