[ 
https://issues.apache.org/jira/browse/MAHOUT-801?focusedWorklogId=999455&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-999455
 ]

ASF GitHub Bot logged work on MAHOUT-801:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 12/Jan/26 02:17
            Start Date: 12/Jan/26 02:17
    Worklog Time Spent: 10m 
      Work Description: guan404ming opened a new pull request, #802:
URL: https://github.com/apache/mahout/pull/802

   ### Purpose of PR
   
   Unify python package managers
   
   - Replaced Poetry commands with uv sync and uv run
   - Converted [project.optional-dependencies] to [dependency-groups] (uv 
native format)
   - Changed build system from poetry-core to hatchling
   - Updated all documentation, CI/CD workflows, and dev scripts
   - Added override for numba/llvmlite to support Python 3.10-3.13 (required 
until amazon-braket-sdk updates)
   
   ### Related Issues or PRs
   <!

Issue Time Tracking
-------------------

            Worklog Id:     (was: 999455)
    Remaining Estimate: 0h
            Time Spent: 10m

> MongoDBDataModel  getID() throws a class cast exception
> -------------------------------------------------------
>
>                 Key: MAHOUT-801
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-801
>             Project: Mahout
>          Issue Type: Bug
>          Components: classic
>    Affects Versions: 0.6
>            Reporter: Vishnu
>            Assignee: Sean R. Owen
>            Priority: Major
>             Fix For: 0.6
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> I imported GroupLense ratings.dat to a mongodb collection "ratings" using 
> mongoimport 
> Output of db.ratings.find() query
> "_id" : ObjectId("4e6733621497ef8543c1e144"), "userId" : 1, "movieId" : 1193, 
> "rating" : 5, "timestamp" : NumberLong(978300760) 
> "_id" : ObjectId("4e6733621497ef8543c1e145"), "userId" : 1, "movieId" : 661, 
> "rating" : 3, "timestamp" : NumberLong(978302109) 
> "_id" : ObjectId("4e6733621497ef8543c1e146"), "userId" : 1, "movieId" : 914, 
> "rating" : 3, "timestamp" : NumberLong(978301968) 
> "_id" : ObjectId("4e6733621497ef8543c1e147"), "userId" : 1, "movieId" : 3408, 
> "rating" : 4, "timestamp" : NumberLong(978300275) 
> "_id" : ObjectId("4e6733621497ef8543c1e148"), "userId" : 1, "movieId" : 2355, 
> "rating" : 5, "timestamp" : NumberLong(978824291) 
> Spring Bean creating MongoDBDataModel instance
> {code}
>   <bean id="mongodbDataModel" 
> class="org.apache.mahout.cf.taste.impl.model.mongodb.MongoDBDataModel">
>         <constructor-arg index="0" type="java.lang.String" value="127.0.0.1"/>
>         <constructor-arg index="1" type="int" value="27017"/>
>         <constructor-arg index="2" type="java.lang.String" value="grouplens"/>
>         <constructor-arg index="3" type="java.lang.String" value="ratings" />
>         <constructor-arg index="4" type="boolean" value="false"/>
>         <constructor-arg index="5" type="boolean" value="false"/>
>         <constructor-arg index="6" type="java.text.DateFormat" value="#{ null 
> }"/>
>         <constructor-arg index="7" type="java.lang.String" value="user"/>
>         <constructor-arg index="8" type="java.lang.String" value="password"/>
>         <constructor-arg index="9" type="java.lang.String" value="userId"/>
>         <constructor-arg index="10" type="java.lang.String" value="movieId"/>
>         <constructor-arg index="11" type="java.lang.String" value="rating"/>
>     </bean>
> {code}
> When MongDBDataModel loads the rating from mongdb, method getID() throws 
> ClassCastException
> {code}
> Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to 
> java.lang.String
>       at 
> org.apache.mahout.cf.taste.impl.model.mongodb.MongoDBDataModel.getID(MongoDBDataModel.java:742)
>       at 
> org.apache.mahout.cf.taste.impl.model.mongodb.MongoDBDataModel.buildModel(MongoDBDataModel.java:564)
>       at 
> org.apache.mahout.cf.taste.impl.model.mongodb.MongoDBDataModel.<init>(MongoDBDataModel.java:347)
>       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>       at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>       at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> {code}
> Exception is being thrown by last return statement "return (String) id;"
> {code}
> private String getID(Object id, boolean isUser) {
>     if (id.getClass().getName().contains("ObjectId")) {
>       if (isUser) {
>         userIsObject = true;
>       } else {
>         itemIsObject = true;
>       }
>       return ((ObjectId) id).toStringMongod();
>     } else {
>       return (String) id;
>     }
>   }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to