[JBoss JIRA] Created: (JBAS-3577) Security SPI
by Anil Saldhana (JIRA)
Security SPI
-------------
Key: JBAS-3577
URL: http://jira.jboss.com/jira/browse/JBAS-3577
Project: JBoss Application Server
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Reporter: Anil Saldhana
Assigned To: Anil Saldhana
We have to define a JBoss Security SPI that can be utilized by service providers.
The SPI should take into consideration:
a) Role Mapping.
b) Auditing Functionaility.
c) Identity Mapping Functionality. (Security Token which can be binary to a Principal)
d) Principal Mapping Functionality.
e) Certificate Mapping. (X509 cert to a Principal).
others....
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
19 years, 6 months
[JBoss JIRA] Created: (JBPM-752) hibernate warnings in update HQL statements
by Alex Burgel (JIRA)
hibernate warnings in update HQL statements
-------------------------------------------
Key: JBPM-752
URL: http://jira.jboss.com/jira/browse/JBPM-752
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM 3.1.2
Reporter: Alex Burgel
Assigned To: Tom Baeyens
Priority: Trivial
i'm seeing a bunch of hibernate warnings in jbpm 3.1.2, with hibernate 3.1.3:
FromElementType - Using non-qualified column reference [id -> ([ID_])]
FromElementType - Using non-qualified column reference [isSuspended -> ([ISSUSPENDED_])]
FromElementType - Using non-qualified column reference [token -> ([TOKEN_])]
FromElementType - Using non-qualified column reference [isSuspended -> ([ISSUSPENDED_])]
FromElementType - Using non-qualified column reference [token -> ([TOKEN_])]
FromElementType - Using non-qualified column reference [isSuspended -> ([ISSUSPENDED_])]
FromElementType - Using non-qualified column reference [token -> ([TOKEN_])]
FromElementType - Using non-qualified column reference [isSuspended -> ([ISSUSPENDED_])]
FromElementType - Using non-qualified column reference [token -> ([TOKEN_])]
FromElementType - Using non-qualified column reference [processInstance -> ([PROCESSINSTANCE_])]
they are caused by update HQL statements in org.jbpm.db.hibernate.queries.hbm.xml. i think for update statements you have to be explicit about column references. you have to specify the table name or alias for each column, otherwise you'll get these warnings.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
19 years, 6 months
[JBoss JIRA] Created: (JBRULES-382) Rule that operates on 2 facts uses the same fact for both arguments
by Geoffrey De Smet (JIRA)
Rule that operates on 2 facts uses the same fact for both arguments
-------------------------------------------------------------------
Key: JBRULES-382
URL: http://jira.jboss.com/jira/browse/JBRULES-382
Project: JBoss Rules
Issue Type: Bug
Security Level: Public (Everyone can see)
Reporter: Geoffrey De Smet
Assigned To: Mark Proctor
Priority: Minor
Fix For: 3.0.3
Attachments: JBRULES-382.zip
According to a reply on the thread "[drools-user] A few beginner drl questions" in the user mailing list, this is a bug.
Rule:
rule secondRule
when
$lesson1 : Lesson($teacher : teacher, $group : group, $timeslot : timeslot)
$lesson2 : Lesson(teacher == $teacher, group == $group, timeslot == $timeslot)
then
System.out.println("secondRule: " + $lesson1 + " with " + $lesson2);
end
gives an output where both lessons are the same fact:
secondRule: 0: teacher1 + group1 with 0: teacher1 + group1
I 'll attack a zip of my m2 configured app. To repreduce:
- mvn install eclipse:eclipse idea:idea
- Run net.sf.tabudrool.app.TabudroolApp
- Click "Load unsolvedSchedule1.xml"
- Click "Plan schedule"
You'll get this output, which proves that the same lesson is used both facts of the rule:
C:\develop\build\jdk1.5.0_05\bin\java -Didea.launcher.port=7546 "-Didea.launcher.bin.path=C:\develop\edit\IntelliJ IDEA 5.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\develop\build\jdk1.5.0_05\jre\lib\charsets.jar;C:\develop\build\jdk1.5.0_05\jre\lib\deploy.jar;C:\develop\build\jdk1.5.0_05\jre\lib\javaws.jar;C:\develop\build\jdk1.5.0_05\jre\lib\jce.jar;C:\develop\build\jdk1.5.0_05\jre\lib\jsse.jar;C:\develop\build\jdk1.5.0_05\jre\lib\plugin.jar;C:\develop\build\jdk1.5.0_05\jre\lib\rt.jar;C:\develop\build\jdk1.5.0_05\jre\lib\ext\dnsns.jar;C:\develop\build\jdk1.5.0_05\jre\lib\ext\localedata.jar;C:\develop\build\jdk1.5.0_05\jre\lib\ext\sunjce_provider.jar;C:\develop\build\jdk1.5.0_05\jre\lib\ext\sunpkcs11.jar;D:\projects\sf\tabudrool\target\test-classes;D:\projects\sf\tabudrool\target\classes;C:\Documents and Settings\ge0ffrey\.m2\repository\junit\junit\3.8.1\junit-3.8.1.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\apache\commons\commons-jci-eclipse\3.2.0.666\commons-jci-eclipse-3.2.0.666.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\concurrent\concurrent\1.3.4\concurrent-1.3.4.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\javax\transaction\jta\1.0.1B\jta-1.0.1B.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\xstream\xstream\1.1.3\xstream-1.1.3.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\apache\commons\commons-jci-janino\2.4.3\commons-jci-janino-2.4.3.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\commons-logging\commons-logging\1.0.4\commons-logging-1.0.4.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\log4j\log4j\1.2.12\log4j-1.2.12.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\janino\janino\2.4.3\janino-2.4.3.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\antlr\stringtemplate\2.3b6\stringtemplate-2.3b6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\colt\colt\1.2.0\colt-1.2.0.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\xpp3\xpp3\1.1.3.4.O\xpp3-1.1.3.4.O.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\com\servlets\cos\05Nov2002\cos-05Nov2002.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\commons-lang\commons-lang\2.1\commons-lang-2.1.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\antlr\antlr\2.7.6\antlr-2.7.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\commons-collections\commons-collections\3.1\commons-collections-3.1.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-remoting\1.2.6\spring-remoting-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\javax\resource\connector\1.0\connector-1.0.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\javax\servlet\jstl\1.0\jstl-1.0.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-core\1.2.6\spring-core-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\quartz\quartz\1.5.1\quartz-1.5.1.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\taglibs\standard\1.0.6\standard-1.0.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\oro\oro\2.0.8\oro-2.0.8.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\xerces\xercesImpl\2.6.2\xercesImpl-2.6.2.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-orm\1.2.6\spring-orm-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\commons-io\commons-io\1.1\commons-io-1.1.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-web\1.2.6\spring-web-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-beans\1.2.6\spring-beans-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-context\1.2.6\spring-context-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\javax\activation\activation\1.0.2\activation-1.0.2.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\jung\jung\1.7.2\jung-1.7.2.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-support\1.2.6\spring-support-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-webmvc\1.2.6\spring-webmvc-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-aop\1.2.6\spring-aop-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\ehcache\ehcache\1.1\ehcache-1.1.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-dao\1.2.6\spring-dao-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\drools\drools-compiler\3.0.3\drools-compiler-3.0.3.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\eclipse\jdt\core\3.2.0.666\core-3.2.0.666.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\antlr\antlr\3.0ea8\antlr-3.0ea8.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\apache\commons\commons-jci-core\1.0-406301\commons-jci-core-1.0-406301.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\springframework\spring-jdbc\1.2.6\spring-jdbc-1.2.6.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\commons-logging\commons-logging-api\1.0.4\commons-logging-api-1.0.4.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\javax\mail\mail\1.3.2\mail-1.3.2.jar;C:\Documents and Settings\ge0ffrey\.m2\repository\org\drools\drools-core\3.0.3\drools-core-3.0.3.jar;C:\develop\edit\IntelliJ IDEA 5.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain net.sf.tabudrool.app.TabudroolApp
2006-07-30 17:13:45,062 [AWT-EventQueue-0] INFO net.sf.tabudrool.persistence.ScheduleDao.readSchedule(ScheduleDao.java:37)
Loaded: class path resource [net/sf/tabudrool/persistence/unsolvedSchedule1.xml]
secondRule: 0: teacher1 + group1 with 0: teacher1 + group1
secondRule: 0: teacher1 + group1 with 0: teacher1 + group1
secondRule: 0: teacher1 + group1 with 0: teacher1 + group1
secondRule: 0: teacher1 + group1 with 0: teacher1 + group1
secondRule: 0: teacher2 + group2 with 0: teacher2 + group2
secondRule: 0: teacher2 + group2 with 0: teacher2 + group2
secondRule: 0: teacher2 + group2 with 0: teacher2 + group2
secondRule: 0: teacher2 + group2 with 0: teacher2 + group2
secondRule: 0: teacher2 + group2 with 0: teacher2 + group2
secondRule: 0: teacher2 + group2 with 0: teacher2 + group2
secondRule: 0: teacher3 + group3 with 0: teacher3 + group3
secondRule: 0: teacher3 + group3 with 0: teacher3 + group3
secondRule: 0: teacher1 + group1 with 0: teacher1 + group1
secondRule: 0: teacher1 + group1 with 0: teacher1 + group1
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
19 years, 6 months
[JBoss JIRA] Created: (JBRULES-387) Using exists together with facts of the same type can break auto-retraction of logically asserted objects
by Geoffrey De Smet (JIRA)
Using exists together with facts of the same type can break auto-retraction of logically asserted objects
---------------------------------------------------------------------------------------------------------
Key: JBRULES-387
URL: http://jira.jboss.com/jira/browse/JBRULES-387
Project: JBoss Rules
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Reteoo
Affects Versions: 3.0.3
Environment: Windows XP, java 1.5
Reporter: Geoffrey De Smet
Assigned To: Mark Proctor
I assert 3 Lesson objects in my memory.
I got 1 rule, which creates logically asserted HardConstraint objects.
In some cases (not always), those logically asserted objects aren't retracted when they should be, which leads to HardContaints just adding more and more. They aren't logically retracted as they should be when:
- exists is combined with fact selections of the same class
- the modified object trigged the rule by the exists part, not by the the fact selection part
I 'll attach a maven 2 configured proof of concept to repreduce it:
mvn install eclipse:eclipse idea:idea
Run net.sf.tabudrool.app.TabudroolApp
Click "Load unsolvedSchedule2.xml" (the second button on the left)
Notice the HardConstraint = 2 at the bottom
Click "Move lesson"
Move "[net.sf.tabudrool.domain.Lesson-1] 0: teacher0 + group0" to timeslot 1.
Notice that HardConstraint = 3 instead 1 at the bottom,
because - as you can see in the log - the previous HardConstraint objects didn't get retracted.
Here's the drl:
rule teacherCanOnlyTeachOneGroupAtATime
when
$lesson : Lesson($id : id, $teacher : teacher, $timeslot : timeslot)
exists Lesson(id > $id, teacher == $teacher, timeslot == $timeslot)
then
System.out.println(" teacherCanOnlyTeachOneGroupAtATime: " + $lesson);
assertLogical(new HardConstraint(1));
end
Here's a log:
teacherCanOnlyTeachOneGroupAtATime: [net.sf.tabudrool.domain.Lesson-1] 0: teacher0 + group0
teacherCanOnlyTeachOneGroupAtATime: [net.sf.tabudrool.domain.Lesson-0] 0: teacher0 + group0
[ObjectAsserted: handle=[fid:9:9]; object=net.sf.tabudrool.domain.HardConstraint@1f42731]
[ObjectAsserted: handle=[fid:10:10]; object=net.sf.tabudrool.domain.HardConstraint@53abbb]
2006-08-03 19:24:35,796 [AWT-EventQueue-0] INFO net.sf.tabudrool.swingui.WorkflowFrame$MoveAction.actionPerformed(WorkflowFrame.java:201)
Moving [[net.sf.tabudrool.domain.Lesson-1] 0: teacher0 + group0] to [1]
[ObjectModified: handle=[fid:7:11]; old_object=[net.sf.tabudrool.domain.Lesson-1] 1: teacher0 + group0; new_object=[net.sf.tabudrool.domain.Lesson-1] 1: teacher0 + group0]
teacherCanOnlyTeachOneGroupAtATime: [net.sf.tabudrool.domain.Lesson-1] 1: teacher0 + group0
[ObjectAsserted: handle=[fid:11:12]; object=net.sf.tabudrool.domain.HardConstraint@1c8b884]
As you can see: net.sf.tabudrool.domain.HardConstraint@1f42731 and net.sf.tabudrool.domain.HardConstraint@53abbb weren't retracted (at least one should be).
Earlier this week I posted a dud jira issue, as far as I can tell from discussing on irc (with conan), this looks like a genuine issue...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
19 years, 6 months
[JBoss JIRA] Created: (JBCOMMON-8) Port MarshalledValueIn(Out)putStream from aop
by Brian Stansberry (JIRA)
Port MarshalledValueIn(Out)putStream from aop
---------------------------------------------
Key: JBCOMMON-8
URL: http://jira.jboss.com/jira/browse/JBCOMMON-8
Project: JBoss Common
Issue Type: Task
Security Level: Public (Everyone can see)
Components: core
Reporter: Brian Stansberry
Assigned To: Brian Stansberry
Fix For: 2.0.0.Beta
A copy of AS/aop's MarshalledValueInputStream and MarshalledValueOutputStream should be added to common-core/org.jboss.util.stream. These are prettyy straightforward extensions of the j2se ObjectStreams with only j2se dependencies. Once a version of common with this in it is released, the other projects that use it can be converted. Usages I'm aware of are:
AS via its version in the server module
AOP via its own version
JBoss Cache via dependency on the AS's jboss-minimal.jar
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
19 years, 6 months
[JBoss JIRA] Created: (JBPM-757) Constraint violation during process deletion
by Dave Caruana (JIRA)
Constraint violation during process deletion
--------------------------------------------
Key: JBPM-757
URL: http://jira.jboss.com/jira/browse/JBPM-757
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM 3.1.2
Environment: Windows XP, Java 5, MySQL & HSQL.
Reporter: Dave Caruana
Assigned To: Tom Baeyens
It's taken a while to pinpoint the exact use-case, however the following test case reproduces the issue. I don't believe I'm incorrectly using jPDL.
The process has a start task with a task controller that writes a variable (named var1) back to the process. Note, the process does not have var1 to start with. Then, a local variable 'var1' is set on the start task instance and the task is ended.
Please note, at this point, there are VariableInstances persisted without an associated token, tokenvarmap, taskinstance or processinstance. That's potentially another side-issue, but not core to this particular deletion issue.
The second task 'step2Task' is created (no task controller associated with it). Now, a new local variable 'var1' is set against this task instance. The task is ended.
At this point, the process is deleted. However, it fails with a constraint violation (from FK_VARINST_TKVARMP, in the table "JBPM_VARIABLEINSTANCE" reported in MySQL) or a general exception (reported in HSQL).
Some digging reveals that when the step2Task task instance is ended, all local variables are pushed back to the process. However, the process already has a var1 as written explicitly by the task controller of the start task. It seems in TaskInstance.submitVariables, the process var1 is not deleted before the task local variable replaces process variable in the process token variable map.
The following test case demonstrates the issue with the default jbpm configuration files.
import java.util.List;
import junit.framework.TestCase;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.db.GraphSession;
import org.jbpm.db.TaskMgmtSession;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.jbpm.taskmgmt.exe.TaskInstance;
public class JBPMDeleteProcessTest extends TestCase {
static JbpmConfiguration jbpmConfiguration = null;
static long processId = -1L;
static String currentTokenPath = null;
static {
jbpmConfiguration = JbpmConfiguration.parseXmlString(
"<jbpm-configuration>" +
" <jbpm-context>" +
" <service name='persistence' " +
" factory='org.jbpm.persistence.db.DbPersistenceServiceFactory' />" +
" </jbpm-context>" +
" <string name='resource.hibernate.cfg.xml' " +
" value='hibernate.cfg.xml' />" +
" <string name='resource.business.calendar' " +
" value='org/jbpm/calendar/jbpm.business.calendar.properties' />" +
" <string name='resource.default.modules' " +
" value='org/jbpm/graph/def/jbpm.default.modules.properties' />" +
" <string name='resource.converter' " +
" value='org/jbpm/db/hibernate/jbpm.converter.properties' />" +
" <string name='resource.action.types' " +
" value='org/jbpm/graph/action/action.types.xml' />" +
" <string name='resource.node.types' " +
" value='org/jbpm/graph/node/node.types.xml' />" +
" <string name='resource.varmapping' " +
" value='org/jbpm/context/exe/jbpm.varmapping.xml' />" +
"</jbpm-configuration>"
);
}
public void setUp() {
jbpmConfiguration.createSchema();
}
public void tearDown() {
jbpmConfiguration.dropSchema();
}
public void testDelete() {
deployProcessDefinition();
startProcess();
step2TaskEnd();
deleteProcess();
}
public void deployProcessDefinition() {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString
(
"<process-definition name='deletetest'>" +
" <start-state name='start'> " +
" <task name='startTask'> " +
" <controller> " +
" <variable name='var1' access='write'/> " +
" </controller> " +
" </task> " +
" <transition name='' to='step2'/> " +
" </start-state> " +
" <task-node name='step2'> " +
" <task name='step2Task'/> " +
" <transition name='' to='step3'/> " +
" </task-node>" +
" <task-node name='step3'> " +
" <task name='step3Task'/> " +
" <transition name='' to='end'/> " +
" </task-node> " +
" <end-state name='end' />" +
"</process-definition>"
);
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
jbpmContext.deployProcessDefinition(processDefinition);
} finally {
jbpmContext.close();
}
}
public void startProcess() {
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
GraphSession graphSession = jbpmContext.getGraphSession();
ProcessDefinition processDefinition = graphSession.findLatestProcessDefinition("deletetest");
ProcessInstance processInstance = new ProcessInstance(processDefinition);
processId = processInstance.getId();
TaskInstance taskInstance = processInstance.getTaskMgmtInstance().createStartTaskInstance();
taskInstance.setVariableLocally("var1", "var1Value");
taskInstance.end();
Token token = taskInstance.getToken();
currentTokenPath = token.getFullName();
jbpmContext.save(processInstance);
} finally {
jbpmContext.close();
}
}
public void step2TaskEnd() {
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
GraphSession graphSession = jbpmContext.getGraphSession();
ProcessInstance processInstance = graphSession.loadProcessInstance(processId);
Token token = processInstance.findToken(currentTokenPath);
TaskMgmtSession taskSession = jbpmContext.getTaskMgmtSession();
List tasks = taskSession.findTaskInstancesByToken(token.getId());
TaskInstance taskInstance = (TaskInstance)tasks.get(0);
//
// comment out the following line and it works
//
taskInstance.setVariableLocally("var1", "var1TaskValue");
taskInstance.setVariableLocally("var2", "var2UpdatedValue");
taskInstance.end();
token = taskInstance.getToken();
currentTokenPath = token.getFullName();
jbpmContext.save(processInstance);
} finally {
jbpmContext.close();
}
}
public void deleteProcess()
{
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try {
GraphSession graphSession = jbpmContext.getGraphSession();
ProcessInstance processInstance = graphSession.loadProcessInstance(processId);
graphSession.deleteProcessInstance(processInstance, true, true, true);
//jbpmContext.save(processInstance);
} finally {
jbpmContext.close();
}
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
19 years, 6 months
[JBoss JIRA] Created: (JBPM-759) Hibernate variable type matchers do not deal HibernateProxy objects.
by Travis Klotz (JIRA)
Hibernate variable type matchers do not deal HibernateProxy objects.
--------------------------------------------------------------------
Key: JBPM-759
URL: http://jira.jboss.com/jira/browse/JBPM-759
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM 3.1.2
Reporter: Travis Klotz
Assigned To: Tom Baeyens
The hibernate type matchers(HibernateLongIdMatcher, HibernateStringIdMatcher) do not match against persistant objects that are wrapped in hibernate generated proxies.
For example, if I have a User class registered with hibernate, and I try to store a lazily instantiated User object as a context variable in jBPM, The class of the User instance is not User, its something like User$$EnhancedByCGLIB$$12345. When the hibernate type matchers try to match against this class, they do so by checking the hibernate session factory for any metadata about the argument. But the session factory does not know anything about User$$EnhancedByCGLIB$$12345, only User, which results in a no match.
I solved this localy by extending the type matchers and explicitly checking the argument for the HibernateProxy interface. If I found it, I ran the rest of the checks against the super class of the argument.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
19 years, 6 months