Hi Andi, Dan,

I have another issue with Blob's on 1.16.2. If an action called using RO interface returns a null Blob I get a NPE. I believe somebody noticed already because when I look at [1] there has been taken care of this condition. When the action returns a non null value I get an exception on [2].

Furthermore retrieving a Blob value from an entity directly using a query like 'tq.executeResultUnique(Blob.class, true, cand.logo)' (action called trough RO) is not solved by copying the files you mentioned before. In that case I get an exception:

Creation of SQLExpression for mapping "org.apache.isis.objectstore.jdo.datanucleus.valuetypes.IsisBlobMapping" caused error Unable to create SQLExpression for mapping of type "org.apache.isis.objectstore.jdo.datanucleus.valuetypes.IsisBlobMapping" since not supported org.datanucleus.exceptions.NucleusException: Unable to create SQLExpression for mapping of type "org.apache.isis.objectstore.jdo.datanucleus.valuetypes.IsisBlobMapping" since not supported

Any workaround for this too? ;-) Are these known issues or do you want me to raise an issue for these?

Thanks,
Erik

[1] https://github.com/apache/isis/blob/master/core/applib/src/main/java/org/apache/isis/schema/utils/CommonDtoUtils.java#L263 [2] https://github.com/apache/isis/blob/master/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/util/OidUtils.java#L51


On 03/14/2018 11:05 AM, Andi Huber wrote:
Thanks Erik!

Good to know. Remember, this is just a workaround, we definitely will try to 
fix this.

Cheers Andi.

On 2018/03/14 09:57:05, Erik de Hair <[email protected]> wrote:
Hi Andi,

Thank you very much! This helped. Everything's working fine now.

Erik

On 03/14/2018 10:31 AM, Andi Huber wrote:
Hi Erik,

strangely we had the same symptoms when working on the coming 2.0.0-M1
release. We tracked it down to the fact, that Isis' datanucleus
extensions don't get installed during bootstrapping.

Would be interesting to see, whether our current workaround [1] (to copy
over 2 files into your domain code) solves the issue. (Please let us know!)

    * /plugin.xml
    * /META-INF/MAINFEST.MF

As of version 1.16.x these files are in the isis-core-runtime jar file
of the release.

Cheers Andi

[1] https://issues.apache.org/jira/browse/ISIS-1902

On 2018/03/14 08:35:14, Erik de Hair <[email protected]> wrote:
Hi,

I'm having troubles with Blob fields after upgrading to Apache Isis
1.16.2 (not sure if this was also the case for 1.16.[0-1]). The feature
is using existing data we had no problems with before upgrading.

My field definition:

@javax.jdo.annotations.Persistent(defaultFetchGroup="false", columns = {
                @javax.jdo.annotations.Column(name = "file_name",
allowsNull = "false"),
                @javax.jdo.annotations.Column(name = "file_mimetype",
allowsNull = "false"),
                @javax.jdo.annotations.Column(name = "file_bytes",
jdbcType="BLOB", sqlType = "BLOB", allowsNull = "false")
            })
      @Property(editing=Editing.DISABLED, optionality=Optionality.MANDATORY)
      @Getter @Setter
      private Blob file;

Caused by: javax.jdo.JDOFatalUserException: StreamCorruptedException:
object is corrupted
NestedThrowables:
java.io.StreamCorruptedException: invalid stream header: 47657370
      at

org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:606)
      at

org.datanucleus.api.jdo.JDOAdapter.getApiExceptionForNucleusException(JDOAdapter.java:677)
      at

org.datanucleus.state.StateManagerImpl.isLoaded(StateManagerImpl.java:2929)
      at nl.pocos.dom.doclib.Document.dnGetfile(Document.java)
      at nl.pocos.dom.doclib.Document.getFile(Document.java:86)

I've changed the sqlType to "LONGVARBINARY" but this didn't help. I
can't reproduce this issue in the quickstart app. Was there any change
in Datanucleus version? Will have another look at the change logs.

Anyone having an idea?

Thanks,
Erik



Reply via email to