Recursive custom tag: different behaviour in WinXP and Linux

Hi all,
I've a strange behaviour on a web application for which I developed a custom tag to render a tree structure.
This tag take in input an object representing the tree with all its nodes, and render every node, calling hitself recursively for every child of every node.
This tag is used inside a jsp.
I deployed my webapp on JBoss in a WinXP Pro environment, and everything is ok. Then I deployed the same webapp on JBoss in a Linux Env, and the call to the custom tag... doesn't write anything (with the same input).
Used jdk are 1.6.0_10 on WinXP and 1.6.0_7 on Linux (an OpenSuse professional distribution). JBoss is 4.2 (I did tests with JBoss 4.2.2 and 4.2.3).
Here is a sample code of my tag (file outree.tag):
<%@ tag language="java" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://jakarta.apache.org/taglibs/log-1.0" prefix="log" %>
*<%@ taglib prefix="ousel" tagdir="/WEB-INF/tags/ouselector" %>*
<%@ attribute name="subtree"
          required="true"
          type="my.webapp.TreeObject" %>
<%@ attribute name="subroot_index" required="true" type="java.lang.Integer"%>
<log:debug category="my.webapp.ousearch.taglib" message="Tag library called, starting operations..." />
<c:if test="${not empty subtree.children}">
     <c:set var="next_subtree_index" value="${subroot_index + 1}"/>
     <ul class="subtree" id="subtree-${subroot_index}">
     <log:debug category="${logcategory}" message="We have children, calling recursively tag library on them (next subtree index: ${next_subtree_index})..." />
     <c:forEach var="currentOUChild" items="${subtree.children}">
          *<ousel:outree subtree="${currentOUChild}" subroot_index="${next_subtree_index}"/>*
          <c:set var="next_subtree_index" value="${next_subtree_index + 1}"/>
     </c:forEach>
     </ul>
