ClassCastException in OracleSQLBuilderImpl.class

Hi,
I'm trying to run a simple test application on JDeveloper 9.0.5.0.0 using Postgresql as a database. I got the connection working just fine (I can browse the table structure and view table data) and I followed the ADF tutorial to create the test application:
"Developing a Web Application Using the Default Technology Scope Tutorial"
However, when I want to run the application I get a ClassCastException in oracle.jbo.server.OracleSQLBuilderImpl in isConnectionAlive().
I investigated the class file and indeed a cast to an OracleConnection object is done.
I don't understand how this is supposed to work with third party JDBC drivers. Am I missing something?
Can anyone shed any light on this?
Regards,
Marc.
NB. If necessary, I can provide the complete stacktrace.

Steve,
The question we have then is, If the BC4J configuration indicates SQL flavor is set to "SQL92", and the type map is set to "java" then why is OracleSQLBuilderImpl.class being executed?
Thanks again,
Phil Scuderi
Following is the BC4J version number, the text of the data-source.xml file, and the stack trace.
********** We are deploying the application using BC4J version 9.0.3.10.62.
********** The date-sources.xml is:
<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE data-sources PUBLIC "Orion data-sources" "http://xmlns.oracle.com/ias/dtds/data-sources.dtd">
<data-sources>
<data-source class="com.evermind.sql.DriverManagerDataSource" connection-driver="com.attunity.jdbc.NvDriver" ejb-location="jdbc/AttunityDevelopmentDS" inactivity-timeout="30" location="jdbc/AttunityDevelopmentCoreDS" name="jdev-connection:AttunityDevelopment" password="dianif" pooled-location="jdbc/AttunityDevelopmentPooledDS" url="jdbc:attconnect://atifinad:[email protected]:8880/finaid;" username="atifinad" xa-location="jdbc/xa/AttunityDevelopmentXADS"/>
</data-sources>
********** The exception stack trace is:
Exception Stack Trace:
java.lang.ClassCastException: com.attunity.jdbc.NvPreparedStatement
at
oracle.jbo.server.OracleSQLBuilderImpl.doStatementSetRowPrefetch(OracleSQLBu
ilderImpl.java:926)
at
oracle.jbo.server.DBTransactionImpl.createPreparedStatement(DBTransactionImp
l.java:2487)
at
oracle.jbo.server.DBTransactionImpl.createReUsePreparedStatement(DBTransacti
onImpl.java:3234)
at
oracle.jbo.server.ViewObjectImpl.getPreparedStatement(ViewObjectImpl.java:63
23)
at
oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:456)
at
oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.ja
va:2593)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:502)
at
oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java:543)
at
oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:2557)
at
wsu.finaid.persistence.bc4j.FinAidAwardModuleImpl.getAwardSummary(FinAidAwar
dModuleImpl.java:74)
at
edu.wsu.student.finaid.resource.handler.R_FinAidScholAwdSumHandlerImpl.getAw
ardSummary(R_FinAidScholAwdSumHandlerImpl.java:82)
at
edu.wsu.student.finaid.process.MP_GetAwardSummary.persist(MP_GetAwardSummary
.java:142)
at
oracle.cle.process.PersistingProcess.start(PersistingProcess.java:83)
at oracle.cle.process.CLEStateMachine.start(CLEStateMachine.java:61)
at oracle.cle.process.Process.start(Process.java:108)
at oracle.cle.process.GenericProcess.start(GenericProcess.java:84)
at oracle.cle.process.ParentProcess.start(ParentProcess.java:226)
at oracle.cle.process.DisplayGroup.start(DisplayGroup.java:75)
at oracle.cle.process.CLEStateMachine.start(CLEStateMachine.java:61)
at oracle.cle.process.Service.start(Service.java:389)
at
oracle.clex.process.controller.HttpServletController.doPost(HttpServletContr
oller.java:422)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:283)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
at
com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.ja
va:66)
at
oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:284)
at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispa
tcher.java:539)
at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletReq
uestDispatcher.java:285)
at
com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDisp
atcher.java:231)
at
oracle.portal.provider.v2.render.http.ResourceRenderer.renderBody(Unknown
Source)
at oracle.portal.provider.v2.render.RenderManager.render(Unknown
Source)
at oracle.portal.provider.v2.DefaultPortletInstance.render(Unknown
Source)
at
oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter.showPortlet(Unknown
Source)
at
oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter.handleHttp(Unknown
Source)
at java.lang.reflect.Method.invoke(Native Method)
at oracle.webdb.provider.v2.adapter.SOAPServlet.doHTTPCall(Unknown
Source)
at oracle.webdb.provider.v2.adapter.SOAPServlet.service(Unknown
Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
at
com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.ja
va:66)
at
oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:284)
at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispa
tcher.java:539)
at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletReq
uestDispatcher.java:285)
at
com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandle
r.java:771)
at
com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:170)
at
com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:72)
at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.ja
va:802)
at java.lang.Thread.run(Thread.java:484)

