You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/06/18 00:06:11 UTC
git commit: ISIS-812: fix for PostgreSQL blob handling (for null
blobs)
Repository: isis
Updated Branches:
refs/heads/master ebf3445ee -> 016bd824e
ISIS-812: fix for PostgreSQL blob handling (for null blobs)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/016bd824
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/016bd824
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/016bd824
Branch: refs/heads/master
Commit: 016bd824e27ec56f99a341a95e363ab556ee2fe7
Parents: ebf3445
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Jun 17 23:02:35 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Jun 17 23:02:35 2014 +0100
----------------------------------------------------------------------
.../jdo/datanucleus/valuetypes/IsisBlobMapping.java | 16 +++++++++++++---
.../dom/src/main/java/dom/todo/ToDoItems.java | 2 +-
.../src/main/webapp/WEB-INF/persistor.properties | 12 ++++++------
3 files changed, 20 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/016bd824/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/valuetypes/IsisBlobMapping.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/valuetypes/IsisBlobMapping.java b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/valuetypes/IsisBlobMapping.java
index bdbb61d..0d5e204 100644
--- a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/valuetypes/IsisBlobMapping.java
+++ b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/valuetypes/IsisBlobMapping.java
@@ -20,6 +20,7 @@ package org.apache.isis.objectstore.jdo.datanucleus.valuetypes;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
+import java.sql.SQLException;
import org.datanucleus.ClassLoaderResolver;
import org.datanucleus.ClassNameConstants;
import org.datanucleus.ExecutionContext;
@@ -75,9 +76,18 @@ public class IsisBlobMapping extends SingleFieldMultiMapping {
{
Blob blob = ((Blob)value);
if (blob == null) {
- getDatastoreMapping(0).setObject(preparedStmt, exprIndex[0], null);
- getDatastoreMapping(1).setObject(preparedStmt, exprIndex[1], null);
- getDatastoreMapping(2).setObject(preparedStmt, exprIndex[2], null);
+ getDatastoreMapping(0).setString(preparedStmt, exprIndex[0], null);
+ getDatastoreMapping(1).setString(preparedStmt, exprIndex[1], null);
+
+ // using:
+ // getDatastoreMapping(2).setObject(preparedStmt, exprIndex[2], null);
+ // fails for PostgreSQL, as interprets as a reference to an oid (pointer to offline blob)
+ // rather than a bytea (inline blob)
+ try {
+ preparedStmt.setBytes(exprIndex[2], null);
+ } catch (SQLException e) {
+ // ignore
+ }
} else {
getDatastoreMapping(0).setString(preparedStmt, exprIndex[0], blob.getName());
getDatastoreMapping(1).setString(preparedStmt, exprIndex[1], blob.getMimeType().getBaseType());
http://git-wip-us.apache.org/repos/asf/isis/blob/016bd824/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
index a425e5a..bd9edf5 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
@@ -138,7 +138,7 @@ public class ToDoItems {
public ToDoItem newToDo(
final @RegEx(validation = "\\w[@&:\\-\\,\\.\\+ \\w]*") @Named("Description") String description,
final @Named("Category") Category category,
- final @Named("Subcategory") Subcategory subcategory,
+ final @Optional @Named("Subcategory") Subcategory subcategory,
final @Optional @Named("Due by") LocalDate dueBy,
final @Optional @Named("Cost") BigDecimal cost) {
return newToDo(description, category, subcategory, currentUserName(), dueBy, cost);
http://git-wip-us.apache.org/repos/asf/isis/blob/016bd824/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/persistor.properties
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/persistor.properties b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/persistor.properties
index 6d5effd..913b16a 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/persistor.properties
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/WEB-INF/persistor.properties
@@ -91,14 +91,14 @@ isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
# MS SQL Server
#
#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=com.microsoft.sqlserver.jdbc.SQLServerDriver
-#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:sqlserver://127.0.0.1:1433;instance=.;databaseName=quickstart
-#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa
-#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=p4ssword
+#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:sqlserver://127.0.0.1:1433;instance=.;databaseName=isis
+#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=isis
+#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=isis
#
# MS SQL Server (using log4jdbc-remix)
#
#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=net.sf.log4jdbc.DriverSpy
-#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:log4jdbc:sqlserver://127.0.0.1:1433;instance=SQLEXPRESS;databaseName=jdo
-#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=jdo
-#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=jdopass
+#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:log4jdbc:sqlserver://127.0.0.1:1433;instance=.;databaseName=isis
+#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=isis
+#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=isis