</c:if>
</li>The TreeObject contains a list of children that can contain other children and so on. On every child, I call recursively my custom tag to render with a set of nested <ul> elements the entire tree structure.
Here the call from the jsp:
<%@ taglib uri="http://jakarta.apache.org/taglibs/log-1.0" prefix="log" %>
*<%@ taglib prefix="ousel" tagdir="/WEB-INF/tags/ouselector" %>*
<log:debug category="${logcategory}" message="Building subtree ${ouSubtree} HTML structure..." />
*<ousel:outree subtree="${ouSubtree}" subroot_index="1"/>*
<log:debug category="${logcategory}" message="Subtree ${ouSubtree} HTML structure built" />
...Jakarta log taglibs is used to log the value of the parameter passed to the custom tag. In the Linux env I see that the passed object is not empty (it couldn't be null because the tag enforce it as a mandatory value).
Any idea?

I have found a workaround.
Simply substitute the recursive invocation, with an import of a jsp that will call the custom tag.
Note: You have to set your needed variable in request to make it visible to the jsp
<%@ tag language="java" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://jakarta.apache.org/taglibs/log-1.0" prefix="log" %>
<%@ attribute name="subtree"
          required="true"
          type="my.webapp.TreeObject" %>
<%@ attribute name="subroot_index" required="true" type="java.lang.Integer"%>
<log:debug category="my.webapp.ousearch.taglib" message="Tag library called, starting operations..." />
<c:if test="${not empty subtree.children}">
     <c:set var="next_subtree_index" value="${subroot_index + 1}"/>
     <ul class="subtree" id="subtree-${subroot_index}">
     <log:debug category="${logcategory}" message="We have children, calling recursively tag library on them (next subtree index: ${next_subtree_index})..." />
     <c:forEach var="currentOUChild" items="${subtree.children}">
                *<c:set var="_currentOUChild" value="${currentOUChild}" scope="request"/>*
                *<c:set var="_next_subtree_index" value="${next_subtree_index}" scope="request"/>*
          *<c:import url="/WEB-INF/tags/outtree.jsp"/>*
          <c:set var="next_subtree_index" value="${next_subtree_index + 1}"/>
     </c:forEach>
     </ul>
</c:if>
</li>Here is the imported jsp (outtree.jsp):
<%@ taglib prefix="ousel" tagdir="/WEB-INF/tags/ouselector" %>
<ousel:outree subtree="${_currentOUChild}" subroot_index="${_next_subtree_index}"/>

Similar Messages

  • Different behaviour on windows and linux

    On a text field , I have attached a number converter, just to make sure that user enters the number else gets an error message.
    Things looks fine but it behaves differently on windows and linux os.
    When I am running this application on windows if user enters
    123456.46, it is stored as it is i.e 123456.46 in MySQL db.
    However, if run this on linux and if user enters 123456.46 then it is stored in MySQL db as 123456.460000000006402842700481414794921875
    I am not sure where the problem is. Can somebody guide me about it.
    Thanks.

    Not sure why the behaviour is different, but coded to remove the extra fractions.

  • Difference in data transfer rates between winXP and Linux server?

    Hello all,
    I am using a winXP laptop to act as my server (all usb external hard drives are connected to it) but the data transfer rates can be really slow. Is Linux faster in that regard? Can a Linux based server provide faster data transfer rates?
    Thanks for any help.
    Bmora96

    Linux cannot make hardware go any faster - so if WinXP and its drivers are making optimal use of those USB drives and the USB data transfer pipe, Linux will not make it faster. (but installing Linux and going Tux are always excellent ideas that need no real reason either ;-) )
    Real question you should be asking is if using a notebook in a server role is wise thing to do?

  • Possible Bug? Different behaviour for List and Set one-to-many mappings on deletePersistent()

    Hi,
    I have a PC class that represents a TreeNode object (a GcGroup), which
    has a one-to-many relationship with itself to keep track of its descendants.
    For example a hierarchy of A -> B -> C, where A has B,C as descendants
    and B has C as a descendant. This is tracked by adding or removing a
    descendant with a recursive method to update a TreeNode's parent's
    descendants when a child is added or removed.
    The odd behaviour happens when I delete a child and try to remove the
    child manually from all my parent's descendant relations when I use a
    HashSet (possibly happens with any Set). In this case kodo will remove
    the relations with the following SQL statement:
    DELETE FROM TREENODE_DESCENDANTSX JDOIDX = xxxx;
    So when I do my recursive call I get a JDOException thrown stating that
    the object xxxx has already been deleted.
    When I change the relationship to an ArrayList this exception is not
    thrown and I do not get the error.
    Looking at the SQL generated they look the same:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    28819334
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    UPDATE GCGroup SET JDOLOCKX=8, child_count=0 WHERE (id = 81 AND JDOLOCKX
    = 7)
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    8331873
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__DESCENDANTSX WHERE JDOIDX = 12300
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    8331873
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__USERSX WHERE group_id = 12300
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    8331873
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GCGroup WHERE id = 12300
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    commit data store transaction
    My methods look like the following:
    public void removeChild(TreeNode t) {
         _children.remove(t);
         removeDescendant(t);
    protected void removeDescendant(TreeNode t) {
         if (_parent != null) {
              _parent.removeDescendant(t);
         _descendants.remove(t);
    The following is the stack trace from the exception when using a HashSet:
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    30836962
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    UPDATE GCGroup SET JDOLOCKX=3, child_count=0 WHERE (id = 12450 AND
    JDOLOCKX = 2)
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    28630940
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    UPDATE GCGroup SET JDOLOCKX=41 WHERE (id = 2 AND JDOLOCKX = 40)
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29663640
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__DESCENDANTSX WHERE JDOIDX = 12451
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29663640
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__USERSX WHERE group_id = 12451
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29663640
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GCGroup WHERE id = 12451
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    5057297
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__DESCENDANTSX WHERE JDOIDX = 12452
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    5057297
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__USERSX WHERE group_id = 12452
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    5057297
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GCGroup WHERE id = 12452
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    roll back data store transaction
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    4629956
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    SELECT t0.id, t0.JDOLOCKX, t0.child_count, t0.description,
    t0.global_read, t0.global_write, t0.name, t0.owner_id, t0.parent_id,
    t0.rank, t0.root_id, t0.user_count, t0.user_exists, t0.visibility FROM
    GCGroup t0 WHERE t0.id = 12451
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    2951648
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    SELECT t0.id, t0.JDOLOCKX, t0.child_count, t0.description,
    t0.global_read, t0.global_write, t0.name, t0.owner_id, t0.parent_id,
    t0.rank, t0.root_id, t0.user_count, t0.user_exists, t0.visibility FROM
    GCGroup t0 WHERE t0.id = 12452
    2002-10-31 20:54:10,140 INFO [STDOUT]
    com.gulfnet.common.actions.GroupAction : The exception is:
    javax.jdo.JDOException
    2002-10-31 20:54:10,140 INFO [org.jboss.web.localhost.Engine] action:
    com.gulfnet.common.actions.GroupAction : The exception is:
    javax.jdo.JDOException
    2002-10-31 20:54:10,140 INFO [STDOUT]
    com.gulfnet.common.actions.GroupAction : java.lang.NullPointerException
    2002-10-31 20:54:10,140 INFO [org.jboss.web.localhost.Engine] action:
    com.gulfnet.common.actions.GroupAction : java.lang.NullPointerException
    2002-10-31 20:54:10,140 ERROR [STDERR] javax.jdo.JDOException:
    java.lang.NullPointerException
    NestedThrowables:
    java.lang.NullPointerException
    2002-10-31 20:54:10,156 ERROR [STDERR] at
    com.solarmetric.kodo.ee.EEPersistenceManager.rollback(EEPersistenceManager.java:169)
    2002-10-31 20:54:10,156 ERROR [STDERR] at
    com.gulfnet.usermanager.UserManager.deleteGroup(UserManager.java:775)
    2002-10-31 20:54:10,156 ERROR [STDERR] at
    com.gulfnet.common.actions.GroupAction.deleteObject(GroupAction.java:146)
    2002-10-31 20:54:10,171 ERROR [STDERR] at
    com.gulfnet.common.actions.GroupAction.doAction(GroupAction.java:58)
    Kam

    Forgot to add that I am using SQLServer 2000, Jboss 3.0.3 and Kodo 2.3.4
    Kam

  • Different behaviour between IE6 and IE on opening Office documents via KM

    Hi all,
    we're in the process of rolling out Internet Explorer 7 (IE7) and noticed something unexpected when opening non-html documents from a KM navigation iview. When clicking on the links in the ivew the documents are all opened in a new window because the hyperlink / href contains "target=_blank". When the document itself is for instance an Excel document, the browser will ask wether you want to open the document or not. When you choose to open the document, Excel launches and the blank IE6 window is closed in the background. When the user is done with the document he or she will return to the portal screen.
    This nice behaviour does not occur with IE7. The blank window remains open so when the user closes the Office document they are looking at an empty IE7 screen.
    Is there any way to fix this by customization or even by code change? It seems to me that this is more a SAP issue because for all HTML pages and for all documents that have IE plugins such as PDF'syou want to open a new window but for the others you want only the application to be lauched, not an empty IE.
    Message [3141588|https://www.sdn.sap.com/irj/sdn/thread?threadID=147594&messageID=3141588#3141588] seems to deal with the same problem and got a somewhat disturbing answer.
    The resource rendering parameter rndOpenTargetType does not seem to help see [Help.sap.com|http://help.sap.com/saphelp_nw70/helpdata/EN/87/3d48475ee8bd448c4031aa98d90524/frameset.htm]
    Marcel

    I found the solution on another site, superuser.com, so I can't claim the solution as my own, but it worked for me. Kent Ng says: 
    I face the similar issue with Excel 2003. If you have installed Skype-Click-to-Call, just removed it to resolve this issue.

  • Different Behaviour within Flex and on Browser

    Hi,
    I am using an XMLsocket in my problem (client and server on
    the same machine).
    As server I have modified slightly the java example from the
    help (server on port 5050).
    When I run my program within Flex (run button), program is
    run, it connects and accepts
    data from the server. When I try to run the program outside
    flex (run the html in the browser),
    then no connection seems to be made to the java program.
    Are any settings of the browser (firefox) configured
    differently when running through Flex?
    server part:
    socket = new ServerSocket(port);
    incoming = socket.accept();
    readerIn = new BufferedReader(new
    InputStreamReader(incoming.getInputStream()));
    // open up standard input
    BufferedReader br = new BufferedReader(new
    InputStreamReader(System.in));
    printOut = new PrintStream(incoming.getOutputStream());
    printOut.println("Enter EXIT to exit.\r\0");
    out("Enter EXIT to exit.\r");
    boolean done = false;
    while (!done)
    //String str = readerIn.readLine();
    String str = br.readLine();
    out("Echo: " + str);
    if(str.trim().equals("EXIT"))
    done = true;
    ====================================
    when run outside flex, surprisingly I can see the:
    "Enter EXIT to exit" on the screen but whenever i type
    something
    it does not appear on the Flex client. This works as it is
    supposed to,
    when executing within Flex...
    thanks

    When you say run from the browser.. is the request served by
    a web server?
    You may be running into crossdomain issues in the 2nd case. I
    would suggest that you print the input stream data from the XML
    Socket to see if its sending a request for crossdomain.xml? If that
    is the case, you should first send the response with the policy
    file back so that subsequent calls succeed.
    Thanks,
    Gaurav Jain
    Flex SDK Team

  • RMAUTH-Different behaviour for Change and display mode

    Dear friends,
    I modified a standard roadmap by copying it and added 1 folder called "X" with normal node and saved.
    When i go for display mode in RMAUTH, I am unable to see that folder.If i go to change mode i am able to see the folder "X".
    Even in RMMAIN I couldnt see it,But if i go to change-->Scope option i could able to see it & has the tick mark in it.
    Plz provide ur valuable solutions.

    Hi,
    You cannot change any of the field you mentioned in infotype 0001.
    You can assign a position using action 0000 through PA40 or by using copy option infotype 0000 in PA30. This will be in edit mode.
    Suggested to use PA40 so that all other relevant infotypes can also be updated accordingly.
    Rest of the components (Objects Job, Cost Center, Org unit etc)  has to be assigned to the respective position in PO13-->Relation ships.
    Note: Take care of the dates.
    Regards,
    Pranitha
    Reward if found Helpful

  • Hierarchical Tree - Different behaviour in web and CS mode

    I have my tree object disabled before I populate it. It works fine in CS but not in web. I am using Forms 6.0.8.
    Any solutions?

    Thanks for you reply Frank. Can you give me some more details about the patch and where to apply. Does it need to be applied on Forms developer or on the server where forms run? I will pass the info to my company's technical support.

  • HTextButton: Different behaviour in HScene and HContainer.

    Hi,
    i'm trying to use the HTextButton object in a HContainer. But when i'm calling the requestFocus() method of the HTextButton object nothing happens. When i try the same code from the HContainer directly in the HScene everything works fine. I though the HContainer object is used for grouping graphical elements together for easier handling, but i get the strange feeling something is going wrong...
    Can someone help me with this?
    Here is the code i tryed:
    import java.awt.Rectangle;
    import org.havi.ui.HContainer;
    import org.havi.ui.HTextButton;
    public class Quiz extends HContainer {
        HTextButton button1, button2;
        public Quiz(Rectangle screenSize) {
         this.setBounds(screenSize);
         this.setVisible(true);
         button1 = new HTextButton("XXXXXXXXXXXXXXXX", 400, 100, 100, 100);
         button2 = new HTextButton("XXXXXXXXXXXXXXXX", 400, 300, 100, 100);
         button1.setFocusTraversal(button2, button2, button2, button2);
         button2.setFocusTraversal(button1, button1, button1, button1);
         this.add(button1);
         this.add(button2);
         button1.requestFocus();
        }In the Xlet class i'm doing:
    import java.awt.Rectangle;
    import javax.tv.xlet.Xlet;
    import javax.tv.xlet.XletContext;
    import javax.tv.xlet.XletStateChangeException;
    import org.dvb.dsmcc.InvalidPathNameException;
    import org.havi.ui.HScene;
    import org.havi.ui.HSceneFactory;
    import org.havi.ui.HSceneTemplate;
    import org.havi.ui.HTextButton;
    public class XletMain implements Xlet {
        private XletContext xletContext;
        private HScene theScene;
        static EPGBackground background = null;
        static Quiz quiz;
        public void initXlet(XletContext xletContext) throws XletStateChangeException {
         System.out.println("[XletMain] Initializing Xlet.");
         this.xletContext = xletContext;
         // Get the HScene.
         HSceneFactory factory = HSceneFactory.getInstance();
         HSceneTemplate hSceneTemplate = new HSceneTemplate();
         if ((theScene = factory.getBestScene(hSceneTemplate)) != null) {
             System.out.println("[Xletmain] HScene created (" + theScene.getBounds().width + "x" +
                          theScene.getBounds().height + ").");
             theScene.setLayout(null);
             background = new EPGBackground(theScene.getBounds());
         } else {
             xletContext.notifyDestroyed();
         quiz = new Quiz(theScene.getBounds());         
        public void startXlet() throws XletStateChangeException {
         System.out.println("[XletMain] Starting Xlet.");
          THIS WORKED FINE:
         HTextButton button1 = new HTextButton("XXXXXXXXXXXXXXXX", 400, 100, 100, 100);
         HTextButton button2 = new HTextButton("XXXXXXXXXXXXXXXX", 400, 300, 100, 100);
         button1.setFocusTraversal(button2, button2, button2, button2);
         button2.setFocusTraversal(button1, button1, button1, button1);
         theScene.add(button1);
         theScene.add(button2);
         button1.requestFocus();
         theScene.add(quiz);
         theScene.setVisible(true);
        public void pauseXlet() {
         System.out.println("[XletMain] Pause Xlet.");
         theScene.setVisible(false);
        public void destroyXlet(boolean unconditional) throws XletStateChangeException {
         System.out.println("[XletMain] Destroying Xlet.");
         xletContext.notifyDestroyed();

    if you have lone a component, not added to any container and not visible
    on the screen and you call requestFocus(), it sure won't get the focus.
    It will get the focus if it is inserted into a top-level container, or
    is one of the leaf of an awt tree that has a top-level container
    root, if ya' kno' w'at I meen.....
    so just try:
    public class Quiz extends HContainer { 
      HTextButton button1, button2;   
    public Quiz(Rectangle screenSize) {
         this.setBounds(screenSize);
         this.setVisible(true);
         button1 = new HTextButton("XXXXXXXXXXXXXXXX", 400, 100, 100,100);
         button2 = new HTextButton("XXXXXXXXXXXXXXXX", 400, 300, 100, 100);
         button1.setFocusTraversal(button2, button2, button2, button2);
    button2.setFocusTraversal(button1, button1, button1, button1);
         this.add(button1);     
        this.add(button2);     
    public void requestFocus(){
       button1.requestFocus();  
    } then in your Xlet do :
    theScene.add(quiz);     
    quiz.requestFocus();
    theScene.setVisible(true);hope this help...
    it is a realy simple problem... call to requestFocus() will have impact on a component that is part of the component tree.

  • Question about different behaviour from Jinitator and JRE

    Hi,
    In the formsweb.cfg, if I set to to use JRE, it works fine.
    However, if I change to use Jinitator, it shows the following error in the browser.
    error:java.lang.VerifyError :(class:Try1/TryHint$1, method: <init> signature :(LTry1/TryHint;)V) Expecting to......
    The sample it works
    baseHTMLjinitiator=webutiljpi.htm
    baseHTMLjpi=webutiljpi.htm
    After setting the below, it shows the above error.
    baseHTMLjinitiator=webutiljini.htm
    baseHTMLjpi=webutiljini.htm
    Anyone can help ?
    Thanks.
    Ivan

    Every config uses the Java Runtime Environment (JRE) -- the difference is which JRE. JInitiator ships with a v1.3 JRE, and the Java Plug-In (JPI) uses whichever JRE corresponds to the given JPI version.
    You have given no information regarding which browser/version you are running, and it appears that you have not pasted the entire stacktrace, so it will be very difficult for anyone to help you. Reposting provides no additional information.
    Please review the following information -- it will hopefully help you sort things out:
       http://fdegrelle.over-blog.com/article-4135746.html
    Eric Adamson
    Lansing, Michigan

  • Different behaviour running rdf and running rep version 2i

    Hi all
    I have a strange problem on a Oracle 2i report, when I execute this report on development enviroment using rdf file I have the right output...
    When I execute this report, the same one, but using related rep file I have a wrong output.
    It seems like an executing problem... but I don't know what to check, please does any one help me???
    Greetings
    Antonio

    Hi all
    My problem was related to the repeating frame used, now I have solved.
    Thanks anyway
    Greetings
    Antonio

  • In FX 8 (WinXP and Linux) I'm not able to change a route of the Google Maps routeplanner via drag&drop, the markers of start and destination don't appear and therefore cannot be moved, either.

    Usually (IE, Firefox 7 and below) if you go along the blue line of a route planned by Google Maps, a small circle appears which can be dragged and dropped to other roads so that the routeplanner changes the route. This is impossible with Fx 8, the circle doesn't appear and when trying to drag&drop I only move the map. The same applies to the markers which mark the start and destination of the route, they are not visible and cannot be moved. Disabling Adblock and Firegestures didn't solve the problem.
    When the page is loading for a moment you can see the symbol for an image which is not yet loaded both where the markers should be and if you go along the line with the mouse. As soon as the page is completely loaded you don't see this anymore.

    There is opened a bug in Bugzilla:
    https://bugzilla.mozilla.org/show_bug.cgi?id=715124

  • JSP Custom tag not working correctly for multiple users

    I am doing some support work for an existing web system. When doing single user access (a custom tag is called within the JSP); the output of the Custom tag is fine. However, during multiple user access to the JSP, as I could see on the log files, 2 users access the custom tag at exactly the same time- the output of one of the users was incorrect. The custom tag btw, uses TreeMap, Stringbuffer and does not have a body, only attributes passed to it. It takes an input file and a Hashmap as input attributes and it sets a string in the page context which is later being used in the JSP. No error is logged, its just that the string produced(placed in the page context) is incorrect. This only happens when this tag is called at same time(when multiple users accessing the page) Has anyone encountered this problem? Is there a known pooling/thread problem with custom tags?

    in a servlet/jsp (a jsp is compiled into a servlet),
    the class atrributes are shared. only the
    variables declared in the doservice (doGet or doPost)
    method are threadsafe.
    post your jsp plzhere's the snippet of the jsp code:
    <%@ page language="java"
    errorPage="Error.jsp"
    autoFlush="false"
    buffer="128kb"
    import="java.text.*,
    java.math.BigDecimal,
    java.rmi.RemoteException,
    java.util.*,
    java.io.*,
    %>
    <%@ include file="Secure.jsp" %>
    // a set of request.getParameter are being called here
    HashMap myMap = new HashMap();
    myMap.put(xmlDPhoneNumber, dPhoneNumber);
    myMap.put(xmlDPhoneType, "D");
    myMap.put(xmlDPhoneExt, dExtension);
    myMap.put(xmlDPhoneDigits, dPhoneDigits);
    // other myMap putting of key values are called here
    %>
    <test:applyCustomerSearchValues id="resultXml" xmlTemplate="/xml/message/CustomerUpdateRequest.xml"
    xmlMap="<%= myMap %>" />
    <test:transformXMLString id="customerUpdateRequest"
    xmlString="<%= resultXml.toString() %>"
    xslFileName="/xsl/message/CustomerCreateRequest.xsl"
    paramMap="<%= PMap %>"/>
    now here's the thing: the xml produced by test:applyCustomerSearchValues is resultXml which is used in test:transformXMLString. I got no problem with the output of test:transformXMLString. I am sure that a phone number is being passed into the former as part of the HashMap key-value. However when test:applyCustomerSearchValues is called when 2 users access the jsp, it seems like the the first xml produced does not have the phone number in it - but the other has it. The xml is OK for both users, its just that the values of the HashMap do not seem to be passed correctly into the xml produced.
    --- here's the snippet of the log, the first httpWorkerThread-80-6 does not have the phone number, however the second one-httpWorkerThread-80-7 has the phone number. The first one should also have a phone number as in the start of the log, the number was listed, but as the system called the test:applyCustomerSearchValues tag, the number was not included. There are different phone numbers for the 2 users. The odd thing here is, the userID which is the 'LastUpdatedBy' element has been set correctly. The userID is being fetched from a session attribute while the phone number is fetched from a request parameter, both are being placed in the HashMap attribute passed to the custom tag.
    2007-06-05 10:55:41,954 DEBUG [httpWorkerThread-80-6] (?:?) - ApplyCustomerSearchValuesTag : String produced is :<Values><Customer>
    <Status>
         <CustomerType></CustomerType>
         <FirstContactDate>2007-06-05</FirstContactDate>
         <StatusFlags>
              <Fraud>N</Fraud>
              <BadCheck>N</BadCheck>
              <BadCredit>N</BadCredit>
              <DoNotMerge>N</DoNotMerge>
              <ARHoldRefundCheck>N</ARHoldRefundCheck>
         </StatusFlags>
         <LastUpdatedDateTime>2007-06-05 10:55:41</LastUpdatedDateTime>
         <LastUpdatedBy>5555</LastUpdatedBy>
         <OPAlertClass></OPAlertClass>
         <MailListStoreID></MailListStoreID>
         <OriginatingSource>CSA</OriginatingSource>
    </Status>
    <DPhone id="D">
         <DPhoneNumber></DPhoneNumber>
         <DPhoneDigits></DPhoneDigits>
         <DPhoneType></DPhoneType>
         <DExtension></DExtension>
         <DAreaCode></DAreaCode>
         <DPhoneCountryCode></DPhoneCountryCode>
    </DPhone>
    </Customer>
    </Values>
    2007-06-05 10:55:41,954 DEBUG [httpWorkerThread-80-7] (?:?) - ApplyCustomerSearchValuesTag : String produced is :<Values><Customer>
    <Status>
         <CustomerType>N</CustomerType>
         <FirstContactDate>2007-06-05</FirstContactDate>
         <StatusFlags>
              <Fraud>N</Fraud>
              <BadCheck>N</BadCheck>
              <BadCredit>N</BadCredit>
              <DoNotMerge>N</DoNotMerge>
              <ARHoldRefundCheck>N</ARHoldRefundCheck>
         </StatusFlags>
         <LastUpdatedDateTime>2007-06-05 10:55:41</LastUpdatedDateTime>
         <LastUpdatedBy>1840</LastUpdatedBy>
         <OPAlertClass></OPAlertClass>
         <MailListStoreID></MailListStoreID>
         <OriginatingSource>CSA</OriginatingSource>
    </Status>
    <DPhone id="D">
         <DPhoneNumber>(123) 123-4788</DPhoneNumber>
         <DPhoneDigits>1231234788</DPhoneDigits>
         <DPhoneType>D</DPhoneType>
         <DExtension></DExtension>
         <DAreaCode>123</DAreaCode>
         <DPhoneCountryCode>US</DPhoneCountryCode>
    </DPhone>
    </Customer>
    </Values>
    Message was edited by:
    Mutya

  • Custom Tag Implementation seems inefficient

    I've been playing around a bit (alright, so maybe not all that much)
              with custom tags, and it seems like the actual implementation of custom
              tags (tag handler object(s) per tag) is much more resource-intensive
              than would be justified. With Weblogic 5.1 SP6, has anyone had the
              opportunity to compare performance of a typical JSP page w/ and w/out
              custom tags?
              My first impression of custom tags was that you could define tags
              and behaviors that the JSP compiler would then compile into your JSP
              class; there would be no performance hit during page execution. The Java
              code used to write these tags would either be included inline in the JSP
              page code, or else act essentially as static (threadsafe) classes into
              which threads executing JSP pages would call into. This approach means
              less resources consumed and less setup/teardown time in exchange for
              fatter JSPC'd code.
              Instead (and correct me if I am wrong), it appears that each
              distinct custom tag has a pool of instantiated handler objects lying
              around in memory, and each time a custom tag is used, there is a
              little performance hit in the setup & teardown of each handler object's
              pageContext, etc...
              Now admittedly, as another poster (I believe Mr. Purdy) pointed out,
              a "little" ain't all that much... unless there are thousands of those
              "little" hits.
              Moreover, I don't see much benefit in having instantiated objects do
              the heavy lifting. I'd rather have my auto-compiled JSP classes be a
              little more bloated than suffer any performance hit. (I do, however,
              like the fact that custom tags allows for cleaner JSP code, not to
              mention makes for a cleaner break between the creative and coding work.)
              For those of you who've had more extensive experience with custom
              tags, am I missing the target? Is the performance hit negligible for
              heavily-used or complex pages? And/or is the performance hit outweighed
              by code and development cleanliness?
              Thanks for any input.
              Jack
              

    Hi Sri
              Looks like you've found an inefficiency in WebLogic's JSP compiler - it
              should be reusing tag instances within the same page. BEA should fix this
              hopefully.
              > So even if a page has 4 tags and 100 users, we have 400 objects just
              > because we use tags.
              Sure, assuming you have 100 concurrent users (and 100 threads in the servlet
              engine). Though creating 400 objects is not a big deal in Java; most non
              trivial Java applications / services create millions of objects.
              Its also worth noting that having a seperate object instance per tag per
              calling thread means that you don't have to do any synchronisation in the
              custom tag (since you're guarenteed to be called by one thread only) so you
              get maximum thread throughput at the expense of some object allocation.
              If you really don't like the idea of creating a few java objects per request
              you could use XSLT to post process JSP files to replace tag occurencies with
              Java scriptlets - though I'm not sure the extra complexity and restrictions
              that this mechanism imposes is worth it at all. Custom tags rock! ;-)
              J.
              James Strachan
              =============
              email: [email protected]
              web: http://www.metastuff.com
              "Sri" <[email protected]> wrote in message
              news:[email protected]...
              > This post had some interesting aspects about custom tags that contradict
              > what I see in the generated java code by the JSP container. I am using
              > weblogic 5.1 sp6 and I have a jsp file that uses a custom tag "xyz:for" a
              > couple of times. the tags are not nested.
              > The java code indicates that two separate instances for the "xyz:for" tag
              > were created.
              >
              > try
              >
              > calicothunder_presentation_tags_ForTag_0 = new
              > calico.thunder.presentation.tags.ForTag();
              >
              > ..............
              >
              > } finally
              >
              > if (_calico_thunder_presentation_tags_ForTag_0 != null)
              > calicothunder_presentation_tags_ForTag_0.release();
              > }
              >
              > Further down
              >
              > try {
              > calicothunder_presentation_tags_ForTag_1 = new
              > calico.thunder.presentation.tags.ForTag();
              > ...............
              >
              > } finally
              >
              > if (_calico_thunder_presentation_tags_ForTag_1 != null)
              > calicothunder_presentation_tags_ForTag_1.release();
              > }
              >
              > The code is creating two different objects for every request. It is not
              > reusing the same object.
              > The release is just cleaning up the current instance, which may be garbage
              > collected at some later stage.
              > So even if a page has 4 tags and 100 users, we have 400 objects just
              > because we use tags.
              >
              > Just trying to understand this better..
              > thanks - Sri
              >
              >
              >
              > "James Strachan" <[email protected]> wrote in message
              > news:[email protected]...
              > > Hi Jack
              > >
              > > I think you're right to be concerned and it is a valid concern.
              > >
              > > In the scheme of things in my experience the cost of using custom tags
              is
              > > quite minimal. Tag instances are reused on the same page so if I have
              > > several non-nested <foo:bar> tags on a page the single FooBarTag
              instance
              > > will be reused for each tag occurance.
              > >
              > > Consider other Java code, say, string concatenation. Consider the
              > following
              > > expression.
              > >
              > > String c = a + b;
              > >
              > > Fairly minimal code you might think. However this line actually involves
              > the
              > > creation of a StringBuffer instance, the call of 2 methods and the
              > creation
              > > of a second String object instance (never mind the internal char[]
              object
              > > instance that is created inside the new Strings constructor).
              > >
              > > A typical use of a custom tag involves one object construction, N
              > > setProperty() method calls (one for each attribute of the tag) and the
              > > startTag / endTag method calls.
              > >
              > > So on balance I'd say the custom tags mechanism is quite small and
              > > efficient.
              > >
              > > Though note that if you use large numbers (say hundreds) of different
              > kinds
              > > of tags then you'll have a much greater object allocation overhead.
              > >
              > > --
              > > J.
              > >
              > > James Strachan
              > > =============
              > > email: [email protected]
              > > web: http://www.metastuff.com
              > > "Jack Lin" <[email protected]> wrote in message
              > > news:[email protected]...
              > > > I've been playing around a bit (alright, so maybe not all that much)
              > > > with custom tags, and it seems like the actual implementation of
              custom
              > > > tags (tag handler object(s) per tag) is much more resource-intensive
              > > > than would be justified. With Weblogic 5.1 SP6, has anyone had the
              > > > opportunity to compare performance of a typical JSP page w/ and w/out
              > > > custom tags?
              > > >
              > > > My first impression of custom tags was that you could define tags
              > > > and behaviors that the JSP compiler would then compile into your JSP
              > > > class; there would be no performance hit during page execution. The
              Java
              > > > code used to write these tags would either be included inline in the
              JSP
              > > > page code, or else act essentially as static (threadsafe) classes into
              > > > which threads executing JSP pages would call into. This approach means
              > > > less resources consumed and less setup/teardown time in exchange for
              > > > fatter JSPC'd code.
              > > > Instead (and correct me if I am wrong), it appears that each
              > > > distinct custom tag has a pool of instantiated handler objects lying
              > > > around in memory, and each time a custom tag is used, there is a
              > > > little performance hit in the setup & teardown of each handler
              object's
              > > > pageContext, etc...
              > > > Now admittedly, as another poster (I believe Mr. Purdy) pointed
              out,
              > > > a "little" ain't all that much... unless there are thousands of those
              > > > "little" hits.
              > > > Moreover, I don't see much benefit in having instantiated objects
              do
              > > > the heavy lifting. I'd rather have my auto-compiled JSP classes be a
              > > > little more bloated than suffer any performance hit. (I do, however,
              > > > like the fact that custom tags allows for cleaner JSP code, not to
              > > > mention makes for a cleaner break between the creative and coding
              work.)
              > > >
              > > > For those of you who've had more extensive experience with custom
              > > > tags, am I missing the target? Is the performance hit negligible for
              > > > heavily-used or complex pages? And/or is the performance hit
              outweighed
              > > > by code and development cleanliness?
              > > >
              > > > Thanks for any input.
              > > > Jack
              > > >
              > > >
              > >
              > >
              >
              >
              

  • How to create a custom tag for a custom converter

    In Jdeveloper 11g, I have a project where I have created a custom converter class that impements the javax.faces.convert.Converter class. I have registered the converter with an id in the faces-config.xml file of the project, and the converter works fine by using the <f:converter type="myconverter"> tag. However, the custom converter has a field which I would like to set from the tag itself. Hence, I would like to add an attribute to <f:converter> tag if possible or create a custom tag that has the attribute.
    I have done some reserach and I found that a custom tag can be implemented: I need to create a class which extends from the ConverterTag class or javax.faces.webapp.ConverterElTag class, which I did, but I also need to create ".tld" (tag library) file which defines the tag itself.
    The part about creating the ".tld" file and registring the new tag is what I'm not sure how to do.
    Does someone know how to do this?
    thank you

    Hi frank,
    that's a good document, and it explains how to make a custom converter. I already created the custom converter, it converts a number to any currency pattern. I know java already has a currency converter, but it doesn't support Rupee currency format, and I need that format.
    My converter works, but I would like to pass the pattern of the format through an attribute in a tag. Since f:converter doesn't seem to support that, I created a custom tag which uses my converter, and it enables me to pass a pattern to the converter.
    All of that works, but I need to be able to pass the pattern as an EL expression, and it's not evaluating the expression before passing it to the converter. It just passes the whole expression as a string. I'm thinking It may be something I'm doing wrong.
    this is the tag library definition file:
    <!DOCTYPE taglib
    PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
    "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    <taglib>
    <tlib-version>1.2</tlib-version>
    <jsp-version>2.1</jsp-version>
    <short-name>custom</short-name>
    <uri>custom-currency-converter</uri>
    <description>
    custom currency custom tag library
    </description>
    <tag>
    <name>CurrencyConverter</name>
    <tag-class>
    converter.Tag.CurrencyConverterTag
    </tag-class>
    <body-content>JSP</body-content>
    <attribute>
    <name>pattern</name>
    <type>java.util.String</type>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    </tag>
    </taglib>
    Edited by: Abraham Ciokler on Feb 4, 2011 11:20 AM

Maybe you are looking for

  • JTable data back-up (re-visited)

    Hi! I need to persist the data in my jTable rows and columns. Right now I get and set them with java preferences with two x and y loops ... this works fine. but ..... is there a way to save to a file the jTable row and column data without first extra

  • Upload videos from Iphone to laptop

    I sold my old computer and now I want to upload my videos from the Iphone to the new MacBook . It seems impossible to do this with Itunes . Any suggestions ?

  • "semantic checks during XML Validation"

    What did SAP pepole ment saying the above subject  in the XML validation page of PI 7.3? Does PI supprots only "shallow" validation of structure rather then "deep validaiton" of data type patterns for example? if not duiring validation then when? htt

  • No dhcp information when trying to connect wifi

    My problem is that I can't get a signal to access my home wifi. We have 2 other ipods (same as mine) and they work fine. The network shows up when I go into settings and 'choose a network' but there is no info whatsoever on the DHCP page. I've tried

  • Adobe Output Designer-Message #6015

    Hello party people I'm playing around with Adobe Output Designer 5.5 for quite some time. But yesterday i faced a quite uneasy problem while doing test presentment. When i did a TP(Test Presentment ) for a particular dat file it's showing me an error