Similar Messages

  • Java.lang.ClassCastException in Controller Class

    Hi All,
    I am getting ClassCastException in one of my Controller class where initiating OABreadCrumbsBean object.
    The code is as below.
    OABreadCrumbsBean oabreadcrumbsbean = (OABreadCrumbsBean)((OAPageLayoutBean)oawebbean).getBreadCrumbsLocator();
    This I am using processRequest() method in that controller class.
    Please let me know what can be the possible reason of this.
    Thanks
    Debashree

    You are presuming that the first indexed child can be cast as OAMessageChoiceBean. If you do System.out.println of the object, it will tell you what the type is. It sounds like the order of the children may have changed and the type of object you think you have referenced is a different type.
    Comment out the uiNde0 cast and do this:
    System.out.println(reasonDff.getIndexedChild((OARenderingContext)pageContext.getRenderingContext(),
    1));
    Kristofer

  • Glassfish v3 ClassCastException for same class, at a List.get() command.

    Hello everyone,
    I am in the process of developing a small web application with JSF 2.0 and JPA, both of which I am not entirely familiar with. But thanks to Google and a lot of very dedicated experts, the Java and JSF forums have helped me with creating a basic form for entering and storing data. I am using Netbeans 6.8 which has glassfish V3 for the app server. However I have a problem where the auto-deploy in glass fish ends up giving me a ClassCastException for the same class, which after a bit of research on the net, seems to be a classloader problem.
    A related link http://72.5.124.102/thread.jspa?messageID=10119180 probably confirms the cause as a hot-deploy issue.
    My JSF page is created dynamically in the constructor of the managed bean, and it is here that I get the exception occasionally. A restart of the server solves the issue. Nevertheless, I would like to know if there is any other way to solve the classloader problem other than using a build.xml file as suggested in the forum link given above.
    I am posting a part of my code as well, so that if you think there a classloader problem in my code, you can let me know, so I can fix it.
    @ManagedBean(name = "CustomFields")
    @RequestScoped
    public class CustomFields {
        private String tableName;
        private List<UiSetup> dispFieldsList = new ArrayList();
        private HtmlPanelGrid customPanelSec = new HtmlPanelGrid();
        public HtmlPanelGrid getCustomPanelSec() {
            return customPanelSec;
        public void setCustomPanelSec(HtmlPanelGrid customPanelSec) {
            this.customPanelSec = customPanelSec;
        public String getTableName() {
            return tableName;
        public void setTableName(String tableName) {
            this.tableName = tableName;
        public CustomFields() {
            System.out.println("Invoked customFields backing bean");
            String callerBean = "";
            FacesContext context = FacesContext.getCurrentInstance();
            Application application = context.getApplication();
            tableName = context.getExternalContext().getRequestParameterMap().get("callerPage");
            callerBean = context.getExternalContext().getRequestParameterMap().get("backingBean");
            // This is a JPA contoller class for an entity that defines the custom fields that have to be enabled for this page.
            UiSetupJpaController fldsToShow = new UiSetupJpaController();
            dispFieldsList.clear();
            System.out.println("Did this1");
            // This function getDisplayFields gets the fields that have to be shown on the page.
            this.dispFieldsList = fldsToShow.getDisplayFields(tableName);
            System.out.println("Did this2");
            int totFields = this.dispFieldsList.size();
            System.out.println("Did this3");
            UiSetup us = this.dispFieldsList.get(totFields - 1);// This is where the error is thrown always.
            System.out.println("Did this4");
            customPanelSec.getChildren().clear();
            for (int i = 0; i < totFields; i++) {
                try {
                    HtmlPanelGrid fldLblGroup = new HtmlPanelGrid();
                    HtmlOutputLabel customLabel = (HtmlOutputLabel) application.createComponent(HtmlOutputLabel.COMPONENT_TYPE);
                    String labelName = dispFieldsList.get(i).getDisplayName();
                    customLabel.setValue(labelName);
                    String fieldName = dispFieldsList.get(i).getFieldName();
                    HtmlPanelGroup customField = (HtmlPanelGroup) application.createComponent(HtmlPanelGroup.COMPONENT_TYPE);
                    HtmlInputText customText = new HtmlInputText();
                    String valExp = "#{" + callerBean + "." + fieldName + "}";
                    customText.setId(fieldName);
                    customText.setValueExpression("value", createValueExpr(valExp, BigDecimal.class, context));
                    customField.getChildren().clear();
                    customField.getChildren().add(customText);
                    customPanelSec.getChildren().add(customLabel);
                    customPanelSec.getChildren().add(customField);
                }catch (Exception e) {
                    System.out.println(e.getMessage());
        private ValueExpression createValueExpr(String valexp, Class cls, FacesContext fcs) {
            return fcs.getApplication().getExpressionFactory().createValueExpression(fcs.getELContext(), valexp, cls);
    }The error message is as follows
    com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: karma.com.managedbeans.master.CustomFields.
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:193)
    at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:102)
    at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:405)
    at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:267)
    Caused by: java.lang.ClassCastException: karma.com.model.ui.UiSetup cannot be cast to karma.com.model.ui.UiSetup
    at karma.com.managedbeans.master.CustomFields.<init>(CustomFields.java:397)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:188)
    ... 82 moreRegards,
    Swati

    Thanks very much for your reply. I have implemented your suggestion of using a PostConstruct method with the @ManagedProperty to inject the values into the tableName and the callerBean properties. The good news is that the page is rendered correctly and I haven't encountered the exception the few times that I invoked the page.
    However, I can't be sure the issue is resolved, since, like I mentioned, the error is seemingly erratic and I don't quite know if it is not seen because of a genuine fix or because, well, its currently not in a mood to show up.
    There is just one more thing I would like to mention. I have said that the code fails at the List.get() line. However, its not happening because the list is empty. In fact the earlier lines are giving expected outputs and totFields value is set all right. Maybe this has nothing to do with the error, but I thought I will mention it all the same, in case it triggers another idea altogether.
    Thanks very much
    Regards
    Swati

  • InitialContext Class Loader

    Hi all,
    We are experiencing a strange behaviour of the Application Class Loader. Our main issue is that if we deploy 2 applications using our code, the first application is okay, and the second application fails its loading. During the loading, we instantiate a customized InitialContextFactory (two times at all: one time per application). As a result, we have a ClassCastException in our customized InitialContext. Above a more detailed explanation of what happen. To sum up, we think that our InitialContextFactory is loaded by a master class loader, only one time for the 2 applications, and that the second application reaches the customized InitialContextFactory instantiated for the first application, so the classes loaded for the second application are not compatible.
    Details:
    - Each Application create a new InitialContext with the parameter "java.naming.factory.initial" equals to "com.test.CustomInitialContextFactory".
    - In the class com.test.CustomInitialContextFactory we access to other code from our application, which are passed to the context factory by the environment hashtable. In the method public javax.naming.Context getInitialContext(java.util.Hashtable env), we get some parameters from the env parameter like that: CustomObject o = (CustomObject)env.get("com.test.customObject");
    When the first application launches, it works very well.
    When the second application launches, it fails with a ClassCastException on the class com.test.CustomObject. We think that the class com.test.CustomObject is not loaded by the good class loader so it throws a ClassCastException.
    Thank you for your help

    We have found how the JNDI layer builds the specified context factory:
              ClassLoader cl = (ClassLoader) AccessController.doPrivileged(
                   new PrivilegedAction() {
                   public Object run() {
                        return Thread.currentThread().getContextClassLoader();
    But OC4J has specific Thread ClassLoader: this is the cause of all our problem. So there is a solution: create a specific context factory which calls the good class loader to load the context factory.
    Bye

  • ClassCastException in PersistenceManager.newQuery(Extent)

    The event described below looks like a Kodo issue:
    Let pm be a PersistenceManager,
    Extent e = pm.getExtent(<some class>, true);
    pm.newQuery(e);
    The last statement aborts with a JDOException containing a
    ClassCastException mentioning the class
    com.solarmetric.kodo.runtime.CacheAwareExtent, which is probably the
    runtime type of e. The Query factory implementation seems to assume
    that e should be something else.
    Maybe newQuery(Extent) is simply not implemented, so newQuery(Object)
    is invoked spuriously, and thus the argument is expected to be a
    precompiled query?

    Abe White wrote:
    Maybe newQuery(Extent) is simply not implemented, so newQuery(Object)
    is invoked spuriously, and thus the argument is expected to be a
    precompiled query?That would certainly be true if you're not using Kodo 2.3; all previous
    versions of Kodo implemented the PFD, which didn't have the newQuery(Extent)
    method.
    If you are using 2.3, could you please post the stack trace from the
    cast exception?Sorry, I forgot to add that I used 2.2.6. I will try 2.3 now. Thank you.

  • ClassCastException by using deployed resource adapter

    Dear community team,
    I try to create an connection for my web application (war file) running on SAP Web Application Server to access an enterprise information system (Apache JackRabbit) by using JCA and deployed resource adapter. The resource adapter "jackrabbit-jca-1.3.3.rar " is provided Apache Jackrabbit.
    http://jackrabbit.apache.org/downloads.cgi
    I changed some deployment descriptor configuration and deployed it successfully by using Deployment Tools. With the Visual Administrator I also could check the JNDI object and finded an entry in connector container.
    The JNDI lookup worked fine and it returned a object type "JCARepositoryHandle" (I could analyse its type and attributes in debugging modus).If I tried to cast the object "JCARepositoryHandle", I got an ClassCastException.
    Do you have any adoption why I only saw the returned object "JCARepositoryHandle" in debugging modus but it wasnt possible cast and to use it.
    If you need any more information, please let me know.
    Thanks for your support.
    PS: Please have also a look in the attached source an configuration files:
    Java servlet class
    ===================================================================
    Connection connection = null;
          Context initctx = null;
             try {
              //get the initial JNDI context
              Hashtable env = null;
              initctx = new InitialContext();
             // perform JNDI lookup to get the connection factory
             JCARepositoryHandle rep = (JCARepositoryHandle)initctx.lookup("deployedAdapters/jcr/Repository/shareable/jcr/Repository");
    connector-j2ee-engine.xml
    ===================================================================
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE connector-j2ee-engine SYSTEM 'connector-j2ee-engine.dtd'>
    <connector-j2ee-engine>
         <jndi-name>jcr/Repository</jndi-name>
         <pool-params>
              <max-connections-number>10</max-connections-number>
              <max-time-to-wait-connection>120</max-time-to-wait-connection>
              <expiration-control>
                   <connection-lifetime>900</connection-lifetime>
                   <run-cleanup-thread>300</run-cleanup-thread>
              </expiration-control>
         </pool-params>
    </connector-j2ee-engine>
    ra.xml
    ===================================================================
    <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE connector PUBLIC
            '-//Sun Microsystems, Inc.//DTD Connector 1.0//EN'
            'http://java.sun.com/dtd/connector_1_0.dtd'>
        <connector>
          <display-name>Jackrabbit JCR Adapter</display-name>
          <vendor-name>Apache.org</vendor-name>
          <spec-version>1.0</spec-version>
          <eis-type>JCR Adapter</eis-type>
          <version>1.6</version>
          <license>
            <description>Not required</description>
            <license-required>false</license-required>
          </license>
          <resourceadapter>
            <managedconnectionfactory-class>org.apache.jackrabbit.jca.JCAManagedConnectionFactory</managedconnectionfactory-class>
            <connectionfactory-interface>javax.jcr.Repository</connectionfactory-interface>
            <connectionfactory-impl-class>org.apache.jackrabbit.jca.JCARepositoryHandle</connectionfactory-impl-class>
            <connection-interface>javax.jcr.Session</connection-interface>
            <connection-impl-class>org.apache.jackrabbit.jca.JCASessionHandle</connection-impl-class>
            <transaction-support>XATransaction</transaction-support>
            <config-property>
              <config-property-name>HomeDir</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
              <config-property-value>C:/temp/repository</config-property-value>
            </config-property>
            <config-property>
              <config-property-name>ConfigFile</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
              <config-property-value>C:/temp/repository/repository.xml</config-property-value>
            </config-property>
            <reauthentication-support>false</reauthentication-support>     
          </resourceadapter>
        </connector>

    The reason for the ClassCastException was the class loader issue.

  • Casting to an abstract class from a different classloader

    I have a class Special that extends an abstract class Base. In my code I use a URLClassLoader to load the class Special and I then want to cast Special to Base. If I do this I get a ClassCastException because the classes are loaded from different classloaders. I can't have the URLClassLoader and the class that performs the cast extend a parent ClassLoader that knows about the Base class. What I want to be able to do is something like this:
    URLClassLoader loader = new URLClassLoader(codebase, null);
    Class baseClass = loader.loadClass(className);
    Base baseObj = (Base)baseClass.newInstance();
    I have seen some post that suggest I can achieve this using Reflection but I am not sure how to go about this. Any help would be appreciated.
    Thanks
    Jim.

    Thanks for your help so far but I still can't do the casting, consider this example:
    //Base.java
    package classTest;
    public interface Base
         public abstract void execute();
    //ConcBase.java
    package classTest;
    public class ConcBase implements Base
         public void execute()
              System.out.println("execute in ConcBase called");
    I compile these files and jar them into work.jar
    I now have my application:
    //Test.java
    import java.net.*;
    import java.io.*;
    import classTest.*;
    public class Test
    public static void main(String[] args)
              Test t = new Test();
              t.test();
         public void test()
              try
                   File file = new File("D:/Projects/classloadTest/work.jar");
                   URL[] codebase = {file.toURL()};
                   ClassLoader ccl = getClass().getClassLoader();
                   ccl.loadClass("classTest.Base");
                   URLClassLoader ucl = new URLClassLoader(codebase,ccl);
                   Class conClass = ucl.loadClass("classTest.ConcBase");
                   classTest.Base b = (classTest.Base)conClass.newInstance();
                   b.execute();
              catch(Exception t)
                   System.out.println("thowable caught");
                   t.printStackTrace(System.out);
    I compile this and run it with this command:
    java -classpath D:\Projects\classloadTest\work.jar;. Test
    This runs as I would expect, however I have set the parent class loader of my custom URLClassLoader to the one that does the cast, this means that Base and ConcBase are both being picked up by the application class loader as my custom class loader delegates to its parent. This is the current behaviour I have in my proper application and it is causing problems, I don't want the class that implements Base to delegate to any class on the main applications classpath. If I change the line:
    URLClassLoader ucl = new URLClassLoader(codebase,ccl);
    In Test.java to:
    URLClassLoader ucl = new URLClassLoader(codebase,null);
    I get a ClassCastException, this is because the class that does the cast (Test) loads Base from it's classpath and ConcBase is loaded from the URLClassLoader. After spending more time looking at this problem I don't think there is anyway to resolve but if anyone thinks there is please tell me.
    Many thanks
    Jim.

  • EJB3 Stateful:ClassCastException when casting the object returned in lookup

    Hi,
    I'm developing a web application that make use of EJB3 stateless and stateful beans. The application server is the Websphere Application Server 6.1.0.15 with the EJB3 Feature Pack installed and the web server is the IBM HTTP Server running in another machine.
    The problem I'm facing is that for every stateful bean after the lookup, it throws a ClassCastExcption when casting the object returned. See part of the log below.
    [7/13/08 3:15:48:869 CDT] 0000001c SystemErr R java.lang.ClassCastException: cannot cast class com.spcs.dsa.ejb.authenticationmanager._AuthenticationManager_Stub to class com.spcs.dsa.ejb.authenticationmanager._AuthenticationManager_Stub
    at com.ibm.rmi.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:396)
    at com.spcs.dsa.ejb.client.DsaEjbClient.getAuthenticationRemote(DsaEjbClient.java:37)
    at com.spcs.dsa.action.NewCardAction.execute(NewCardAction.java:85)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    Please notice in the log above that the cast was done for the correct class.
    Here is the java code:
    AuthenticationManager auth =
    (AuthenticationManager) javax.rmi.PortableRemoteObject.narrow(
    context.lookup("com.spcs.dsa.ejb.authenticationmanager.AuthenticationManager"),
    AuthenticationManagerStub.class);
    This problem doesn't happen for statless beans. If you simply change the class to be stateless, this problem stop to happen.
    If you run this code in a stand alone program, this problem doesn't happen. It only happen when running in the web server.
    Does anybody know what should be done to solve this problem ??
    Thanks,
    Marcos.

    I'm not familiar with any specifics of IBM's implementation but from an EJB 3 spec perspective there is no need to use PortableRemoteObject.narrow() if you're retrieving an EJB 3.0 Remote Business interface, regardless of the component type( stateful vs. stateless). In addition, the "_Stub" class should never have to be part of your client programming model. That should be hidden within the vendor's implementation, if present at all.
    If AuthenticationManager is the Remote 3.0 Business Interface
    @Remote
    public interface AuthenticationManager {
    your client lookup should be :
    AuthenticationManager am = (AuthenticationManager) context.lookup("...");

  • ClassCastException using Dataobjects

    Hello,
    at first, I am not sure if I am in the right forum.
    We have developed an application which is using a Stateless SessionBean for getting data (countries) out of the database (using eclipselink).
    On filling a list of select items we are getting a ClassCastException although the classes are identical (same package, same class name)
    My first Taskflow just checks some conditions and if everything is right it calles Tasklow A or Taskflow B.
    Taskflow A now shows some screens and on one screen, the controller (my managed bean) reads the countries out of the database using the Stateless SessionBean.
    The interface of this SessionBean method is java.util.List<ICountry) bean.getListOfCountries().
    The managed bean now tries to convert this list of Country objects into a list of SelectItems for displaying a selectOneChoice component.
    List<SelectItem> countries = new ArrayList<SelectItem>();
    List<ICountry> listOfCountries = statelessSessionBean.getListOfCountries();
    for (int i=0;i<listOfCountries.size();i++) {
    ICountry country = listOfCountries.get(i); <----- the ClassCastException occurs
    SelectItem item = new SelectItem();
    item.setLabel(country.getIsoCode());
    item.setValue(country.getIsoCode());
    item.setDescription(resourceBundle.getString("country." + country.getIsoCode()));
    countries.add(item);
    The data is read from the database and passed to the managed bean correctly. I have a List of ICountry objects in my managed bean.
    When I now try to cast one of these objects to the Interface ICountry, the system throws a ClassCastException my.data.ICountry cannot be cast to my.data.ICountry
    As far as I found out, the classes are loaded by different classloaders.
    GenericClassLoader
    ChangeAwareClassLoader
    I have no idea, how to change the project settings to overcome this problem.
    My Application is divided into several projects
    Application: TestApp (ear)
    Project: TestApp (contains a single JSF with a region for the outer Taskflow) (war)
    Controller1 (contains the outer Taskflow) (ADF Shared Library)
    Controller2 (contains the inner Taskflows which does the work) (ADF Shared Library)
    DataObjects(contains my interfaces and data objects ICountry, Country) (jar)
    SB_Environment (contains the stateless session bean) (ejb-jar)
    Can anyone give me a hint?
    Environment: Standard JDeveloper 11.1.1.4.0
    Regards
    Edmund

    This release notes for XSQL Servlet 1.0.1 contain the following NOTE:
    At this time, the <xsql:insert-param> and <xsql:insert-request> action elements depend on the Oracle JDBC Driver because they depend on the Oracle XML SQL Utility for Java which at present exhibits this restriction. A future release of Oracle XML SQL will remove this current restriction.
    The same holds for the <xsql:update-request> and <xsql:delete-request>. The underlying problem is with the XML SQL Utility which currently works fine with any driver for reading data, but fails to insert, update, or delete with drivers other than Oracle. This restriction has already been fixed in-house and will be available as part of the next release of the XML SQL Utility put onto OTN. If the XSQL Servlet is used with that upcoming fixed version of the xsu12.jar for the XML SQL Utility, you will no longer hit this problem.

  • ClassCastException on XmlLoader.load

    I am making this call to load my document. The parse seems to happen ok. But
    then...
    TestsDocument doc =
    ( TestsDocument ) XmlLoader.parse ( pFile );
    I get a classcastexception, the returned class is of type com.bea.xbean.values.XmlAnyTypeImpl
    What am I doing wrong?

    It actually turned out that when I used the factory inside of my document, everything
    parses fine. If I use just the xmlloader, the exception is thrown.
    "Jerald Pratt" <[email protected]> wrote:
    >
    Brian,
    I had a similar problem and I'm trying to remember what it was. I believe
    the
    problem turned out to be with my XML file or XML Schema file and not
    the code.
    Not having a valid XML file and/or XML Schema file will cause a variety
    of unexpected
    problems. You should use a tool that will validate both types of XML
    files before
    running further tests. I use XML Spy from www.altova.com which works
    great.
    Jerald
    "brian" <[email protected]> wrote:
    I am making this call to load my document. The parse seems to happen
    ok. But
    then...
    TestsDocument doc =
    ( TestsDocument ) XmlLoader.parse ( pFile );
    I get a classcastexception, the returned class is of type com.bea.xbean.values.XmlAnyTypeImpl
    What am I doing wrong?

  • Sun Role Manager 4.1 – WebLogic server not getting started

    We are using Sun RM 4.1, WebLogic 10.3
    In the recent past we are seeing a strange issue only in our production environment. When we wanted to restart the server, the server doesn’t come up at the first time, it fails will below listed errors, and when started second time it comes up.
    Any help is greatly appreciated!
    Error message:
    User defined listener org.springframework.web.context.ContextLoaderListener failed: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.String.
    -AND-
    Unable to set the activation state to true for the application 'rbacx'
    Detailed Log:
    ####<Sep 26, 2011 8:53:19 PM EDT> <Info> <ServletContext-/rbacx> <srmprod> <SRM_MT_SRMPROD_7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1317084799663> <BEA-000000> <Initializing Spring root WebApplicationContext>
    ####<Sep 26, 2011 8:53:36 PM EDT> <Warning> <HTTP> <srmprod> <SRM_MT_SRMPROD_7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1317084816581> <BEA-101162> <*User defined listener org.springframework.web.context.ContextLoaderListener failed: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.String.*
    java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.String
         at org.springframework.beans.factory.support.AbstractBeanDefinition.getBeanClassName(AbstractBeanDefinition.java:364)
         at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:377)
         at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1135)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:522)
         at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1174)
         at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:754)
         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:422)
         at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
         at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
         at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
         at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
         at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:465)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(Unknown Source)
         at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:175)
         at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1784)
         at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2999)
         at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371)
         at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468)
         at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
         at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
         at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
         at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
         at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
         at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
         at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:16)
         at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
         at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
         at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
         at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
         at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
         at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
         at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
         at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
         at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
         at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
         at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
         at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    >
    ####<Sep 26, 2011 8:53:36 PM EDT> <Info> <Deployer> <srmprod> <SRM_MT_SRMPROD_7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1317084816585> <BEA-149059> <Module rbacx of application rbacx is transitioning from STATE_ADMIN to STATE_PREPARED on server SRM_MT_SRMPROD_7003.>
    ####<Sep 26, 2011 8:53:36 PM EDT> <Info> <ServletContext-/rbacx> <srmprod> <SRM_MT_SRMPROD_7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1317084816589> <BEA-000000> <Closing Spring root WebApplicationContext>
    ####<Sep 26, 2011 8:53:36 PM EDT> <Info> <ServletContext-/rbacx> <srmprod> <SRM_MT_SRMPROD_7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1317084816589> <BEA-000000> <Shutting down log4j>
    ####<Sep 26, 2011 8:53:36 PM EDT> <Info> <Deployer> <srmprod> <SRM_MT_SRMPROD_7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1317084816611> <BEA-149060> <Module rbacx of application rbacx successfully transitioned from STATE_ADMIN to STATE_PREPARED on server SRM_MT_SRMPROD_7003.>
    ####<Sep 26, 2011 8:53:36 PM EDT> <Error> <Deployer> <srmprod> <SRM_MT_SRMPROD_7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1317084816611> <BEA-149231> <*Unable to set the activation state to true for the application 'rbacx'.*
    weblogic.application.ModuleException:
         at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1373)
         at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468)
         at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
         at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
         at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
         at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
         at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
         at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
         at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:16)
         at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
         at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
         at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
         at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
         at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
         at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
         at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
         at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
         at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
         at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
         at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
         at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.String
         at org.springframework.beans.factory.support.AbstractBeanDefinition.getBeanClassName(AbstractBeanDefinition.java:364)
         at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:377)
         at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1135)
         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:522)
         at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1174)
         at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:754)
         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:422)
         at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
         at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
         at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
         at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
         at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:465)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(Unknown Source)
         at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:175)
         at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1784)
         at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2999)
         at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371)
         at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468)
         at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
         at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
         at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
         at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
         at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
         at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
         at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:16)
         at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
         at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
         at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
         at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
         at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
         at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
         at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
         at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
         at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
         at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
         at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
         at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    >
    ####<Sep 26, 2011 8:53:36 PM EDT> <Info> <Deployer> <srmprod> <SRM_MT_SRMPROD_7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1317084816612> <BEA-149059> <Module rbacx of application rbacx is transitioning from STATE_PREPARED to STATE_NEW on server SRM_MT_SRMPROD_7003.>
    ####<Sep 26, 2011 8:53:36 PM EDT> <Info> <Deployer> <srmprod> <SRM_MT_SRMPROD_7003> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1317084816612> <BEA-149060> <Module rbacx of application rbacx successfully transitioned from STATE_PREPARED to STATE_NEW on server SRM_MT_SRMPROD_7003.>

    Thiago, Thanks for your response.
    For your 1st answer - this application is in production for couple of years and we are seeing this error only for past few days. do you still think it might be a deployment issue.
    For your 2nd Ans: this seems to be related to our env. can you give some more details on this as to what exactly needs to be done. sorry I've not worked much on WebLogic.
    Below is the exception stack trace i got from stdout log, please see if you get any clue out of this. this seems to be some class loader issue but i don't know the fix. I have also seen in different forums that this might be a defect in Quartz Scheduler. We are getting a NoClassDefFoundError but the specified class file is in WEB-INF\lib dir, and also the missing class file name in the error is different when each time this error occurs, in the sense, this time the error is com.vaau.rbacx.scheduling.executor.rme.RoleStatusAndMembershipMaintenanceJobExecutor not found and when we restarted the server next time it gives org/springframework/orm/ibatis/SqlMapClientTemplate$10 is not found and so on.
    Exception in thread "QuartzScheduler_Worker-2" java.lang.NoClassDefFoundError: com/vaau/rbacx/scheduling/executor/rme/RoleStatusAndMembershipMaintenanceJobExecutor
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.RoleStatusAndMembershipMaintenanceJob.getJobExecutor(RoleStatusAndMembershipMaintenanceJob.java:16)
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.AbstractQuartzJob.execute(AbstractQuartzJob.java:50)
         at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
    Caused by: java.lang.ClassNotFoundException: com.vaau.rbacx.scheduling.executor.rme.RoleStatusAndMembershipMaintenanceJobExecutor
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:283)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:256)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:54)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:176)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:35)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         ... 4 more
    Exception in thread "QuartzScheduler_Worker-3" java.lang.NoClassDefFoundError: com/vaau/rbacx/scheduling/executor/workflow/WorkflowSLAJobExecutor
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.WorkflowStepSLAJob.getJobExecutor(WorkflowStepSLAJob.java:17)
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.AbstractQuartzJob.execute(AbstractQuartzJob.java:50)
         at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
    Caused by: java.lang.ClassNotFoundException: com.vaau.rbacx.scheduling.executor.workflow.WorkflowSLAJobExecutor
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:283)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:256)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:54)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:176)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:35)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         ... 4 more
    Exception in thread "QuartzScheduler_Worker-0" java.lang.NoClassDefFoundError: com/vaau/rbacx/scheduling/executor/workflow/WorkflowSLAJobExecutor
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.WorkflowStepSLAJob.getJobExecutor(WorkflowStepSLAJob.java:17)
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.AbstractQuartzJob.execute(AbstractQuartzJob.java:50)
         at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
    Exception in thread "QuartzScheduler_Worker-1" java.lang.NoClassDefFoundError: com/vaau/rbacx/scheduling/executor/workflow/WorkflowSLAJobExecutor
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.WorkflowStepSLAJob.getJobExecutor(WorkflowStepSLAJob.java:17)
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.AbstractQuartzJob.execute(AbstractQuartzJob.java:50)
         at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
    Exception in thread "QuartzScheduler_Worker-4" java.lang.NoClassDefFoundError: com/vaau/rbacx/scheduling/executor/rme/RoleStatusAndMembershipMaintenanceJobExecutor
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.RoleStatusAndMembershipMaintenanceJob.getJobExecutor(RoleStatusAndMembershipMaintenanceJob.java:16)
         at com.vaau.rbacx.scheduling.manager.providers.quartz.jobs.AbstractQuartzJob.execute(AbstractQuartzJob.java:50)
         at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)

  • Reflection E ParametrizedType

    public class GenericHibernateDAO<T,ID extends Serializable> implements GenericoDAO<T,ID> {
        private Class<T> persistentClass;
        private Session session;
    public GenericHibernateDAO() {
    this.persistentClass = (Class<T> ) ((ParameterizedType) getClass()
    .getGenericSuperclass()).getActualTypeArguments()[0];
    }I've found this surfing hibernate documentation.. I've tried to use it but it doesn't work!! Here is the error message..
    Exception in thread "main" java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedTypeI really don't know how to solve the problem as I never worked with Reflection
    please, help me!! Thank you

    well... I've found the error...
    reflection on generic parameters can happen only if you define parameters types at compile time...
    so... I've made the GenericHibernateDAO abstract and for each entity I've defined a subclass like this:
    public class ArticoloHibernateDAO extends GenericHibernateDAO<ArticoloComponent,Integer>now it works perfectly!!

  • Searching problems when implementing my own repository manager

    Hi there,
    i've serious problems to get the search fuctionality for my own repository manager running. I'm using the 'new', Netweaver-based api.
    Always if I'm launching a search I receive a ClassNotFoundException in the follwing context:
    #1.5#172.16.17.102:7CF6B6:FF73BDDB07:-36E7#1097161124650#com.sapportals.wcm.WcmException#irj#com.sapportals.wcm.WcmException.WcmException(118)#System#0#####System_Thread_37##0#0#Error##Plain###invalid manager class: com.sapportals.wcm.repository.runtime.ManagerAdapter java.lang.ClassCastException: invalid manager class: com.sapportals.wcm.repository.runtime.ManagerAdapter
         at com.sapportals.wcm.repository.RMAdapter.<init>(RMAdapter.java:48)
         at com.sapportals.wcm.repository.runtime.CmSystem.getResourcesImpl(CmSystem.java:1134)
         at com.sapportals.wcm.repository.runtime.CmSystem.getResources(CmSystem.java:356)
         at com.sapportals.wcm.repository.runtime.CmAdapter.getResources(CmAdapter.java:153)
         at com.sapportals.wcm.service.indexmanagement.retrieval.trex.TrexSearchIndexCollection.getSearchResults(TrexSearchIndexCollection.java:1126)
         at com.sapportals.wcm.service.indexmanagement.retrieval.search.SearchSession.getSearchResults(SearchSession.java:293)
         at com.sapportals.wcm.service.indexmanagement.retrieval.search.FederatedSearchSession.getSearchResults(FederatedSearchSession.java:111)
         at com.sapportals.wcm.rendering.collection.SearchRendererStatus.refresh(SearchRendererStatus.java:180)
         at com.sapportals.wcm.rendering.collection.LightCollectionRenderer.createStatus(LightCollectionRenderer.java:718)
         at com.sapportals.wcm.rendering.collection.LightCollectionRenderer.renderAll(LightCollectionRenderer.java:498)
         at com.sapportals.wcm.rendering.control.cm.NeutralControl.render(NeutralControl.java:141)
         at com.sapportals.wcm.rendering.layout.cm.SimpleLayoutController.render(SimpleLayoutController.java:39)
         at com.sapportals.wcm.rendering.control.cm.WdfProxy.render(WdfProxy.java:1229)
         at com.sapportals.wdf.layout.HorizontalLayout.renderControls(HorizontalLayout.java:41)
         at com.sapportals.wdf.stack.Pane.render(Pane.java:153)
         at com.sapportals.wdf.stack.PaneStack.render(PaneStack.java:67)
         at com.sapportals.wdf.layout.HorizontalLayout.renderPanes(HorizontalLayout.java:64)
         at com.sapportals.wdf.stack.Pane.render(Pane.java:156)
         at com.sapportals.wdf.stack.PaneStack.render(PaneStack.java:67)
         at com.sapportals.wdf.layout.HorizontalLayout.renderPanes(HorizontalLayout.java:64)
         at com.sapportals.wdf.stack.Pane.render(Pane.java:156)
         at com.sapportals.wdf.stack.PaneStack.render(PaneStack.java:67)
         at com.sapportals.wdf.layout.HorizontalLayout.renderPanes(HorizontalLayout.java:64)
         at com.sapportals.wdf.stack.Pane.render(Pane.java:156)
         at com.sapportals.wdf.stack.PaneStack.render(PaneStack.java:67)
         at com.sapportals.wdf.ControllerDynPage.executeEvent(ControllerDynPage.java:338)
         at com.sapportals.wdf.BaseDynPage.onWdfEvent(BaseDynPage.java:132)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:172)
         at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:101)
         at com.sapportals.htmlb.page.PageProcessorServlet.handleRequest(PageProcessorServlet.java:64)
         at com.sapportals.htmlb.page.PageProcessorServlet.doPost(PageProcessorServlet.java:25)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sapportals.wcm.app.servlet.WcmHtmlbBaseServlet.service(WcmHtmlbBaseServlet.java:81)
         at com.sapportals.wcm.portal.proxy.PCProxyServlet.service(PCProxyServlet.java:280)
         at com.sapportals.portal.prt.core.broker.ServletComponentItem$ServletWrapperComponent.doContent(ServletComponentItem.java:110)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
         at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:143)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:195)
         at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:209)
         at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:589)
         at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:143)
         at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:195)
         at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:636)
         at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:209)
         at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:147)
         at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:789)
         at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:644)
         at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:305)
         at com.inqmy.services.httpserver.server.Response.handle(Response.java:165)
         at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1133)
         at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
         at com.inqmy.core.cluster.impl0.ParserRunner.run(ParserRunner.java:35)
         at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)
    I'm using EP 6.0 SP2 directly installed from the CD
    #51 020 549 without explicit installation of any patch or hotfix; the portal itself shows the version number 6.0.2.0.0 (implementation version 6.2.0.0.200310100950).
    I switched on logging but I never reached the INamespaceManager's methods isQueryPropertyNameUnderstood() or getQueryBuilder().
    So I figure that this might a problem of my (too old?) unpatched version of EP6????
    What can I do to get the serach func running?
    Thanks for your support,
    Daniel

    Hi Karsten,
    thanks for your annotation.
    Does it mean that I <b>HAVE TO</b> apply at least Patch 4
    to get the search working or <b>SHOULD</b> I apply the patch to be up-to-date and look for an error in my code???
    Thanx a lot,
    best regards,
    Daniel

  • SerialOracleClob usage in weblogic server 8.1

    Hi,
    An application is deployed successfully on weblogic 7.0 server but there was a
    ClassCastException for SerialOracleClob class when the same was deployed on 8.1
    server.Also when I tried to compile the source code using weblogic.jar of 8.1,i
    got the following compilation error which did not occur for 7.1 weblogic jar.
    cannot resolve symbol
    [javac] symbol : method getAsciiOutputStream ()
    [javac] location: class weblogic.jdbc.rmi.SerialOracleClob
    [javac] os=oclob.getAsciiOutputStream();
    cannot resolve symbol
    [javac] symbol : method length ()
    [javac] location: class weblogic.jdbc.rmi.SerialOracleClob
    [javac] sClobValue=clobTemp.getSubString
    (1,(int)clobTemp.length());
    cannot resolve symbol
    [javac] symbol : method getSubString (int,int)
    [javac] location: class weblogic.jdbc.rmi.SerialOracleClob
    [javac] sClobValue=clobTemp.getSubString
    (1,(int)clobTemp.length());
    Where can i find some reference to the usage of SerialOracleClob in 8.1 and what
    is the workaround for this problem.
    Thanks in advance.
    Snehal

    I would suggest posting this in the jdbc newsgroup.
    -- Rob
    Snehal wrote:
    Hi,
    An application is deployed successfully on weblogic 7.0 server but there was a
    ClassCastException for SerialOracleClob class when the same was deployed on 8.1
    server.Also when I tried to compile the source code using weblogic.jar of 8.1,i
    got the following compilation error which did not occur for 7.1 weblogic jar.
    cannot resolve symbol
    [javac] symbol : method getAsciiOutputStream ()
    [javac] location: class weblogic.jdbc.rmi.SerialOracleClob
    [javac] os=oclob.getAsciiOutputStream();
    cannot resolve symbol
    [javac] symbol : method length ()
    [javac] location: class weblogic.jdbc.rmi.SerialOracleClob
    [javac] sClobValue=clobTemp.getSubString
    (1,(int)clobTemp.length());
    cannot resolve symbol
    [javac] symbol : method getSubString (int,int)
    [javac] location: class weblogic.jdbc.rmi.SerialOracleClob
    [javac] sClobValue=clobTemp.getSubString
    (1,(int)clobTemp.length());
    Where can i find some reference to the usage of SerialOracleClob in 8.1 and what
    is the workaround for this problem.
    Thanks in advance.
    Snehal

  • Java.lang.thread exception while using Xalan 2.0 in WLS 6.0

    Hi, I'm trying to use Xalan 2.0 in a servlet hosted by WLS. Ive
    modified Xalan's SimpleTransform sample to be a servlet. I
    create a Transformer with the .xsl, then call tranform() to
    print the tranformed xml to the response stream. The xml is
    tranformed correctly, but it throws a java.lang.thread
    exception. The standalone Xalan sample doesn't do this. Anyone
    else seen this problem?
    Here's the code of interestest, I apologize if its not formatted very well:
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException
         PrintWriter out = res.getWriter();
         res.setContentType("text/html");
         out.println("<html><head><title>XalanTest<title></head>");
         out.println("<body><h1>XalanTest</h1>");
         try{
         TransformerFactory tFactory = TransformerFactory.newInstance();
         StreamSource ss = new StreamSource("file:\\\\My-path\\birds.xsl");
         Transformer transformer = tFactory.newTransformer(ss);
         StreamResult SR = new StreamResult(out);
         transformer.transform(new StreamSource("file:\\\\My-path\\birds.xml"), SR );
         catch(Exception e){
         out.println("<p>" + e.toString() + "</p>");
         e.printStackTrace(out);
         out.println("<p>Exception</p>");
              out.println("</body></html>");

    It also looks like the workaround suggested does not work.
    I put the following code as workaround:
         response.setContentType("text/html");
         response.setHeader ("Pragma", "no-cache");
         Transformer transformer;
         TransformerFactory factory = TransformerFactory.newInstance();
         String stylesheet = "config\\closs\\applications\\webroot\\jsp\\example\\Load2.xsl";
         String sourceId = "config\\closs\\applications\\webroot\\jsp\\example\\Load2.xml";
         String outputFile = "config\\closs\\applications\\webroot\\jsp\\example\\Load2.html";
         String outputDirectFile = "config\\closs\\applications\\webroot\\jsp\\example\\Load2_Direct.html";
         try
              PrintWriter fout = new PrintWriter (new FileOutputStream (outputFile));
              OutputStream os = new ByteArrayOutputStream();
              transformer = factory.newTransformer(new StreamSource(stylesheet));
              transformer.transform(new StreamSource(sourceId), new StreamResult(outputDirectFile));
              transformer.transform(new StreamSource(sourceId), new StreamResult(os));
              os.flush ();
              os.close();
              out.print(os.toString());
              fout.print (os.toString ());
              fout.flush ();
              fout.close ();
         catch (Exception e)
              // Error Handler
         e.printStackTrace();
    The two .html files produced look exactly the same, which is good.
    However, the screen output to my html browser (Internet Explorer 5.50 sp1) produces
    different output.
    That is strange, but that shows that this bug does not have a known workaround
    "Rabinowitz" <[email protected]> wrote:
    >
    I have the same problem with java sun xml parser (jaxp 1-1)
    It is interesting to know that all this perfectly works under weblogic
    5.1, so
    I cannot migrate my application to 6.0
    So, the functionality of weblogic 6.0 degraded since 5.1.
    I cannot buy the explanation that that is not bea's fault, because it
    perfectly
    worked with the same version of xml parser.
    Now, their customer support is saying they have not decided whether this
    is a
    bug or a feature.
    Interesting to know that degradation of functionality could be a feature!
    It is now June 21, 3 months since this bug was reported, sp2 was shipped
    since
    that time, and this bug is still there.
    "Chuck H. Zhao" <[email protected]> wrote:
    I am having the exact same problem you are having. If we analyze the
    stack
    trace:
    javax.xml.transform.TransformerException: java.lang.Thread
    at
    org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
    ava:1212)
    at
    org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2894)
    at java.lang.Thread.run(Thread.java:484)
    java.lang.ClassCastException: java.lang.Thread
    at
    weblogic.servlet.internal.ResponseHeaders.setDateHeader(ResponseHeaders.java
    :273)
    at
    weblogic.servlet.internal.ServletResponseImpl.setDateHeader(ServletResponseI
    mpl.java:449)
    at
    weblogic.servlet.internal.ServletResponseImpl.writeHeaders(ServletResponseIm
    pl.java:637)
    at
    weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutputStreamI
    mpl.java:124)
    at
    weblogic.servlet.internal.WLOutputStreamWriter.flush(WLOutputStreamWriter.ja
    va:124)
    at java.io.PrintWriter.flush(PrintWriter.java:120)
    at
    org.apache.xalan.serialize.SerializerToXML.flushWriter(SerializerToXML.java:
    1431)
    at
    org.apache.xalan.serialize.SerializerToXML.endDocument(SerializerToXML.java:
    629)
    at
    org.apache.xalan.transformer.ResultTreeHandler.endDocument(ResultTreeHandler
    ..java:180)
    at
    org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
    ava:1194)
    at
    org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:2894)
    at java.lang.Thread.run(Thread.java:484)
    What happened is: to support incremental output, Xalan-Java performs
    the
    transformation in a second thread while building the source tree inthe
    main
    thread. So Transformer.transform() creates a new thread to run the
    transformer.run() method, which will write to weblogic's internal
    ServletOutputStreamImpl, and in the end calls flush() on it.
    ServletOutputStreamImpl determines that the headers haven't been written
    yet, and the headers need to be written before any servlet output, so
    it
    calls ServletResponseImpl.writeHeaders(), which eventually calls
    ResponseHeaders.setDateHeader(). The last method assumes the thread
    is
    weblogic's internal ExecuteThread and tries to cast the thread as such,
    maybe to get the date from it. But the thread is a plain java.lang.Thread
    created by xalan, thus we get the java.lang.ClassCastException:
    java.lang.Thread
    This suggests a second workaround: call ServletResponse.flushBuffer()
    before any xalan stuff, which will force the headers to be written in
    weblogic's ExecuteThread. The shortcoming of this is that this will
    cause
    the response to be commited, and if the xalan stuff throws exception
    you can
    not forward to another page.
    Another thing is that xalan should not directly call flush() on
    ServletOutputStreamImpl at all. I will report it to xalan and see if
    they
    consider that a bug. If they fix that then we have a third workaround:
    set
    the buffer size of ServletResponse big enough to accomodate everything
    including the xslt outputs, so the ServletOutput does not need to be
    flushed
    during xalan code.
    I do not consider this problem a weblogic bug, since the servlet container
    has to right to expect any thread inside it to be its own. Serlvet2.2
    spec
    says:
    1.2 What is a Servlet Container?
    A Servlet Container may place security restrictions on the environment
    that
    a servlet executes in. In
    a Java 2 Platform Standard Edition 1.2 (J2SE) or Java 2 Platform Enterprise
    Edition 1.2 (J2EE)
    environment, these restrictions should be placed using the permission
    architecture defined by Java 2
    Platform. For example, high end application servers may limit certain
    action, such as the creation of
    a Thread object, to insure that other components of the container are
    not
    negatively impacted.
    Weblogic should explicitly warn the developers that creating threads
    inside
    the servlet container may have adverse effects, the same kind of problem
    we
    are having. (or maybe they already did somewhere in their documentation?)
    On the xalan side, I would suggest them to either give the option to
    switch
    the two threads, or to give the option to buffer the output and write
    it out
    in the main thread, which is exactly what you did in your first workaround.
    Any comments or thoughts on the subject are welcome.
    -- Chuck Zhao
    "MK Parini" <[email protected]> wrote in message
    news:[email protected]...
    I found, what I think to be a bug, and a work-around for it.
    When doing an XSLT Transformation, you must specify a StreamResult
    to which to write the output. I was doing my transformation in
    a
    servlet so I was writing my output to the HttpResponse
    (The variable res is a javax.servlet.http.HttpServletResponse
    object)
    StreamResult htmlTarget = new StreamResult(res.getWriter());
    If I use this, when I perform the transformation using the TRAX
    APIs,
    InputStream xslFile = context.getResourceAsStream(fileName);
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Templates xslTemplates = tFactory.newTemplates(new StreamSource(xslFile));
    transformer = xslTemplates.newTransformer();
    transformer.transform(xmlSource, htmlTarget);
    I receive the ClassCastException from the class
    weblogic.servlet.internal.ResponseHeaders.setDateHeader(ResponseHeaders.java
    :273),
    as seen in my previous posting.
    I discovered, if I write my output to a StringBuffer, and then
    I write
    the StringBuffer to the HttpResponse, I do not get the ClassCastException.
    For example,
    StringWriter myWriter = new StringWriter(2400);
    StreamResult htmlTarget = new StreamResult(myWriter);
    <Same transformation code as above>
    myWriter.close();
    PrintWriter out = res.getWriter();
    out.print(myWriter.toString());
    Is this a bug in the weblogic internal servlet class or am I just
    missing something?
    Also, one concern that I have with the workaround is that it might
    hurt performance.
    Any comments or thoughts on the subject are welcome.

Maybe you are looking for