You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Kris Erik Schwerdt (JIRA)" <ji...@apache.org> on 2013/03/22 16:21:15 UTC

[jira] [Created] (CAY-1804) Serialisation of long[] type was not working correctly.

Kris Erik Schwerdt created CAY-1804:
---------------------------------------

             Summary: Serialisation of long[] type was not working correctly.
                 Key: CAY-1804
                 URL: https://issues.apache.org/jira/browse/CAY-1804
             Project: Cayenne
          Issue Type: Bug
    Affects Versions: 3.1B2, 3.0
            Reporter: Kris Erik Schwerdt
             Fix For: 3.0.3, 3.2M1


When an attribute of type long[] should be written into the database there was just an object reference written.

Patch for 3.0.x:

>From 5f9d95f1a2f72d7c2c45ed7105b0506ce3e8cf4a Mon Sep 17 00:00:00 2001
From: Kris Erik Schwerdt <kr...@quantentunnel.de>
Date: Fri, 22 Mar 2013 15:52:24 +0100
Subject: [PATCH] BUGFIX: added type long[] correctly.

The type long[] was not correctly deserialized before, because there was
missing a line in org.apache.cayenne.util.Util. This line has been added
now.
---
 .../src/main/java/org/apache/cayenne/util/Util.java                    | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java b/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java
index 3a114d4..86dd0d8 100644
--- a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java
+++ b/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/Util.java
@@ -645,6 +645,9 @@ public class Util {
             else if ("int".equals(className)) {
                 return int[].class;
             }
+           else if ("long".equals(className)) {
+               return long[].class;
+           }
             else if ("short".equals(className)) {
                 return short[].class;
             }
-- 
1.8.2


Patch for trunk:

>From 7afbc06cbf324b5d2e3d27abeef1c04b11a99ec2 Mon Sep 17 00:00:00 2001
From: Kris Erik Schwerdt <kr...@quantentunnel.de>
Date: Fri, 22 Mar 2013 16:11:45 +0100
Subject: [PATCH] BUGFIX: added type long[] correctly.

The type long[] was not correctly deserialized before, because there was
missing a line in org.apache.cayenne.di.spi.DefaultAdhocObjectFactory
and org.apache.cayenne.reflect.PropertyUtils. This line has been added
now.
---
 .../java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java   | 3 +++
 .../src/main/java/org/apache/cayenne/reflect/PropertyUtils.java     | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java b/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
index 1e2d4d6..6e91598 100644
--- a/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
+++ b/framework/cayenne-di-unpublished/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
@@ -159,6 +159,9 @@ public class DefaultAdhocObjectFactory implements AdhocObjectFactory {
             else if ("int".equals(className)) {
                 return int[].class;
             }
+           else if ("long".equals(className)) {
+               return long[].class;
+           }
             else if ("short".equals(className)) {
                 return short[].class;
             }
diff --git a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/reflect/PropertyUtils.java b/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/reflect/PropertyUtils.java
index 297eb6f..c37f0e0 100644
--- a/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/reflect/PropertyUtils.java
+++ b/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/reflect/PropertyUtils.java
@@ -276,6 +276,9 @@ public class PropertyUtils {
             else if ("int".equals(className)) {
                 return Integer.class;
             }
+           else if ("long".equals(className)) {
+               return Long.class;
+           }
             else if ("short".equals(className)) {
                 return Short.class;
             }
@@ -310,6 +313,9 @@ public class PropertyUtils {
             else if ("int".equals(className)) {
                 return Integer.valueOf(0);
             }
+           else if ("long".equals(className)) {
+               return Long.valueOf(0);
+           }
             else if ("short".equals(className)) {
                 return Short.valueOf((short) 0);
             }
-- 
1.8.2


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira