Firstly I did not need to extend
"org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager",
since I was using
"org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager" as
persistance manager.

So now i am only extending
"org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager" as
follows. Note that there are modifications in code compared to previous
post.

public class CsiOraclePersistenceManager extends OraclePersistenceManager 
{
        private static Logger log =
LoggerFactory.getLogger(OraclePersistenceManager.class);
        
        protected synchronized void storeBundle(NodePropBundle bundle) throws
ItemStateException 
        {
                log.info("Before calling OraclePersistenceManager.storeBundle");
                super.storeBundle(bundle);
                log.info("After calling OraclePersistenceManager.storeBundle");
                log.info("Before calling postStoreBundle");
                postStoreBundle(bundle);
                log.info("After calling postStoreBundle");      
        }
        
        private void postStoreBundle(NodePropBundle bundle)
        {
                try
                {
                        log.info("In postStoreBundle");

                        boolean isNew = bundle.isNew();
                        log.info("Is New: " + isNew);

                        Name nodeTypeName = bundle.getNodeTypeName();
                        String nodeTypeLocalName = nodeTypeName.getLocalName();
                        String nodeTypeNamespace = 
nodeTypeName.getNamespaceURI();
                        log.info("Node Type Local Name: " + 
nodeTypeName.getLocalName());
                        log.info("Node Type Namespace URI: " + 
nodeTypeName.getNamespaceURI());
                        
                        // All is fine uptill here.
                        
                        // As soon as I add "bundle.getPropertyNames()" below, 
I get
"javax.jcr.RepositoryException: Unable to update item: node /" in my client
program
                        Set propertyNames = bundle.getPropertyNames();          
        
                }
                catch(Exception e)
                {
                        e.printStackTrace();
                }
        }

}

Everything is fine untill I add "bundle.getPropertyNames()" in above code, I
see all log messaes in websphere log.
As soon as I add "bundle.getPropertyNames()" I see no log messages added in
"postStoreBundle" method, as if "postStoreBundle" was never called.

and exception trace at client code (using RMI) is:

Exception in thread "main" javax.jcr.RepositoryException: Unable to update
item: node / 
        at
org.apache.jackrabbit.rmi.server.ServerObject.getRepositoryException(ServerObject.java:145)
 
        at
org.apache.jackrabbit.rmi.server.ServerSession.save(ServerSession.java:265) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79) 
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 
        at java.lang.reflect.Method.invoke(Method.java:618) 
        at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:309) 
        at sun.rmi.transport.Transport$1.run(Transport.java:168) 
        at
java.security.AccessController.doPrivileged(AccessController.java:279) 
        at sun.rmi.transport.Transport.serviceCall(Transport.java:164) 
        at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:506) 
        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.handleRequest(TCPTransport.java:838)
 
        at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:912) 
        at java.lang.Thread.run(Thread.java:810) 
        at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown
Source) 
        at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source) 
        at sun.rmi.server.UnicastRef.invoke(Unknown Source) 
        at
org.apache.jackrabbit.rmi.server.ServerXASession_Stub.save(Unknown Source) 
        at
org.apache.jackrabbit.rmi.client.ClientSession.save(ClientSession.java:272) 
        at JackrabbitTest.addContent(JackrabbitTest.java:979) 
        at JackrabbitTest.addContent(JackrabbitTest.java:780) 
        at JackrabbitTest.main(JackrabbitTest.java:188) 

Please help.

Thanks,
KS.


-- 
View this message in context: 
http://jackrabbit.510166.n4.nabble.com/Extend-OraclePersistenceManager-tp3050526p3050929.html
Sent from the Jackrabbit - Dev mailing list archive at Nabble.com.

Reply via email to