NoSuchMethodError: org.apache.jackrabbit.core.value.BLOBFileValue.dispose()V

3 messages Options
Embed this post
Permalink
Peter Dotchev

NoSuchMethodError: org.apache.jackrabbit.core.value.BLOBFileValue.dispose()V

Reply Threaded More More options
Print post
Permalink
Hi,

When I set a Binary property and I try to save it I get this exception.

java.lang.NoSuchMethodError: org.apache.jackrabbit.core.value.BLOBFileValue.dispose()V
        at org.apache.jackrabbit.core.value.InternalValue.discard(InternalValue.java:722)
        at org.apache.jackrabbit.core.persistence.util.Serializer.serialize(Serializer.java:220)
        at org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:505)
        at org.apache.jackrabbit.core.persistence.AbstractPersistenceManager.store(AbstractPersistenceManager.java:69)
        at org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:302)
        at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:732)
        at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1109)
        at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:351)
        at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
        at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
        at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:329)
        at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1122)
        at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:917)

I use 2.0-beta1.
The same with 2.0-alpha9.

I set the Binary property with code like this.

Node content = ...;
content.setProperty("jcr:data", getSession().getValueFactory().createBinary(imageData.getData()));

When I check the source of org.apache.jackrabbit.core.value.BLOBFileValue it really does not have method dispose.

Here is the source where this method is called
org.apache.jackrabbit.core.value.InternalValue

    public void discard() {
        if (type == PropertyType.BINARY) {
            BLOBFileValue bfv = (BLOBFileValue) val;
            bfv.dispose();
        } else {
            super.discard();
        }
    }

Any ideas?

Best regards,
Peter
Jukka Zitting

Re: NoSuchMethodError: org.apache.jackrabbit.core.value.BLOBFileValue.dispose()V

Reply Threaded More More options
Print post
Permalink
Hi,

On Tue, Nov 3, 2009 at 3:38 PM, Peter Dotchev <[hidden email]> wrote:
> When I set a Binary property and I try to save it I get this exception.
>
> java.lang.NoSuchMethodError:
> org.apache.jackrabbit.core.value.BLOBFileValue.dispose()V
> [...]
> Any ideas?

You probably have jcr-1.0.jar in your classpath. Jackrabbit 2.0
requires jcr-2.0.jar.

BR,

Jukka Zitting
Peter Dotchev

Re: NoSuchMethodError: org.apache.jackrabbit.core.value.BLOBFileValue.dispose()V

Reply Threaded More More options
Print post
Permalink
Hi Jukka,

Thanks for the hint.
I was using jcr-2.0-pfd.jar (Proposed Final Draft) and there is no dispose method in javax.jcr.Binary.
Now I saw that the final JCR 2.0 spec is released, so I updated to jcr-2.0.jar from maven repository and this works fine.

BTW the readme.txt in Jackrabbit 2.0beta1 source package still says that people need to download jcr-2.0-b114.jar. I guess this is no longer necessary.

Best regards,
Peter

Jukka Zitting wrote:
Hi,

On Tue, Nov 3, 2009 at 3:38 PM, Peter Dotchev <dotchev@gmail.com> wrote:
> When I set a Binary property and I try to save it I get this exception.
>
> java.lang.NoSuchMethodError:
> org.apache.jackrabbit.core.value.BLOBFileValue.dispose()V
> [...]
> Any ideas?

You probably have jcr-1.0.jar in your classpath. Jackrabbit 2.0
requires jcr-2.0.jar.

BR,

Jukka Zitting