Imports from the hot directory are not possible if a
disguise is created which doesn't include the top
buckets of the application.
Assume an application has the following buckets (table
names):
V3_BUCK_0, V3_BUCK_1, V3_BUCK_2, V3_BUCK_3, JB_ELEMENT
and a disguise is created which only contains the
following buckets:
V3_BUCK_3, JB_ELEMENT
Trying to import an asset into the disguise will cause
the following error (JBoss output):
25.14:53:36.774 [RMI TCP
Connection(2484)-192.168.1.124] : System Exception
raised by request:
ClassName: [RoServerDisguiseElementRecord] MethodName:
[insertElement()] :SQLExceptionResource_ID=
5329 [PARM 0][1400] [PARM 1][ORA-01400: cannot insert
NULL into ("IMAGE"."V3_CONT"."V3_BUCK_0")
]
at
com.rorke.ejb.importrecord.element.RoServerDisguiseElementRecord.insertElement(RoServer
DisguiseElementRecord.java:158)
at
com.rorke.ejb.importrecord.bucket.RoServerDisguiseBucketRecord.insertBucket(RoServerDis
guiseBucketRecord.java:160)
at
com.rorke.ejb.importrecord.persist.RoDisguiseRecordPersistBean.insertRecord(RoDisguiseR
ecordPersistBean.java:181)
at
com.rorke.ejb.importrecord.persist.JOnASRoDisguiseRecordPersistRemote.insertRecord(JOnA
SRoDisguiseRecordPersistRemote.java:37)
at
com.rorke.ejb.importrecord.persist.JOnASRoDisguiseRecordPersistRemote_Skel.dispatch(JOn
ASRoDisguiseRecordPersistRemote_Skel.java:109)
at
sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:342)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:207)
at
sun.rmi.transport.Transport$1.run(Transport.java:148)
at
java.security.AccessController.doPrivileged(Native Method)
at
sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
The sql statement was:
INSERT INTO V3_CONT (CLASSIFIED, V3_BUCK_3,
ELEMENTPOSITION, V3_ELEMENT) VALUES (
Y, 144, 0, 159)
In order to succeed, we need to add values for the
upper buckets as well.
Logged In: YES
user_id=803319
A similar issue has been solved in the Edit Bean to allow
the creation of buckets in a disguise that doesn't contain
the upper buckets of the application. I think we can reuse
the code in the Edit Bean to fix the problem in the
DisguiseRecordPersist Bean (Import Bean). If the code is not
already in an isolated class, I suggest to pull it out from
the Edit Bean to a common class that can be used by both beans.