jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From freak182 <eman.noll...@gmail.com>
Subject Re: UUID
Date Wed, 16 Sep 2009 10:39:25 GMT

Hello,

it does not fail on the assert becuase i set this before saving:
fileContent.addMixin(JcrConstants.MIX_REFERENCEABLE);
and i wonder why now it is not working? still when i access this:
nodeToRemove.getUUID(); throws an exception.

cheers.


Stefan Guggisberg wrote:
> 
> On Wed, Sep 16, 2009 at 9:19 AM, freak182 <eman.nollase@gmail.com> wrote:
>>
>> Hello,
>>
>> I have problem retreiving the uuid?
>> here is the scenario:
>>
>> when i save the file, here is the code:
>>
>> .................................
>>
>> Node file = folder.addNode(name, "nt:file");
>>            Node fileContent = file.addNode("jcr:content", "nt:resource");
>>            fileContent.addMixin(JcrConstants.MIX_REFERENCEABLE);
>>
>>            session.save();
>>            uuid = fileContent.getUUID();
>>
>> ..this save fine and some metadata save in DB also including the uuid.
>>
>> Now i want to delete the file:
>>
>> Node nodeToRemove = session.getRootNode().getNode(path.substring(1));
>>  String uuid = nodeToRemove.getUUID(); ---> error here
>>                        if (nodeToRemove != null)
>>                        {
>>                            nodeToRemove.remove();
>>                            session.save();
>>
>>                          //
>> jcrFileStorageDao.delete(jcrFileStorageDao.loadByUUID(uuid));
>>                        }
>>
>> javax.jcr.UnsupportedRepositoryOperationException
>>        at org.apache.jackrabbit.core.NodeImpl.getUUID(NodeImpl.java:3040)
> 
> nodeToRemove is probably not mix:referenceable. you can test this by
> adding
> 
> assert(node.isNodeType(JcrConstants.MIX_REFERENCEABLE));
> 
> cheers
> stefan
> 
>>
>> how can i resolve this?
>>
>> thanks a lot.
>> cheers.
>>
>>
>> Christoph Kiehl-3 wrote:
>>>
>>> Michal Hybler wrote:
>>>
>>>> I have this method
>>>>
>>>>                      ws = session.getWorkspace();
>>>>                      manager = ws.getQueryManager();
>>>>                      query = manager.createQuery("select * from
>>>> nt:unstructured where
>>>> jcr:uuid
>>>> = '"+id+"'",Query.SQL);
>>>>                      QueryResult result = query.execute();
>>>>                      NodeIterator it = result.getNodes();
>>>>                      return it.nextNode();
>>>> with Id which I remembered when I insert file into jackrabbit.
>>>>
>>>> after that I run this code
>>>>
>>>> HashMap<String,String> properties = new HashMap<String,String>();
>>>>              try {
>>>>                      PropertyIterator iter = node.getProperties();
>>>>                      while(iter.hasNext()){
>>>>                              Property prop = iter.nextProperty();
>>>>                              if (!prop.getDefinition().isMultiple())
{
>>>>                                      properties.put(prop.getName(),
>>>> prop.getValue().getString());
>>>>                              }
>>>>
>>>>                      }
>>>>                      if (getResNode(node) != null) {
>>>>                              Node resNode = getResNode(node);
>>>>                              iter = resNode.getProperties();
>>>>                              while(iter.hasNext()){
>>>>                                      Property prop =
>>>> iter.nextProperty();
>>>>                                      if
>>>> (!prop.getDefinition().isMultiple()) {
>>>>                                            
>>>>  properties.put(prop.getName(), prop.getValue().getString());
>>>>                                      }
>>>>                              }
>>>>                      }
>>>
>>> I don't know what getResNode(node) does, but I suppose it loads some
>>> other
>>> node
>>> which is different to the one retrieved by the query. If you remove this
>>> if-block the uuids should be equal as far as I can see.
>>> And as Brian already wrote: you should be better off using
>>> session.getNodeByUUID() instead of using a query. This method performs
>>> much
>>> faster than a query.
>>>
>>> Cheers,
>>> Christoph
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/UUID-tp9616867p25467222.html
>> Sent from the Jackrabbit - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/UUID-tp9616867p25469884.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Mime
View raw message